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