echelon 1.0.1 → 1.0.2
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.
- data/.travis.yml +5 -0
- data/Gemfile +6 -1
- data/Gemfile.lock +5 -3
- data/History.txt +9 -0
- data/README.rdoc +2 -0
- data/echelon.gemspec +1 -1
- data/lib/echelon/park.rb +1 -1
- data/lib/echelon/parks/seaworld/orlando.rb +8 -7
- data/lib/echelon/parks/seaworld/san_antonio.rb +6 -6
- data/lib/echelon/parks/seaworld/san_diego.rb +7 -6
- data/lib/echelon/version.rb +1 -1
- data/spec/alton_towers_spec.rb +1 -1
- data/spec/seaworld_san_antonio_spec.rb +4 -4
- metadata +84 -101
data/.travis.yml
ADDED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
echelon (1.0.
|
4
|
+
echelon (1.0.1)
|
5
5
|
json_pure (= 1.4.6)
|
6
|
-
|
6
|
+
nokogiri (~> 1.5)
|
7
7
|
zip (= 2.0.2)
|
8
8
|
|
9
9
|
GEM
|
@@ -11,6 +11,8 @@ GEM
|
|
11
11
|
specs:
|
12
12
|
diff-lcs (1.1.2)
|
13
13
|
json_pure (1.4.6)
|
14
|
+
nokogiri (1.5.5)
|
15
|
+
rake (0.9.2.2)
|
14
16
|
rspec (2.4.0)
|
15
17
|
rspec-core (~> 2.4.0)
|
16
18
|
rspec-expectations (~> 2.4.0)
|
@@ -19,7 +21,6 @@ GEM
|
|
19
21
|
rspec-expectations (2.4.0)
|
20
22
|
diff-lcs (~> 1.1.2)
|
21
23
|
rspec-mocks (2.4.0)
|
22
|
-
xml-simple (1.0.12)
|
23
24
|
zip (2.0.2)
|
24
25
|
|
25
26
|
PLATFORMS
|
@@ -28,4 +29,5 @@ PLATFORMS
|
|
28
29
|
DEPENDENCIES
|
29
30
|
bundler (>= 1.0.0)
|
30
31
|
echelon!
|
32
|
+
rake
|
31
33
|
rspec (>= 2.4.0)
|
data/History.txt
CHANGED
data/README.rdoc
CHANGED
data/echelon.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
|
|
20
20
|
|
21
21
|
s.add_dependency "json_pure", "1.4.6"
|
22
22
|
s.add_dependency "zip", "2.0.2"
|
23
|
-
s.add_dependency "
|
23
|
+
s.add_dependency "nokogiri", "~> 1.5"
|
24
24
|
|
25
25
|
s.files = `git ls-files`.split("\n")
|
26
26
|
s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
|
data/lib/echelon/park.rb
CHANGED
@@ -11,7 +11,7 @@ module Echelon
|
|
11
11
|
|
12
12
|
def find_by_name(ride)
|
13
13
|
raise ArgumentError, "Unknown ride name" unless ride_list.has_value?(ride)
|
14
|
-
ref = ride_list.index(ride)
|
14
|
+
ref = ride_list.respond_to?(:key) ? ride_list.key(ride) : ride_list.index(ride)
|
15
15
|
create_ride_object(ref)
|
16
16
|
end
|
17
17
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require '
|
2
|
+
require 'nokogiri'
|
3
3
|
require 'net/http'
|
4
4
|
require 'date'
|
5
5
|
|
@@ -11,13 +11,14 @@ module Echelon
|
|
11
11
|
|
12
12
|
def ride_list
|
13
13
|
{
|
14
|
-
2002 => 'Wild Arctic Ride',
|
15
14
|
2048 => 'Flying Fiddler',
|
16
15
|
2049 => 'Swishy Fishies',
|
17
16
|
2034 => 'Kraken',
|
18
17
|
2018 => 'Sky Tower',
|
19
18
|
2036 => 'Journey to Atlantis',
|
20
19
|
2037 => 'Manta',
|
20
|
+
2220 => 'Wild Arctic Ride',
|
21
|
+
2343 => 'Turtle Trek',
|
21
22
|
2008 => 'Sea Carousel',
|
22
23
|
2044 => 'Shamu Express',
|
23
24
|
2045 => 'Ocean Commotion',
|
@@ -33,17 +34,17 @@ module Echelon
|
|
33
34
|
resp, data = http.get('/orlando/rides')
|
34
35
|
|
35
36
|
# were only interested in the ride data, throw everything else away
|
36
|
-
xml_data =
|
37
|
-
@xml_data = xml_data
|
37
|
+
xml_data = Nokogiri::HTML(data)
|
38
|
+
@xml_data = xml_data.xpath("//ride")
|
38
39
|
end
|
39
40
|
|
40
41
|
private
|
41
42
|
|
42
43
|
def create_ride_object(ref)
|
43
44
|
self.xml_data.each do |ride|
|
44
|
-
if ride
|
45
|
-
active, queue_time = parse_wait_time(ride
|
46
|
-
updated_at = DateTime.parse(ride
|
45
|
+
if ride.xpath('id').inner_text.to_i == ref
|
46
|
+
active, queue_time = parse_wait_time(ride.xpath('waittime').inner_text)
|
47
|
+
updated_at = DateTime.parse(ride.xpath('lastmodified').inner_text)
|
47
48
|
return Ride.new(:name => self.ride_list[ref], :queue_time => queue_time, :active => active, :updated_at => updated_at)
|
48
49
|
end
|
49
50
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require '
|
2
|
+
require 'nokogiri'
|
3
3
|
require 'net/http'
|
4
4
|
require 'date'
|
5
5
|
|
@@ -29,17 +29,17 @@ module Echelon
|
|
29
29
|
resp, data = http.get('/seaworld/rides')
|
30
30
|
|
31
31
|
# were only interested in the ride data, throw everything else away
|
32
|
-
xml_data =
|
33
|
-
@xml_data = xml_data
|
32
|
+
xml_data = Nokogiri::HTML(data)
|
33
|
+
@xml_data = xml_data.xpath("//ride")
|
34
34
|
end
|
35
35
|
|
36
36
|
private
|
37
37
|
|
38
38
|
def create_ride_object(ref)
|
39
39
|
self.xml_data.each do |ride|
|
40
|
-
if ride
|
41
|
-
active, queue_time = parse_wait_time(ride
|
42
|
-
updated_at = DateTime.parse(ride
|
40
|
+
if ride.xpath('id').inner_text.to_i == ref
|
41
|
+
active, queue_time = parse_wait_time(ride.xpath('waittime').inner_text)
|
42
|
+
updated_at = DateTime.parse(ride.xpath('lastmodified').inner_text)
|
43
43
|
return Ride.new(:name => self.ride_list[ref], :queue_time => queue_time, :active => active, :updated_at => updated_at)
|
44
44
|
end
|
45
45
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require '
|
2
|
+
require 'nokogiri'
|
3
3
|
require 'net/http'
|
4
4
|
require 'date'
|
5
5
|
|
@@ -12,6 +12,7 @@ module Echelon
|
|
12
12
|
def ride_list
|
13
13
|
{
|
14
14
|
1034 => 'Shipwreck Rapids',
|
15
|
+
1239 => 'Manta',
|
15
16
|
1024 => 'Skytower',
|
16
17
|
1010 => 'Journey to Atlantis',
|
17
18
|
1011 => 'Wild Arctic Ride',
|
@@ -30,17 +31,17 @@ module Echelon
|
|
30
31
|
resp, data = http.get('/san_diego/rides')
|
31
32
|
|
32
33
|
# were only interested in the ride data, throw everything else away
|
33
|
-
xml_data =
|
34
|
-
@xml_data = xml_data
|
34
|
+
xml_data = Nokogiri::HTML(data)
|
35
|
+
@xml_data = xml_data.xpath("//ride")
|
35
36
|
end
|
36
37
|
|
37
38
|
private
|
38
39
|
|
39
40
|
def create_ride_object(ref)
|
40
41
|
self.xml_data.each do |ride|
|
41
|
-
if ride
|
42
|
-
active, queue_time = parse_wait_time(ride
|
43
|
-
updated_at = DateTime.parse(ride
|
42
|
+
if ride.xpath('id').inner_text.to_i == ref
|
43
|
+
active, queue_time = parse_wait_time(ride.xpath('waittime').inner_text)
|
44
|
+
updated_at = DateTime.parse(ride.xpath('lastmodified').inner_text)
|
44
45
|
return Ride.new(:name => self.ride_list[ref], :queue_time => queue_time, :active => active, :updated_at => updated_at)
|
45
46
|
end
|
46
47
|
end
|
data/lib/echelon/version.rb
CHANGED
data/spec/alton_towers_spec.rb
CHANGED
@@ -26,7 +26,7 @@ describe Echelon::AltonTowers do
|
|
26
26
|
|
27
27
|
it "should return ride object values correctly" do
|
28
28
|
ride = @park.find_by_id(3)
|
29
|
-
ride.name.should eql("
|
29
|
+
ride.name.should eql("TH13TEEN")
|
30
30
|
ride.queue_time.should satisfy { |v| v >= 0 && v < 1000 }
|
31
31
|
ride.active.should satisfy { |v| v == 0 || v == 1 }
|
32
32
|
end
|
@@ -1,18 +1,18 @@
|
|
1
1
|
require 'echelon/park'
|
2
|
-
require 'echelon/parks/
|
2
|
+
require 'echelon/parks/seaworld/san_antonio'
|
3
3
|
|
4
4
|
# Mosts of the test here are pretty generic, although you can test for specific
|
5
5
|
# cases, such as the active states may differ between parks, and queue times may
|
6
6
|
# not exceed a certain value etc etc.
|
7
7
|
|
8
|
-
describe Echelon::
|
8
|
+
describe Echelon::Seaworld::SanAntonio do
|
9
9
|
|
10
10
|
before do
|
11
|
-
@park = Echelon::
|
11
|
+
@park = Echelon::Seaworld::SanAntonio.new()
|
12
12
|
end
|
13
13
|
|
14
14
|
it "should inherit from Park" do
|
15
|
-
@park.should be_kind_of(Echelon::
|
15
|
+
@park.should be_kind_of(Echelon::Seaworld::SanAntonio)
|
16
16
|
end
|
17
17
|
|
18
18
|
it "should have some rides" do
|
metadata
CHANGED
@@ -1,113 +1,108 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: echelon
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.2
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
- 1
|
10
|
-
version: 1.0.1
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Lloyd Pick
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-08-21 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: bundler
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 23
|
29
|
-
segments:
|
30
|
-
- 1
|
31
|
-
- 0
|
32
|
-
- 0
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
33
21
|
version: 1.0.0
|
34
22
|
type: :development
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: rspec
|
38
23
|
prerelease: false
|
39
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.0.0
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rspec
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
40
33
|
none: false
|
41
|
-
requirements:
|
42
|
-
- -
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
hash: 31
|
45
|
-
segments:
|
46
|
-
- 2
|
47
|
-
- 4
|
48
|
-
- 0
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
49
37
|
version: 2.4.0
|
50
38
|
type: :development
|
51
|
-
version_requirements: *id002
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
name: json_pure
|
54
39
|
prerelease: false
|
55
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 2.4.0
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: json_pure
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
56
49
|
none: false
|
57
|
-
requirements:
|
58
|
-
- -
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
hash: 11
|
61
|
-
segments:
|
62
|
-
- 1
|
63
|
-
- 4
|
64
|
-
- 6
|
50
|
+
requirements:
|
51
|
+
- - '='
|
52
|
+
- !ruby/object:Gem::Version
|
65
53
|
version: 1.4.6
|
66
54
|
type: :runtime
|
67
|
-
version_requirements: *id003
|
68
|
-
- !ruby/object:Gem::Dependency
|
69
|
-
name: zip
|
70
55
|
prerelease: false
|
71
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.4.6
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: zip
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
72
65
|
none: false
|
73
|
-
requirements:
|
74
|
-
- -
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
hash: 11
|
77
|
-
segments:
|
78
|
-
- 2
|
79
|
-
- 0
|
80
|
-
- 2
|
66
|
+
requirements:
|
67
|
+
- - '='
|
68
|
+
- !ruby/object:Gem::Version
|
81
69
|
version: 2.0.2
|
82
70
|
type: :runtime
|
83
|
-
version_requirements: *id004
|
84
|
-
- !ruby/object:Gem::Dependency
|
85
|
-
name: xml-simple
|
86
71
|
prerelease: false
|
87
|
-
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
88
73
|
none: false
|
89
|
-
requirements:
|
90
|
-
- -
|
91
|
-
- !ruby/object:Gem::Version
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
74
|
+
requirements:
|
75
|
+
- - '='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 2.0.2
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: nokogiri
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ~>
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '1.5'
|
98
86
|
type: :runtime
|
99
|
-
|
100
|
-
|
101
|
-
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '1.5'
|
94
|
+
description: RubyGem to give quick access to Theme Park queue times (Alton Towers,
|
95
|
+
Disney World Animal Kingdom, Disney World Epcot, Disney World Hollywood Studios,
|
96
|
+
Disney World Magic Kingdom, Disneyland, Disneyland California Adventure, Disneyland
|
97
|
+
Paris, Seaworld San Antonio, Seaworld San Diego, Seaworld Orlando, Thorpe Park)
|
98
|
+
email:
|
102
99
|
- lloydpick@gmail.com
|
103
100
|
executables: []
|
104
|
-
|
105
101
|
extensions: []
|
106
|
-
|
107
102
|
extra_rdoc_files: []
|
108
|
-
|
109
|
-
files:
|
103
|
+
files:
|
110
104
|
- .gitignore
|
105
|
+
- .travis.yml
|
111
106
|
- Gemfile
|
112
107
|
- Gemfile.lock
|
113
108
|
- History.txt
|
@@ -138,38 +133,26 @@ files:
|
|
138
133
|
- spec/thorpe_park_spec.rb
|
139
134
|
homepage: http://github.com/lloydpick/echelon
|
140
135
|
licenses: []
|
141
|
-
|
142
136
|
post_install_message:
|
143
137
|
rdoc_options: []
|
144
|
-
|
145
|
-
require_paths:
|
138
|
+
require_paths:
|
146
139
|
- lib
|
147
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
140
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
148
141
|
none: false
|
149
|
-
requirements:
|
150
|
-
- -
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
|
153
|
-
|
154
|
-
- 0
|
155
|
-
version: "0"
|
156
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ! '>='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
147
|
none: false
|
158
|
-
requirements:
|
159
|
-
- -
|
160
|
-
- !ruby/object:Gem::Version
|
161
|
-
hash: 23
|
162
|
-
segments:
|
163
|
-
- 1
|
164
|
-
- 3
|
165
|
-
- 6
|
148
|
+
requirements:
|
149
|
+
- - ! '>='
|
150
|
+
- !ruby/object:Gem::Version
|
166
151
|
version: 1.3.6
|
167
152
|
requirements: []
|
168
|
-
|
169
153
|
rubyforge_project: echelon
|
170
154
|
rubygems_version: 1.8.24
|
171
155
|
signing_key:
|
172
156
|
specification_version: 3
|
173
157
|
summary: RubyGem to give quick access to Theme Park queue times
|
174
158
|
test_files: []
|
175
|
-
|