class JsonInference::NodeValuesCollection
Public Class Methods
new()
click to toggle source
# File lib/json-inference.rb, line 29 def initialize @value_counters = Hash.new { |h,k| h[k] = ValueCounter.new(k) } end
Public Instance Methods
<<(value)
click to toggle source
# File lib/json-inference.rb, line 33 def <<(value) if value.class == String && value =~ /^(\d){4}-(\d){2}-(\d){2}T(\d){2}:(\d){2}:(\d){2}\.(\d){3}Z$/ @value_counters[Date] << value elsif [true, false].include?(value) @value_counters['Boolean'] << value else @value_counters[value.class] << value end end
size()
click to toggle source
# File lib/json-inference.rb, line 43 def size @value_counters.values.inject(0) { |sum, counter| sum + counter.size } || 0 end
to_s(indent)
click to toggle source
# File lib/json-inference.rb, line 47 def to_s(indent) str = "" @value_counters.values.each do |value_counter| str << " #{indent}#{value_counter.to_s(size)}\n" end str end