atco 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/atco.rb +6 -3
- data/lib/atco/journey.rb +66 -0
- data/lib/atco/location.rb +27 -0
- data/lib/atco/stop.rb +31 -0
- metadata +5 -3
- data/lib/location.rb +0 -23
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
data/lib/atco.rb
CHANGED
@@ -3,7 +3,10 @@ $:.unshift(File.dirname(__FILE__)) unless
|
|
3
3
|
|
4
4
|
require 'open3'
|
5
5
|
require 'tempfile'
|
6
|
-
require 'location'
|
6
|
+
require 'atco/location'
|
7
|
+
require 'atco/journey'
|
8
|
+
require 'atco/stop'
|
9
|
+
|
7
10
|
|
8
11
|
module Atco
|
9
12
|
VERSION = '0.0.1'
|
@@ -52,9 +55,9 @@ module Atco
|
|
52
55
|
|
53
56
|
if current_journey
|
54
57
|
if journeys[current_journey[:unique_journey_identifier]]
|
55
|
-
journeys[current_journey[:unique_journey_identifier]] << object
|
58
|
+
journeys[current_journey[:unique_journey_identifier]].stops << Stop.new(object)
|
56
59
|
else
|
57
|
-
journeys[current_journey[:unique_journey_identifier]] =
|
60
|
+
journeys[current_journey[:unique_journey_identifier]] = Journey.new(object)
|
58
61
|
end
|
59
62
|
end
|
60
63
|
objects << object
|
data/lib/atco/journey.rb
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
module Atco
|
2
|
+
|
3
|
+
class Journey
|
4
|
+
|
5
|
+
attr_accessor :vehicle_type, :registration_number, :identifier, :operator, :route_number,
|
6
|
+
:first_date_of_operation, :running_board, :last_date_of_operation, :school_term_time, :route_direction, :bank_holidays
|
7
|
+
|
8
|
+
attr_accessor :stops
|
9
|
+
|
10
|
+
def initialize(data)
|
11
|
+
@mondays = parse_boolean_int data[:operates_on_mondays]
|
12
|
+
@tuesdays = parse_boolean_int data[:operates_on_tuesdays]
|
13
|
+
@wednesdays = parse_boolean_int data[:operates_on_wednesdays]
|
14
|
+
@thursdays = parse_boolean_int data[:operates_on_thursdays]
|
15
|
+
@fridays = parse_boolean_int data[:operates_on_fridays]
|
16
|
+
@saturdays = parse_boolean_int data[:operates_on_saturdays]
|
17
|
+
@sundays = parse_boolean_int data[:operates_on_sundays]
|
18
|
+
|
19
|
+
@vehicle_type = data[:vehicle_type]
|
20
|
+
@registration_number = data[:registration_number]
|
21
|
+
@identifier = data[:unique_journey_identifier]
|
22
|
+
@operator = data[:operator]
|
23
|
+
@route_number = data[:route_number]
|
24
|
+
@route_direction = data[:route_direction]
|
25
|
+
@first_date_of_operation = data[:first_date_of_operation]
|
26
|
+
@last_date_of_operation = data[:last_date_of_operation]
|
27
|
+
@running_board = data[:running_board]
|
28
|
+
@school_term_time = data[:school_term_time]
|
29
|
+
@bank_holidays = data[:bank_holidays]
|
30
|
+
|
31
|
+
@stops = []
|
32
|
+
#stops.each do |s|
|
33
|
+
# @stops << Stop.new(s)
|
34
|
+
#end
|
35
|
+
end
|
36
|
+
|
37
|
+
def mondays?; @mondays; end
|
38
|
+
def tuesdays?; @tuesdays; end
|
39
|
+
def wednesdays?; @wednesdays; end
|
40
|
+
def thursdays?; @thursdays; end
|
41
|
+
def fridays?; @fridays; end
|
42
|
+
def saturdays?; @saturdays; end
|
43
|
+
def sundays?; @sundays; end
|
44
|
+
|
45
|
+
def parse_boolean_int(string)
|
46
|
+
(string && string == "1") ? true : false
|
47
|
+
end
|
48
|
+
|
49
|
+
def to_json(*args)
|
50
|
+
{
|
51
|
+
:vehicle_type => @vehicle_type,
|
52
|
+
:registration_number => @registration_number,
|
53
|
+
:identifier => @identifier,
|
54
|
+
:operator => @operator,
|
55
|
+
:route_number => @route_number,
|
56
|
+
:first_date_of_operation => @first_date_of_operation,
|
57
|
+
:running_board => @running_board,
|
58
|
+
:last_date_of_operation => @last_date_of_operation,
|
59
|
+
:school_term_time => @school_term_time,
|
60
|
+
:route_direction => @route_direction,
|
61
|
+
:bank_holidays => @bank_holidays,
|
62
|
+
:stops => @stops
|
63
|
+
}.to_json(*args)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Atco
|
2
|
+
|
3
|
+
class Location
|
4
|
+
|
5
|
+
attr_accessor :name, :identifier, :easting, :northing, :gazeteer_code
|
6
|
+
|
7
|
+
def initialize(location_header, additional_location_information)
|
8
|
+
@name = location_header[:full_location]
|
9
|
+
@identifier = location_header[:record_identity]
|
10
|
+
@easting = additional_location_information[:grid_reference_easting]
|
11
|
+
@northing = additional_location_information[:grid_reference_northing]
|
12
|
+
@gazeteer_code = location_header[:gazetteer_code]
|
13
|
+
end
|
14
|
+
|
15
|
+
def to_json(*a)
|
16
|
+
{
|
17
|
+
:name => @name,
|
18
|
+
:identifier => @identifier,
|
19
|
+
:easting => @easting,
|
20
|
+
:northing => @northing,
|
21
|
+
:gazeteer_code => @gazeteer_code
|
22
|
+
}.to_json(*a)
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
data/lib/atco/stop.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
module Atco
|
2
|
+
|
3
|
+
class Stop
|
4
|
+
|
5
|
+
attr_accessor :bay_number, :location, :timing_point_indicator, :fare_stage_indicator, :published_departure_time, :record_identity
|
6
|
+
|
7
|
+
def origin?; @record_identity == "QO"; end
|
8
|
+
def intermediate?; @record_identity == "QI"; end
|
9
|
+
def destination?; @record_identity == "QT"; end
|
10
|
+
|
11
|
+
def initialize(data)
|
12
|
+
@bay_number = data[:bay_number]
|
13
|
+
@location = data[:location]
|
14
|
+
@timing_point_indicator = data[:timing_point_indicator]
|
15
|
+
@fare_stage_indicator = data[:fare_stage_indicator]
|
16
|
+
@published_departure_time = data[:published_departure_time]
|
17
|
+
@record_identity = data[:record_identity]
|
18
|
+
end
|
19
|
+
|
20
|
+
def to_json(*args)
|
21
|
+
{
|
22
|
+
:record_identity => @record_identity,
|
23
|
+
:location => @location,
|
24
|
+
:published_departure_time => @published_departure_time,
|
25
|
+
:timing_point_indicator => @timing_point_indicator,
|
26
|
+
:fare_stage_indicator => @fare_stage_indicator,
|
27
|
+
:bay_number => @bay_number
|
28
|
+
}.to_json(*args)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 2
|
9
|
+
version: 0.0.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- David Rice
|
@@ -31,7 +31,9 @@ files:
|
|
31
31
|
- Rakefile
|
32
32
|
- VERSION
|
33
33
|
- lib/atco.rb
|
34
|
-
- lib/
|
34
|
+
- lib/atco/journey.rb
|
35
|
+
- lib/atco/location.rb
|
36
|
+
- lib/atco/stop.rb
|
35
37
|
has_rdoc: true
|
36
38
|
homepage: http://github.com/davidjrice/atco
|
37
39
|
licenses: []
|
data/lib/location.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
class Location
|
2
|
-
|
3
|
-
attr_accessor :name, :identifier, :easting, :northing, :gazeteer_code
|
4
|
-
|
5
|
-
def initialize(location_header, additional_location_information)
|
6
|
-
@name = location_header[:full_location]
|
7
|
-
@identifier = location_header[:record_identity]
|
8
|
-
@easting = additional_location_information[:grid_reference_easting]
|
9
|
-
@northing = additional_location_information[:grid_reference_northing]
|
10
|
-
@gazeteer_code = location_header[:gazetteer_code]
|
11
|
-
end
|
12
|
-
|
13
|
-
def to_json(*a)
|
14
|
-
{
|
15
|
-
:name => @name,
|
16
|
-
:identifier => @identifier,
|
17
|
-
:easting => @easting,
|
18
|
-
:northing => @northing,
|
19
|
-
:gazeteer_code => @gazeteer_code
|
20
|
-
}.to_json(*a)
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|