ტექნოლოგიურ სამყაროში ახალი პროექტი გამოჩნდა, რომელიც Unix shell-ის კონცეფციას ახლებურად აყალიბებს. Rubish არის shell, რომელიც მთლიანად Ruby-ს ენაზეა დაწერილი. მისი მთავარი უპირატესობა Bash-თან სრულ თავსებადობაშია, რაც ნიშნავს, რომ მომხმარებლებს შეუძლიათ თავიანთი არსებული სკრიპტები ცვლილებების გარეშე გაუშვან.
როგორ მუშაობს Rubish?
Rubish არ არის მხოლოდ shell-ის კიდევ ერთი რეალიზაცია; ის Ruby-ს ენას სისტემურ დონეზე აინტეგრირებს. shell-ის სინტაქსი განიხილება და კომპილირდება Ruby-ს კოდად, რომელსაც შემდეგ Ruby-ს ვირტუალური მანქანა (VM) ასრულებს. ეს საშუალებას გაძლევთ, shell ბრძანებები და Ruby-ს კოდი ერთმანეთში შეუფერხებლად აურიოთ.
მაგალითად, შეგიძლიათ გამოიყენოთ Ruby-ს ისეთი მახასიათებლები, როგორიცაა ბლოკები, იტერატორები და ბიბლიოთეკები პირდაპირ shell სკრიპტებში. პირობითი ოპერატორები, როგორიცაა if, while ან until, შეიძლება შეიცავდეს Ruby-ს გამოსახულებებს ფიგურულ ფრჩხილებში, სადაც shell-ის ცვლადები ავტომატურად უკავშირდება Ruby-ს ლოკალურ ცვლადებს.
მოქნილი სინტაქსი და ინტეგრაცია
Rubish-ში ბრძანებების გაშვება შესაძლებელია როგორც ტრადიციული Unix სტილით, ასევე Ruby-ს მეთოდების გამოძახების სინტაქსით. შესაძლებელია ბრძანებების გადაჯაჭვა (pipelining) Ruby-ს მეთოდების გამოყენებით, რაც კოდს უფრო სუფთას და წაკითხვადს ხდის.
ნებისმიერი ხაზი, რომელიც იწყება დიდი ასოებით, პირდაპირ Ruby-ს კოდად ფასდება. ეს ნიშნავს, რომ შეგიძლიათ გამოიყენოთ Ruby-ს კლასები და მეთოდები shell-ის პრომპტიდან ყოველგვარი დამატებითი კონფიგურაციის გარეშე.
პროექტი ასევე გთავაზობთ lazy_load ფუნქციას, რომელიც საშუალებას იძლევა, ნელი ინიციალიზაციის პროცესები (როგორიცაა rbenv ან nvm) ფონურ რეჟიმში გადაიტანოთ. შედეგად, shell-ის ჩატვირთვა მყისიერია, რაც მნიშვნელოვნად ზრდის მუშაობის ეფექტურობას.
უსაფრთხოება და API
მათთვის, ვისაც არასანდო სკრიპტების გაშვება სჭირდება, Rubish-ს აქვს -r რეჟიმი. ის თიშავს Ruby-ს ინტეგრაციის ყველა ფუნქციას და ტოვებს მხოლოდ სტანდარტულ shell სინტაქსს, რაც უზრუნველყოფს უსაფრთხო გარემოს.
გარდა ამისა, Rubish-ს აქვს საჯარო API, რაც საშუალებას აძლევს სხვა Ruby პროგრამებს, როგორიცაა ტერმინალის ემულატორები ან IDE დანამატები, პირდაპირ მართონ Rubish-ის სესიები. ეს მიდგომა გამორიცხავს ზედმეტ პროცესებს და ზრდის სისტემის მუშაობის სისწრაფეს.





დისკუსია
0 კომენტარი
ჯერ კომენტარი არ არის — იყავი პირველი.