Module: Croods::Resource::Controller
- Defined in:
- lib/croods/resource/controller.rb
Instance Method Summary collapse
- #controller ⇒ Object
- #controller_blocks ⇒ Object
- #controller_name ⇒ Object
- #create_actions! ⇒ Object
- #create_additional_actions! ⇒ Object
- #create_controller! ⇒ Object
- #extend_controller(&block) ⇒ Object
Instance Method Details
#controller ⇒ Object
20 21 22 |
# File 'lib/croods/resource/controller.rb', line 20 def controller controller_name.constantize end |
#controller_blocks ⇒ Object
12 13 14 |
# File 'lib/croods/resource/controller.rb', line 12 def controller_blocks @controller_blocks ||= [] end |
#controller_name ⇒ Object
16 17 18 |
# File 'lib/croods/resource/controller.rb', line 16 def controller_name "#{namespace}Controller" end |
#create_actions! ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/croods/resource/controller.rb', line 35 def create_actions! actions.each do |action| controller.define_method( action.name, Croods::Controller::Actions.send(action.name) ) end end |
#create_additional_actions! ⇒ Object
43 44 45 46 47 |
# File 'lib/croods/resource/controller.rb', line 43 def create_additional_actions! additional_actions.each do |action| controller.define_method(action.name, &action.block) end end |
#create_controller! ⇒ Object
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/croods/resource/controller.rb', line 24 def create_controller! Object.const_set(controller_name, Class.new(ApplicationController)) controller_blocks.each do |block| controller.instance_eval(&block) end create_actions! create_additional_actions! end |
#extend_controller(&block) ⇒ Object
6 7 8 9 10 |
# File 'lib/croods/resource/controller.rb', line 6 def extend_controller(&block) return unless block controller_blocks << block end |