Class: ZionData::Parser::Sniffers

Inherits:
Object
  • Object
show all
Includes:
Helpers
Defined in:
lib/zion_data/parser/sniffers.rb

Overview

Class for parsing Zion sniffers data

Constant Summary

Constants included from Helpers

Helpers::TIME_FORMAT

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(routes:, node_times:, sequences:) ⇒ Sniffers

Returns a new instance of Sniffers.



9
10
11
12
13
# File 'lib/zion_data/parser/sniffers.rb', line 9

def initialize(routes:, node_times:, sequences:)
  @routes = parse_csv(routes)
  @node_times = parse_csv(node_times)
  @sequences = parse_csv(sequences)
end

Instance Attribute Details

#node_timesObject (readonly)

Returns the value of attribute node_times.



7
8
9
# File 'lib/zion_data/parser/sniffers.rb', line 7

def node_times
  @node_times
end

#routesObject (readonly)

Returns the value of attribute routes.



7
8
9
# File 'lib/zion_data/parser/sniffers.rb', line 7

def routes
  @routes
end

#sequencesObject (readonly)

Returns the value of attribute sequences.



7
8
9
# File 'lib/zion_data/parser/sniffers.rb', line 7

def sequences
  @sequences
end

Instance Method Details

#parseObject



15
16
17
18
19
20
21
22
23
24
# File 'lib/zion_data/parser/sniffers.rb', line 15

def parse
  sequences.each_with_object([]) do |sequence, result|
    route = find_route(sequence['route_id'])
    node_time = find_node_time(sequence['node_time_id'])
    next unless route && node_time

    result << payload(node_time['start_node'], node_time['end_node'],
                      route['time'], end_time(route['time'], node_time))
  end
end