class Banken::DSL::Proxy
Constants
- PERMIT_ATTRIBUTES_METHOD_NAME
Attributes
controller[R]
Public Class Methods
new(controller)
click to toggle source
# File lib/banken/dsl/proxy.rb, line 8 def initialize(controller) @controller = controller end
Public Instance Methods
define_banken_permit_attributes_method(&block)
click to toggle source
# File lib/banken/dsl/proxy.rb, line 18 def define_banken_permit_attributes_method(&block) banken_loyalty.class_eval do define_method(PERMIT_ATTRIBUTES_METHOD_NAME, &block) end end
define_banken_query_method_for(action_name, &block)
click to toggle source
# File lib/banken/dsl/proxy.rb, line 12 def define_banken_query_method_for(action_name, &block) banken_loyalty.class_eval do define_method("#{action_name}?", &block) end end
Private Instance Methods
action_method?(method_name)
click to toggle source
# File lib/banken/dsl/proxy.rb, line 50 def action_method?(method_name) controller.action_methods.include?(method_name.to_s) end
banken_controller_name()
click to toggle source
# File lib/banken/dsl/proxy.rb, line 32 def banken_controller_name controller.controller_path end
banken_loyalty()
click to toggle source
# File lib/banken/dsl/proxy.rb, line 26 def banken_loyalty ::Banken::LoyaltyFinder.new(banken_controller_name).loyalty! rescue ::Banken::NotDefinedError ::Banken::DSL::Factory.new(controller).create end
method_missing(method_name, *arguments, &block)
click to toggle source
# File lib/banken/dsl/proxy.rb, line 36 def method_missing(method_name, *arguments, &block) if action_method?(method_name) define_banken_query_method_for(method_name, &block) elsif permit_attributes_method?(method_name) define_banken_permit_attributes_method(&block) else raise ::Banken::DSL::UndefinedAction, "#{controller}##{method_name} is undefined" end end
permit_attributes_method?(method_name)
click to toggle source
# File lib/banken/dsl/proxy.rb, line 54 def permit_attributes_method?(method_name) method_name.to_s == PERMIT_ATTRIBUTES_METHOD_NAME end
respond_to_missing?(method_name, include_private = false)
click to toggle source
Calls superclass method
# File lib/banken/dsl/proxy.rb, line 46 def respond_to_missing?(method_name, include_private = false) action_method?(method_name) || permit_attributes_method?(method_name) || super end