Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
ExtraCat = Struct.new("ExtraCat", :name, :age, :weight)
lucky = ExtraCat.new("Lucky", 2, 4)
Углубляясь в модули
Перелистнем на одну каплю назад и вспомним, что такое модули и как их применять, в частности, обратим внимание на примеси и пример, приведенный там.
Но что случится при смешивании с нашими методами модуля? Если вы думаете, что будут включены как методы класса, то Руби так не поступает. Для этого можно сделать так:
class << self # Здесь self это MyClass include MyMod end
extend MyMod
def SuperCat.big_cat, а def self.big_cat, чтобы не пришлось всё переименовывать, когда сменишь имя класса.
pussy = HyperCat.new do
self.name = "Pussy"
end
pussy = HyperCat.new do
@name = "Pussy"
end
Покорим Ruby вместе! Капля десятая