class ZionData::Parser::Sentinels

Class for parsing Zion sentinels data

Constants

ROUTE_GROUP_SIZE

Attributes

routes[R]

Public Class Methods

new(routes:) click to toggle source
# File lib/zion_data/parser/sentinels.rb, line 11
def initialize(routes:)
  @routes = parse_csv(routes)
end

Public Instance Methods

parse() click to toggle source
# File lib/zion_data/parser/sentinels.rb, line 15
def parse
  route_groups.map do |first, last|
    payload(first['node'], last['node'], first['time'], last['time'])
  end
end

Private Instance Methods

route_groups() click to toggle source
# File lib/zion_data/parser/sentinels.rb, line 23
def route_groups
  routes.sort_by { |r| r['route_id'] }.group_by { |r| r['index'] }.values
        .select { |r| r.size == ROUTE_GROUP_SIZE }
end