class Banken::DSL::Factory

Constants

SUFFIX

Attributes

base_controller_name[R]
controller_name[R]

Public Class Methods

new(controller) click to toggle source
# File lib/banken/dsl/factory.rb, line 8
def initialize(controller)
  @controller_name      = extract_controller_name(controller)
  @base_controller_name = extract_controller_name(controller.superclass)
end

Public Instance Methods

create() click to toggle source
# File lib/banken/dsl/factory.rb, line 13
def create
  Object.const_set(loyalty_name, loyalty_klass)
end

Private Instance Methods

base_loyalty() click to toggle source
# File lib/banken/dsl/factory.rb, line 35
def base_loyalty
  ::Banken::LoyaltyFinder.new(base_controller_name).loyalty!
rescue ::Banken::NotDefinedError
  ::Banken::DSL::BaseLoyalty
end
extract_controller_name(controller) click to toggle source
# File lib/banken/dsl/factory.rb, line 19
def extract_controller_name(controller)
  controller.controller_path if controller.to_s.end_with?("Controller")
end
loyalty_klass() click to toggle source
# File lib/banken/dsl/factory.rb, line 27
def loyalty_klass
  if base_controller_name
    Class.new(base_loyalty)
  else
    Class.new(::Banken::DSL::BaseLoyalty)
  end
end
loyalty_name() click to toggle source
# File lib/banken/dsl/factory.rb, line 23
def loyalty_name
  "#{controller_name.camelize}#{SUFFIX}"
end