class Factbook::Counter
Attributes
data[R]
Public Class Methods
new()
click to toggle source
# File lib/factbook-readers/counter.rb, line 8 def initialize @data = {} end
Public Instance Methods
count( code, page )
click to toggle source
# File lib/factbook-readers/counter.rb, line 12 def count( code, page ) ## walk page data hash # add nodes to data walk( code, page.to_h, @data ) end
Private Instance Methods
walk( code, hin, hout )
click to toggle source
# File lib/factbook-readers/counter.rb, line 22 def walk( code, hin, hout ) hin.each do |k,v| if v.is_a?( Hash ) hout2 = hout[k] ||= { count: 0, codes: '' } hout2[ :count ] += 1 ## delete codes if larger (treshhold) than x (e.g. 9) hout2.delete( :codes ) if hout2[ :count ] > 9 codes = hout2[ :codes ] if codes ## note: might got deleted if passed treshhold (e.g. 9 entries) codes << ' ' unless codes.empty? ## add separator (space for now) codes << code hout2[ :codes ] = codes end walk( code, v, hout2 ) end end end