class Faceter::Rules::PrependNested
Optimizes AST by moving nested nodes from the array level to one level deeper:
@example Removes unnecessary iterations by items of the same array.
prefix "foo", nested: true list do # ... end # Becomes: list do prefix "foo", nested: true # ... end
@example Removes “flat” operation that cannot be applied to non-hashes
prefix "foo", nested: false list do # ... end # Becomes: list do # ... end
@api private
Public Instance Methods
optimize()
click to toggle source
@private
# File lib/faceter/rules/prepend_nested.rb, line 43 def optimize Nodes::List.new { (left.nested ? [left] : []) + right.entries } end
optimize?()
click to toggle source
@private
# File lib/faceter/rules/prepend_nested.rb, line 38 def optimize? left.respond_to?(:nested) && right.instance_of?(Nodes::List) end