Class: Argonaut::Generator
- Inherits:
-
Object
- Object
- Argonaut::Generator
show all
- Defined in:
- lib/argonaut/generator.rb
Instance Method Summary
collapse
Constructor Details
#initialize(array_keys = [], &block) ⇒ Generator
Returns a new instance of Generator.
7
8
9
10
11
|
# File 'lib/argonaut/generator.rb', line 7
def initialize(array_keys=[], &block)
@array_keys = array_keys.map(&:to_sym)
@hash = {}
block.call(self)
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(key, *values) ⇒ Object
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/argonaut/generator.rb', line 17
def method_missing(key, *values)
value = if block_given?
Generator.new(@array_keys) { |a| yield a }
else
values.size == 1 ? values.first : values
end
if @array_keys.include?(key) || @hash[key].is_a?(Array)
if @hash.include?(key)
@hash[key] << value
else
@hash[key] = [value]
end
elsif @hash[key].nil?
@hash[key] = value
else
@hash[key] = [@hash[key], value]
end
end
|
Instance Method Details
#array_keys!(array_keys) ⇒ Object
13
14
15
|
# File 'lib/argonaut/generator.rb', line 13
def array_keys!(array_keys)
@array_keys = array_keys.map(&:to_sym)
end
|
#inspect ⇒ Object
49
50
51
|
# File 'lib/argonaut/generator.rb', line 49
def inspect
@hash.inspect
end
|
#respond_to?(method) ⇒ Boolean
37
38
39
|
# File 'lib/argonaut/generator.rb', line 37
def respond_to?(method)
true
end
|
#to_json(extra = false) ⇒ Object
41
42
43
|
# File 'lib/argonaut/generator.rb', line 41
def to_json(=false)
@hash.to_json()
end
|
#to_s ⇒ Object
45
46
47
|
# File 'lib/argonaut/generator.rb', line 45
def to_s
@hash.to_s
end
|