Class: Edj::Journal
- Inherits:
-
Object
- Object
- Edj::Journal
- Defined in:
- lib/edj/base.rb
Instance Attribute Summary collapse
-
#tree ⇒ Object
readonly
Returns the value of attribute tree.
Instance Method Summary collapse
- #filter(type) ⇒ Object
-
#initialize(f) ⇒ Journal
constructor
A new instance of Journal.
- #scan_value ⇒ Object
Constructor Details
#initialize(f) ⇒ Journal
Returns a new instance of Journal.
31 32 33 34 |
# File 'lib/edj/base.rb', line 31 def initialize(f) @f = f @tree = {} end |
Instance Attribute Details
#tree ⇒ Object (readonly)
Returns the value of attribute tree.
29 30 31 |
# File 'lib/edj/base.rb', line 29 def tree @tree end |
Instance Method Details
#filter(type) ⇒ Object
36 37 38 39 40 |
# File 'lib/edj/base.rb', line 36 def filter(type) File.open(@f).readlines .map {|line| Item.from(JSON.parse(line))} .select {|item| item.is_a? type } end |
#scan_value ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/edj/base.rb', line 42 def scan_value() total_value = 0 File.open(@f).each do |line| item = Item.from(JSON.parse(line)) if item.is_a? ScanItem then v = item.value bits = item.bodyName.split(' ') (1..(bits.size-1)).each do |i| entry = bits[0..i].join(' ') o = @tree[entry] @tree[entry] ||= 0 @tree[entry] += v end STDOUT.puts("#{item.} #{item.bodyName} --> #{v}") total_value = total_value + v end end total_value end |