lib/mediator/parser.rb in mediator-0.4.0 vs lib/mediator/parser.rb in mediator-0.4.1
- old
+ new
@@ -52,15 +52,17 @@
end
def many name, options = {}, &block
options = {construct: true}.merge options
+ data = get(name, options)
+ return if data.nil? and !options[:empty] # Can't use main empty? call here as [] does not count as empty..
+
mediator.set name, [] unless options[:merge]
- data = get(name, options) || []
subj = (options && options[:subject]) || mediator.get(name, options)
- data.each do |d|
+ (data || []).each do |d|
name = name[0..-2] if name[-1] == "s"
s = mediator.construct name
sub s, d, options, &block
end
end