coral_core 0.2.15 → 0.2.16

Sign up to get free protection for your applications and to get access to all the features.
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