class Perforated::Rebuilder
Attributes
parser[R]
strings[R]
Public Class Methods
new(strings, parser = Perforated.json)
click to toggle source
# File lib/perforated/rebuilder.rb, line 7 def initialize(strings, parser = Perforated.json) @strings = strings @parser = parser end
Public Instance Methods
concatenated()
click to toggle source
# File lib/perforated/rebuilder.rb, line 20 def concatenated "[#{strings.join(',')}]" end
rebuild(rooted: false)
click to toggle source
# File lib/perforated/rebuilder.rb, line 12 def rebuild(rooted: false) if rooted parser.dump(merge(parser.load(concatenated))) else concatenated end end
Private Instance Methods
merge(objects)
click to toggle source
# File lib/perforated/rebuilder.rb, line 26 def merge(objects) merged = objects.each_with_object({}) do |object, memo| object.each do |key, value| memo[key] ||= Set.new if value.is_a?(Array) memo[key].merge(value) else memo[key].add(value) end end end sets_to_arrays(merged) end
sets_to_arrays(merged)
click to toggle source
# File lib/perforated/rebuilder.rb, line 42 def sets_to_arrays(merged) merged.each do |key, value| merged[key] = value.to_a end merged end