Ruby добавляет динамические события, используя AASM - PullRequest
1 голос
/ 08 октября 2011

У меня есть класс в программе, которая обрабатывает игровые состояния. На самом деле я работаю с AASM, поэтому для создания события мне нужно использовать что-то вроде aasm_event :name ... внутри класса.

Мне нужно иметь возможность загружать другие файлы, которые динамически должны добавлять события и состояния в класс.

Как это возможно?

Заранее спасибо.

1 Ответ

1 голос
/ 24 октября 2011

Следующее должно работать, если aasm_state и aasm_event не защищены или закрыты:

# game.rb
class Game
  include AASM

  aasm_initial_state :start
end

# add the require after the class definition, else it will complain of a missing constant
require "other_file"

# other_file.rb
Game.aasm_state :another_state
Game.aasm_event do
  transitions :to => :another_state, :from => [:start]
end
...