lib/supa/commands/collection.rb in supa-0.2.3 vs lib/supa/commands/collection.rb in supa-0.3.0
- old
+ new
@@ -1,17 +1,37 @@
-require 'supa/command'
-
module Supa
module Commands
class Collection < Supa::Command
def represent
- tree[name] = []
+ return if hide?
- Array(dynamic_value).each do |element|
- tree[name] << {}
+ define_tree
+ return unless value
- Supa::Builder.new(representer: representer, context: element, tree: tree[name][-1]).instance_exec(&block)
+ value.each do |element|
+ @tree[@name] << {}
+
+ Supa::Builder.new(element,
+ representer: @representer, tree: @tree[@name][-1]).instance_exec(&@block)
end
+ end
+
+ private
+
+ def apply_render_flags(val)
+ return [] if !val && empty_when_nil?
+ val
+ end
+
+ def hide?
+ return hide_when_empty? unless value
+ return false unless value.is_a?(Array)
+
+ value.any? ? false : hide_when_empty?
+ end
+
+ def define_tree
+ @tree[@name] = !value ? nil : []
end
end
end
end