Module: Croods::Resource::Controller

Defined in:
lib/croods/resource/controller.rb

Instance Method Summary collapse

Instance Method Details

#controllerObject



20
21
22
# File 'lib/croods/resource/controller.rb', line 20

def controller
  controller_name.constantize
end

#controller_blocksObject



12
13
14
# File 'lib/croods/resource/controller.rb', line 12

def controller_blocks
  @controller_blocks ||= []
end

#controller_nameObject



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