Предполагается следующий модуль, который позволяет добавлять функциональные возможности activ_as_timeable к произвольной модели.
module Timeable
module ActsAsTimeable
extend ActiveSupport::Concern
module ClassMethods
def acts_as_timeable(options ={})
...
end
end
end
end
ActiveRecord::Base.send :include, Timeable::ActsAsTimeable
Согласно последней строке, метод класса activ_as_timeable доступен в ActiveRecord :: Base. Поэтому любая модель, расширяющая форму ActiveRecord :: Base, вернет true при вызове Model.respond_to?(:acts_as_timeable) => true
.
Как я могу определить, действительно ли модель act_as_timeable основана на том, является ли строка, начинающаяся с acts_as_timeable ...
class Model < ActiveRecord::Base
acts_as_timeable
end
... (и, возможно, некоторые опции) был добавлен в модель или нет?