Module: Surrounded::Context::Initializing
- Defined in:
- lib/surrounded/context/initializing.rb
Instance Method Summary collapse
- #apply_initializer_block(instance) ⇒ Object
- #default_initializer(params, setup_args, &block) ⇒ Object
- #initialize(*setup_args, &block) ⇒ Object (also: #keyword_initialize)
-
#initialize_without_keywords(*setup_args, &block) ⇒ Object
Shorthand for creating an instance level initialize method which handles the mapping of the given arguments to their named role.
- #initializer_block ⇒ Object
Instance Method Details
#apply_initializer_block(instance) ⇒ Object
22 23 24 |
# File 'lib/surrounded/context/initializing.rb', line 22 def apply_initializer_block(instance) instance.instance_eval(&initializer_block) if initializer_block end |
#default_initializer(params, setup_args, &block) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/surrounded/context/initializing.rb', line 26 def default_initializer(params, setup_args, &block) private_attr_reader(*setup_args) @initializer_block = block mod = Module.new line = __LINE__; mod.class_eval %{ def initialize(#{params}) @role_map = role_mapper_class.new @initializer_arguments = Hash[#{setup_args.to_s}.zip([#{setup_args.join(',')}])] map_roles(@initializer_arguments) self.class.apply_initializer_block(self) end }, __FILE__, line const_set("ContextInitializer", mod) include mod private_attr_reader :initializer_arguments end |
#initialize(*setup_args, &block) ⇒ Object Also known as: keyword_initialize
11 12 13 14 |
# File 'lib/surrounded/context/initializing.rb', line 11 def initialize(*setup_args, &block) parameters = setup_args.map{|a| "#{a}:"}.join(',') default_initializer(parameters, setup_args, &block) end |
#initialize_without_keywords(*setup_args, &block) ⇒ Object
Shorthand for creating an instance level initialize method which handles the mapping of the given arguments to their named role.
6 7 8 9 |
# File 'lib/surrounded/context/initializing.rb', line 6 def initialize_without_keywords(*setup_args, &block) parameters = setup_args.join(',') default_initializer(parameters, setup_args, &block) end |
#initializer_block ⇒ Object
18 19 20 |
# File 'lib/surrounded/context/initializing.rb', line 18 def initializer_block @initializer_block end |