Module: Surrounded::Context::Initializing
- Extended by:
- Seclusion
- Defined in:
- lib/surrounded/context/initializing.rb
Instance Method Summary
collapse
Methods included from Seclusion
private_attr_reader, private_const_set
Instance Method Details
#apply_initializer_block(instance) ⇒ Object
23
24
25
|
# File 'lib/surrounded/context/initializing.rb', line 23
def apply_initializer_block(instance)
instance.instance_eval(&initializer_block) if initializer_block
end
|
#default_initializer(params, setup_args, &block) ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/surrounded/context/initializing.rb', line 27
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
12
13
14
15
|
# File 'lib/surrounded/context/initializing.rb', line 12
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.
7
8
9
10
|
# File 'lib/surrounded/context/initializing.rb', line 7
def initialize_without_keywords(*setup_args, &block)
parameters = setup_args.join(',')
default_initializer(parameters, setup_args, &block)
end
|
#initializer_block ⇒ Object
19
20
21
|
# File 'lib/surrounded/context/initializing.rb', line 19
def initializer_block
@initializer_block
end
|