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
-
#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
- #keyword_initialize(*setup_args, &block) ⇒ Object (also: #initialize_with_keywords)
Instance Method Details
#apply_initializer_block(instance) ⇒ Object
26 27 28 |
# File 'lib/surrounded/context/initializing.rb', line 26 def apply_initializer_block(instance) instance.instance_eval(&initializer_block) if initializer_block end |
#default_initializer(params, setup_args, &block) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/surrounded/context/initializing.rb', line 30 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
10 11 12 13 14 |
# File 'lib/surrounded/context/initializing.rb', line 10 def initialize(*setup_args, &block) warn "Deprecated: The behavior of 'initialize' will require keywords in the future Consider using keyword arguments or switching to 'initialize_without_keywords'\n\n" initialize_without_keywords(*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
22 23 24 |
# File 'lib/surrounded/context/initializing.rb', line 22 def initializer_block @initializer_block end |
#keyword_initialize(*setup_args, &block) ⇒ Object Also known as: initialize_with_keywords
16 17 18 19 |
# File 'lib/surrounded/context/initializing.rb', line 16 def keyword_initialize(*setup_args, &block) parameters = setup_args.map{|a| "#{a}:"}.join(',') default_initializer(parameters, setup_args, &block) end |