Class: TreasureData::Command::TextParser
- Inherits:
-
Object
- Object
- TreasureData::Command::TextParser
- Defined in:
- lib/td/command/table.rb
Instance Method Summary collapse
- #call(file, path, &block) ⇒ Object
-
#initialize(names, regexp, time_format) ⇒ TextParser
constructor
A new instance of TextParser.
- #parse_time(value) ⇒ Object
Constructor Details
#initialize(names, regexp, time_format) ⇒ TextParser
Returns a new instance of TextParser.
540 541 542 543 544 |
# File 'lib/td/command/table.rb', line 540 def initialize(names, regexp, time_format) @names = names @regexp = regexp @time_format = time_format end |
Instance Method Details
#call(file, path, &block) ⇒ Object
546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 |
# File 'lib/td/command/table.rb', line 546 def call(file, path, &block) i = 0 file.each_line {|line| i += 1 begin line.rstrip! m = @regexp.match(line) unless m raise "invalid log format at #{path}:#{i}" end record = {} cap = m.captures @names.each_with_index {|name,cap_i| if value = cap[cap_i] if name == "time" value = parse_time(value).to_i end record[name] = value end } block.call(record) rescue $stderr.puts " skipped: #{$!}: #{line.dump}" end } end |
#parse_time(value) ⇒ Object
578 579 580 |
# File 'lib/td/command/table.rb', line 578 def parse_time(value) Time.strptime(value, @time_format) end |