Class: ActionHandler::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/action_handler/config.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfig

Returns a new instance of Config.



22
23
24
25
26
27
# File 'lib/action_handler/config.rb', line 22

def initialize
  @as_controller = nil
  @action_methods = nil
  @args_suppliers = []
  @custom_args = {} # { method_name: proc }
end

Instance Attribute Details

#action_methodsObject

Returns the value of attribute action_methods.



18
19
20
# File 'lib/action_handler/config.rb', line 18

def action_methods
  @action_methods
end

#args_suppliersObject (readonly)

Returns the value of attribute args_suppliers.



19
20
21
# File 'lib/action_handler/config.rb', line 19

def args_suppliers
  @args_suppliers
end

#as_controllerObject

Returns the value of attribute as_controller.



17
18
19
# File 'lib/action_handler/config.rb', line 17

def as_controller
  @as_controller
end

#custom_argsObject (readonly)

Returns the value of attribute custom_args.



20
21
22
# File 'lib/action_handler/config.rb', line 20

def custom_args
  @custom_args
end

Class Method Details

.get(handler_class) ⇒ Object



7
8
9
# File 'lib/action_handler/config.rb', line 7

def self.get(handler_class)
  handler_class.instance_variable_get(CONFIG_VAR_NAME)
end

.set(handler_class, config) ⇒ Object

Raises:

  • (ArgumentError)


11
12
13
14
15
# File 'lib/action_handler/config.rb', line 11

def self.set(handler_class, config)
  raise ArgumentError, 'invalid config' unless config.is_a?(self)

  handler_class.instance_variable_set(CONFIG_VAR_NAME, config)
end

Instance Method Details

#add_arg(name, &block) ⇒ Object



45
46
47
# File 'lib/action_handler/config.rb', line 45

def add_arg(name, &block)
  @custom_args[name] = block
end

#add_args_supplier(supplier) ⇒ Object



41
42
43
# File 'lib/action_handler/config.rb', line 41

def add_args_supplier(supplier)
  @args_suppliers.push(supplier)
end