Как включить модуль в другой модуль (Рефакторинг кода AASM и пользовательских состояний в модуль)

Я пытаюсь рефакторить супержирную модель, которая имеет довольно много строк кода ActsAsStateMachine, связанных с состояниями и переходами, и я надеялся рефакторить это в модуль CallStates.

#in lib/CallStates.rb
module CallStates
    module ClassMethods
        aasm_column :status
        aasm_state :state1
        aasm_state :state2
        aasm_state :state3
    end

    def self.included(base)
        base.send(:include, AASM)
        base.extend(ClassMethods)
    end
end

А затем в модели

include CallStates

Мой вопрос касается того, как включить поведение модуля в модуль так, чтобы в модель можно было включить один модуль. Я пробовал и class_eval делать, но безрезультатно. Спасибо за любые ваши глубокие мысли по этому вопросу.

27
задан edgerunner 6 February 2011 в 18:53
поделиться