Class: Initializer::Macro
- Inherits:
-
Object
- Object
- Initializer::Macro
show all
- Defined in:
- lib/initializer/macro.rb
Defined Under Namespace
Classes: InitializerDefinition
Constant Summary
collapse
- DEFAULT_VISIBILITY =
:reader
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(target_class, parameters) ⇒ Macro
Returns a new instance of Macro.
8
9
10
11
|
# File 'lib/initializer/macro.rb', line 8
def initialize(target_class, parameters)
@target_class = target_class
@parameters = parameters
end
|
Instance Attribute Details
#parameters ⇒ Object
Returns the value of attribute parameters.
6
7
8
|
# File 'lib/initializer/macro.rb', line 6
def parameters
@parameters
end
|
#target_class ⇒ Object
Returns the value of attribute target_class.
5
6
7
|
# File 'lib/initializer/macro.rb', line 5
def target_class
@target_class
end
|
Class Method Details
.build(target_class, parameters) ⇒ Object
13
14
15
16
17
18
19
|
# File 'lib/initializer/macro.rb', line 13
def self.build(target_class, parameters)
parameters, options = separate_parameters(parameters)
Extension.! options, InitializerOptions
parameters = NormalizeParameters.normalize(parameters, options.visibility)
instance = new target_class, parameters
instance
end
|
.generate_definitions(target_class, parameters) ⇒ Object
21
22
23
24
|
# File 'lib/initializer/macro.rb', line 21
def self.generate_definitions(target_class, parameters)
instance = build target_class, parameters
instance.generate_definitions
end
|
.options?(parameters) ⇒ Boolean
33
34
35
|
# File 'lib/initializer/macro.rb', line 33
def self.options?(parameters)
parameters.last.is_a? Hash
end
|
.separate_parameters(parameters) ⇒ Object
26
27
28
29
30
31
|
# File 'lib/initializer/macro.rb', line 26
def self.separate_parameters(parameters)
options = { :default => DEFAULT_VISIBILITY }
options = parameters.pop if options?(parameters)
return parameters, options
end
|
Instance Method Details
#define_attributes ⇒ Object
42
43
44
45
46
|
# File 'lib/initializer/macro.rb', line 42
def define_attributes
parameters.each do |p|
Attribute.define target_class, p.name, p.visibility
end
end
|
#generate_definitions ⇒ Object