coral_core 0.2.15 → 0.2.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.15
1
+ 0.2.16
data/coral_core.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "coral_core"
8
- s.version = "0.2.15"
8
+ s.version = "0.2.16"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Adrian Webb"]
@@ -13,21 +13,31 @@ module Template
13
13
 
14
14
  def self.process(value)
15
15
  case value
16
- when String
17
- return '' if Util::Data.undef?(value)
16
+ when String, Symbol
17
+ return nil if Util::Data.undef?(value)
18
18
  return 'false' if value == false
19
19
  return 'true' if value == true
20
20
  return value.to_s if value.is_a?(Symbol)
21
21
 
22
22
  when Hash
23
+ results = {}
23
24
  value.each do |key, item|
24
- value[key] = process(item)
25
+ result = process(item)
26
+ unless result.nil?
27
+ results[key] = result
28
+ end
29
+ value = results
25
30
  end
26
31
 
27
32
  when Array
33
+ results = []
28
34
  value.each_with_index do |item, index|
29
- value[index] = process(item)
35
+ result = process(item)
36
+ unless result.nil?
37
+ results << result
38
+ end
30
39
  end
40
+ value = results
31
41
  end
32
42
  return value
33
43
  end
@@ -104,14 +104,11 @@ class Data
104
104
 
105
105
  # Special case because this method is called from within Config.new so we
106
106
  # can not use Config.ensure, as that would cause an infinite loop.
107
- force = force.is_a?(Coral::Config) ? force.get(:force, force) : force
108
-
109
- #dbg(data, 'data')
107
+ force = force.is_a?(Coral::Config) ? force.get(:force, true) : force
110
108
 
111
109
  if data.is_a?(Array)
112
110
  value = data.shift
113
111
  data.each do |item|
114
- #dbg(item, 'item')
115
112
  case value
116
113
  when Hash
117
114
  begin
@@ -120,7 +117,7 @@ class Data
120
117
 
121
118
  rescue LoadError
122
119
  if item.is_a?(Hash) # Non recursive top level by default.
123
- value = value.merge(item)
120
+ value = value.merge(item)
124
121
  elsif force
125
122
  value = item
126
123
  end
@@ -131,11 +128,13 @@ class Data
131
128
  elsif force
132
129
  value = item
133
130
  end
131
+
132
+ when String, Symbol
133
+ value = item if item.is_a?(String) || item.is_a?(Symbol) || force
134
134
  end
135
135
  end
136
136
  end
137
137
 
138
- #dbg(value, 'value')
139
138
  return value
140
139
  end
141
140
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coral_core
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
4
+ hash: 55
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 15
10
- version: 0.2.15
9
+ - 16
10
+ version: 0.2.16
11
11
  platform: ruby
12
12
  authors:
13
13
  - Adrian Webb