Class: JsonInference::NodeValuesCollection
- Inherits:
-
Object
- Object
- JsonInference::NodeValuesCollection
- Defined in:
- lib/json-inference.rb
Defined Under Namespace
Classes: ValueCounter
Instance Method Summary collapse
- #<<(value) ⇒ Object
-
#initialize ⇒ NodeValuesCollection
constructor
A new instance of NodeValuesCollection.
- #size ⇒ Object
- #to_s(indent) ⇒ Object
Constructor Details
#initialize ⇒ NodeValuesCollection
Returns a new instance of NodeValuesCollection.
29 30 31 |
# File 'lib/json-inference.rb', line 29 def initialize @value_counters = Hash.new { |h,k| h[k] = ValueCounter.new(k) } end |
Instance Method Details
#<<(value) ⇒ Object
33 34 35 36 37 38 39 40 41 |
# 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 ⇒ Object
43 44 45 |
# File 'lib/json-inference.rb', line 43 def size @value_counters.values.inject(0) { |sum, counter| sum + counter.size } || 0 end |
#to_s(indent) ⇒ Object
47 48 49 50 51 52 53 |
# 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 |