5
มี alias_method สำหรับวิธีการเรียนหรือไม่?
พิจารณาคลาสต่อไปนี้: class Foo def an_inst_method 'instance method' end def self.a_class_method 'class method' end alias_method :a_new_inst_method, :an_inst_method end นี่ไม่มีปัญหาและคุณสามารถโทรFoo.new.a_new_inst_methodโดยไม่มีปัญหา ฉันต้องการความสามารถในการมีคลาสวิธีการFoo.add_widget(*items)และนามแฝงเพื่อให้ฉันสามารถทำสิ่งที่ชอบ: Foo.add_widget 'item1' Foo.add_widgets 'item2', 'item3' โดยพื้นฐานแล้วมันมี "ruby style" ที่ชอบ1.minuteและ2.minutesดังนั้นฉันต้องการนามแฝงFoo.add_widgetดังนั้นการเรียกFoo.add_widgetsใช้วิธีการเดียวกันแน่นอน ฉันรู้ว่าฉันสามารถห่อมันได้ แต่ฉันรู้สึกว่าฉันควรจะทำสิ่งนี้ด้วยวิธีที่สะอาดกว่า พิจารณาความพยายามของฉันที่ลองทำสิ่งนี้: class Foo def an_inst_method 'instance method' end def self.a_class_method 'class method' end alias_method :a_new_inst_method, :an_inst_method alias_method :a_new_class_method, :a_class_method end …
10
ruby
alias-method