lib/i18n/tasks/data/tree/nodes.rb in i18n-tasks-0.7.6 vs lib/i18n/tasks/data/tree/nodes.rb in i18n-tasks-0.7.7
- old
+ new
@@ -27,21 +27,27 @@
node_attr = new_attr.slice(:parent)
attr[:nodes] ||= @list.map { |node| node.derive(node_attr) }
self.class.new(attr)
end
- def to_hash
- @hash ||= map(&:to_hash).reduce(:deep_merge!) || {}
+ def to_hash(sort = false)
+ (@hash ||= {})[sort] ||= begin
+ if sort
+ self.sort { |a, b| a.key <=> b.key }
+ else
+ self
+ end.map { |node| node.to_hash(sort) }.reduce({}, :deep_merge!)
+ end
end
delegate :to_json, to: :to_hash
delegate :to_yaml, to: :to_hash
def inspect
if present?
map(&:inspect) * "\n"
else
- Term::ANSIColor.dark '∅'
+ Term::ANSIColor.dark '{∅}'
end
end
# methods below change state