Module: ActionMan::Model::ClassMethods

Defined in:
lib/action_man/model.rb

Instance Method Summary collapse

Instance Method Details

#action(action_name, class_name = nil) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/action_man/model.rb', line 8

def action(action_name, class_name=nil)
  define_method(action_name) do |params|
    (class_name || self.class.action_class(action_name)).constantize.new(self).run(params)
  end

  define_method("#{action_name}?") do
    (class_name || self.class.action_class(action_name)).constantize.new(self).executable?
  end
end

#action_class(action_name) ⇒ Object



18
19
20
# File 'lib/action_man/model.rb', line 18

def action_class(action_name)
  "#{name.pluralize}::#{action_name.to_s.camelcase}Action"
end