desc
довольно легко реализовать, хитрость заключается в использовании Module.method_added
:
class DescMethods
def self.desc(m)
@last_message = m
end
def self.method_added(m)
puts "#{m} described as #{@last_message}"
end
end
любой класс, который наследуется от DescMethods
, будет иметь метод desc
, такой как Thor
. Для каждого метода будет напечатано сообщение с названием и описанием метода. Например:
class Test < DescMethods
desc 'Hello world'
def test
end
end
когда этот класс определен, будет напечатана строка «test, описанный как Hello world».