ierail 0.3.2 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/Gemfile.lock +3 -1
- data/ierail.gemspec +4 -1
- data/lib/core_ext.rb +5 -4
- data/lib/station_data.rb +7 -7
- data/test/unit/ierail.rb +16 -5
- data/test/unit/station_data.rb +7 -7
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
M2I4ZmZhZmU5MDM4N2Y0YzQyYTIxZDFjMTFmOWYxZDEyMzkyNmQ2Yg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
OGZhZTJjMDA5NzQ4NjhhOWVjZGM3NTc3YjgyOTFiZTdhOGVlNGI0ZQ==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZjQ1NjY0NmVmY2QxMmE2MjcwZmE0ZjIxYjAzMmM4ZTA3NTY1MDI5MGQ4ODlj
|
10
|
+
MDljZGFkZTcwMTkyMzgzNDVlNjkxYTQ0YTZhMTE3NzQwMTQ4NjViNWE4MWFk
|
11
|
+
NTQxMDQzMmI1ZDQyYjMwM2M3NDQzNjZhNWJmZDRlMDRjM2ZlY2E=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZDIzZjI2MTA3Y2M1ZThkYzNhOWVkNWQ2YTFjY2VmMjcwNmJlZmJlOTc0M2Zi
|
14
|
+
NzQwYzY3ZTA2NWFlZWUyZDE5NjY4MmI0ZDAwMmU1ZGQ5MDQ2NmFlNDBiNDVl
|
15
|
+
ZGRmNTgwNmVmNDE5MDE0NWEwNGYwNDMxYTFiOWIyODUyZDhmOWE=
|
data/Gemfile.lock
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ierail (0.3)
|
4
|
+
ierail (0.3.3)
|
5
5
|
json (~> 1.7.7)
|
6
6
|
nokogiri (~> 1.5.0)
|
7
7
|
rest-client (~> 1.6.7)
|
8
|
+
tzinfo (~> 0.3.37)
|
8
9
|
|
9
10
|
GEM
|
10
11
|
remote: https://rubygems.org/
|
@@ -28,6 +29,7 @@ GEM
|
|
28
29
|
simplecov-html (~> 0.7.1)
|
29
30
|
simplecov-html (0.7.1)
|
30
31
|
thor (0.18.1)
|
32
|
+
tzinfo (0.3.37)
|
31
33
|
|
32
34
|
PLATFORMS
|
33
35
|
ruby
|
data/ierail.gemspec
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
+
require 'date'
|
2
|
+
|
1
3
|
Gem::Specification.new do |s|
|
2
4
|
s.name = 'ierail'
|
3
|
-
s.version = '0.3.
|
5
|
+
s.version = '0.3.4'
|
4
6
|
s.date = Date.today.to_s
|
5
7
|
s.summary = "Irish Rail Train Schedule and Status API"
|
6
8
|
s.description = "Irish Rail Train Schedule and Status API"
|
@@ -11,4 +13,5 @@ Gem::Specification.new do |s|
|
|
11
13
|
s.add_dependency 'nokogiri', '~> 1.5.0'
|
12
14
|
s.add_dependency 'rest-client', '~> 1.6.7'
|
13
15
|
s.add_dependency 'json', '~> 1.7.7'
|
16
|
+
s.add_dependency 'tzinfo', '~> 0.3.37'
|
14
17
|
end
|
data/lib/core_ext.rb
CHANGED
@@ -2,20 +2,21 @@ class Array
|
|
2
2
|
#Filters elements, collecting those
|
3
3
|
#whose times are before _time_
|
4
4
|
def before time
|
5
|
-
select {|t|
|
5
|
+
select {|t| t.expdepart <= Time.parse(time) }
|
6
6
|
end
|
7
7
|
|
8
8
|
#Filters elements, collecting those
|
9
9
|
#whose times are after _time_
|
10
10
|
def after time
|
11
|
-
select {|t|
|
11
|
+
select {|t| t.expdepart >= Time.parse(time) }
|
12
12
|
end
|
13
13
|
|
14
14
|
# The 'in' is just sugar really, saving the
|
15
15
|
# programmer from doing a trivial computation
|
16
16
|
# over and over again in their code.
|
17
17
|
def in time
|
18
|
-
|
19
|
-
|
18
|
+
select { |t|
|
19
|
+
((t.expdepart - t.query_time ) / 60) < time
|
20
|
+
}
|
20
21
|
end
|
21
22
|
end
|
data/lib/station_data.rb
CHANGED
@@ -8,20 +8,20 @@ class StationData
|
|
8
8
|
@traincode = hash['Traincode']
|
9
9
|
@station_name = hash['Stationfullname']
|
10
10
|
@station_code = hash['Stationcode']
|
11
|
-
@query_time = hash['Querytime']
|
11
|
+
@query_time = Time.parse(hash['Querytime'])
|
12
12
|
@train_date = hash['Traindate']
|
13
13
|
@origin = hash['Origin']
|
14
14
|
@destination = hash['Destination']
|
15
|
-
@origin_time = hash['Origintime']
|
16
|
-
@destination_time = hash['Destinationtime']
|
15
|
+
@origin_time = Time.parse hash['Origintime']
|
16
|
+
@destination_time = Time.parse hash['Destinationtime']
|
17
17
|
@status = hash['Status']
|
18
18
|
@last_location = hash['Lastlocation']
|
19
19
|
@duein = hash['Duein']
|
20
20
|
@late = hash['Late']
|
21
|
-
@exparrival = hash['Exparrival']
|
22
|
-
@expdepart = hash['Expdepart']
|
23
|
-
@scharrival = hash['Scharrival']
|
24
|
-
@schdepart = hash['Schdepart']
|
21
|
+
@exparrival = Time.parse hash['Exparrival']
|
22
|
+
@expdepart = Time.parse hash['Expdepart']
|
23
|
+
@scharrival = Time.parse hash['Scharrival']
|
24
|
+
@schdepart = Time.parse hash['Schdepart']
|
25
25
|
@direction = hash['Direction']
|
26
26
|
@train_type = hash['Traintype']
|
27
27
|
end
|
data/test/unit/ierail.rb
CHANGED
@@ -4,10 +4,21 @@ require_relative 'helper'
|
|
4
4
|
|
5
5
|
require 'minitest/autorun'
|
6
6
|
require 'ierail'
|
7
|
+
require 'tzinfo'
|
7
8
|
|
8
9
|
class IERailTest < MiniTest::Unit::TestCase
|
9
10
|
def setup
|
10
11
|
@ir = IERail.new
|
12
|
+
|
13
|
+
@now = Time.now
|
14
|
+
|
15
|
+
if TZInfo::Timezone.get('Europe/Dublin').current_period.dst?
|
16
|
+
unless @now.zone == 'IST'
|
17
|
+
@now -= @now.utc_offset - 3600
|
18
|
+
end
|
19
|
+
else
|
20
|
+
@now -= @now.utc_offset
|
21
|
+
end
|
11
22
|
end
|
12
23
|
|
13
24
|
def test_that_the_train_directions_are_correct
|
@@ -24,23 +35,23 @@ class IERailTest < MiniTest::Unit::TestCase
|
|
24
35
|
|
25
36
|
def test_that_the_before_time_constraint_works
|
26
37
|
#Thirty minutes from now
|
27
|
-
thirty_mins =
|
38
|
+
thirty_mins = @now + (60 * 30)
|
28
39
|
time = "#{thirty_mins.hour}:#{thirty_mins.min}" # "HH:MM"
|
29
40
|
before_train = @ir.southbound_from('Malahide').before(time).sample
|
30
|
-
assert
|
41
|
+
assert before_train.expdepart <= thirty_mins
|
31
42
|
end
|
32
43
|
|
33
44
|
def test_that_the_after_time_constraint_works
|
34
45
|
#Thirty minutes from now
|
35
|
-
thirty_mins =
|
46
|
+
thirty_mins = @now + (60 * 30)
|
36
47
|
time = "#{thirty_mins.hour}:#{thirty_mins.min}" # "HH:MM"
|
37
48
|
after_train = @ir.southbound_from('Malahide').after(time).sample
|
38
|
-
assert
|
49
|
+
assert after_train.expdepart >= thirty_mins
|
39
50
|
end
|
40
51
|
|
41
52
|
def test_that_the_in_constraint_works
|
42
53
|
mins = 30
|
43
|
-
thirty_mins =
|
54
|
+
thirty_mins = @now + (60 * mins)
|
44
55
|
time = "#{thirty_mins.hour}:#{thirty_mins.min}" # "HH:MM"
|
45
56
|
before_train = @ir.southbound_from('Malahide').before(time)
|
46
57
|
|
data/test/unit/station_data.rb
CHANGED
@@ -33,7 +33,7 @@ class StationDataTest < MiniTest::Unit::TestCase
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def test_that_there_is_a_query_time
|
36
|
-
|
36
|
+
refute_nil @station_data.query_time
|
37
37
|
end
|
38
38
|
|
39
39
|
def test_that_there_is_a_train_date
|
@@ -46,7 +46,7 @@ class StationDataTest < MiniTest::Unit::TestCase
|
|
46
46
|
|
47
47
|
def test_that_there_is_an_origin_name_and_time
|
48
48
|
refute_empty @station_data.origin[:name]
|
49
|
-
|
49
|
+
refute_nil @station_data.origin[:time]
|
50
50
|
end
|
51
51
|
|
52
52
|
def test_that_destination_method_returns_a_hash
|
@@ -55,7 +55,7 @@ class StationDataTest < MiniTest::Unit::TestCase
|
|
55
55
|
|
56
56
|
def test_that_there_is_a_destination_name_and_time
|
57
57
|
refute_empty @station_data.destination[:name]
|
58
|
-
|
58
|
+
refute_nil @station_data.destination[:time]
|
59
59
|
end
|
60
60
|
|
61
61
|
def test_that_arrival_method_returns_a_hash
|
@@ -63,8 +63,8 @@ class StationDataTest < MiniTest::Unit::TestCase
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def test_that_there_is_an_arrival_sched_and_exp
|
66
|
-
|
67
|
-
|
66
|
+
refute_nil @station_data.arrival[:scheduled]
|
67
|
+
refute_nil @station_data.arrival[:expected]
|
68
68
|
end
|
69
69
|
|
70
70
|
def test_that_departure_method_returns_a_hash
|
@@ -72,8 +72,8 @@ class StationDataTest < MiniTest::Unit::TestCase
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def test_that_there_is_a_departure_sched_and_exp
|
75
|
-
|
76
|
-
|
75
|
+
refute_nil @station_data.departure[:scheduled]
|
76
|
+
refute_nil @station_data.departure[:expected]
|
77
77
|
end
|
78
78
|
|
79
79
|
def test_that_it_responds_to_late?
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ierail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oisin Hurley
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-05-
|
12
|
+
date: 2013-05-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -53,6 +53,20 @@ dependencies:
|
|
53
53
|
- - ~>
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: 1.7.7
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: tzinfo
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ~>
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 0.3.37
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.3.37
|
56
70
|
description: Irish Rail Train Schedule and Status API
|
57
71
|
email: oi.sin@nis.io
|
58
72
|
executables: []
|