module Croods::Resource::Controller

Public Instance Methods

controller() click to toggle source
# File lib/croods/resource/controller.rb, line 20
def controller
  controller_name.constantize
end
controller_blocks() click to toggle source
# File lib/croods/resource/controller.rb, line 12
def controller_blocks
  @controller_blocks ||= []
end
controller_name() click to toggle source
# File lib/croods/resource/controller.rb, line 16
def controller_name
  "#{namespace}Controller"
end
create_actions!() click to toggle source
# 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!() click to toggle source
# 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!() click to toggle source
# 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) click to toggle source
# File lib/croods/resource/controller.rb, line 6
def extend_controller(&block)
  return unless block

  controller_blocks << block
end