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