king_placeholder 1.0.1 → 1.0.2
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.
@@ -111,7 +111,10 @@ module KingPlaceholder
|
|
111
111
|
object = obj.send(object_name)
|
112
112
|
# Its a collection => invoice.items and access is done by ary index:
|
113
113
|
# first item => [items.1.name]
|
114
|
-
if object.
|
114
|
+
if object.nil?
|
115
|
+
# empty relation
|
116
|
+
@result.gsub!(@placeholder, '')
|
117
|
+
elsif object.is_a?(Array) && ary_index = field_names.first[/\A\d*\z/]
|
115
118
|
field_names.delete_at(0) # remove entry from field_names ary
|
116
119
|
# replace with empty string if the index does not exist or obj is empty
|
117
120
|
@result.gsub!(@placeholder, '') unless object = object[ary_index.to_i-1]
|
@@ -132,13 +132,13 @@ describe 'Placeholder substitution' do
|
|
132
132
|
|
133
133
|
context 'with empty fields' do
|
134
134
|
|
135
|
-
it 'should
|
135
|
+
it 'should parse valid but empty placeholder group with empty string' do
|
136
136
|
master = Master.new
|
137
137
|
master.details = []
|
138
138
|
master.expand_placeholders('[details][int_field][/details]').should == ''
|
139
139
|
end
|
140
140
|
|
141
|
-
it 'should
|
141
|
+
it 'should parse single item group with empty string' do
|
142
142
|
@master.expand_placeholders('[details.10.int_field]').should == ''
|
143
143
|
end
|
144
144
|
|
@@ -146,6 +146,11 @@ describe 'Placeholder substitution' do
|
|
146
146
|
@master.string_field = nil
|
147
147
|
@detail1.expand_placeholders('[master.string_field]').should == ''
|
148
148
|
end
|
149
|
+
|
150
|
+
it 'should parse empty related object with empty string' do
|
151
|
+
@detail1.master = nil
|
152
|
+
@detail1.expand_placeholders('[master.string_field]').should == ''
|
153
|
+
end
|
149
154
|
end
|
150
155
|
|
151
156
|
context 'with collection' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: king_placeholder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -173,7 +173,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
173
173
|
version: '0'
|
174
174
|
segments:
|
175
175
|
- 0
|
176
|
-
hash: -
|
176
|
+
hash: -1074118578263294842
|
177
177
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
178
178
|
none: false
|
179
179
|
requirements:
|
@@ -182,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
182
182
|
version: '0'
|
183
183
|
segments:
|
184
184
|
- 0
|
185
|
-
hash: -
|
185
|
+
hash: -1074118578263294842
|
186
186
|
requirements: []
|
187
187
|
rubyforge_project:
|
188
188
|
rubygems_version: 1.8.24
|