echelon 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.8.7
4
+ - 1.9.2
5
+ script: "bundle exec rspec spec"
data/Gemfile CHANGED
@@ -1,4 +1,9 @@
1
1
  source :rubygems
2
2
 
3
3
  # Specify your gem's dependencies in echelon.gemspec
4
- gemspec
4
+ gemspec
5
+
6
+ group :test do
7
+ # for travis-ci.org
8
+ gem "rake"
9
+ end
data/Gemfile.lock CHANGED
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- echelon (1.0.0)
4
+ echelon (1.0.1)
5
5
  json_pure (= 1.4.6)
6
- xml-simple (= 1.0.12)
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
@@ -1,3 +1,12 @@
1
+ === 1.0.2 2012-08-21
2
+
3
+ * Seaworld parks now work correctly on 1.9.2
4
+ * Tests now pass correctly
5
+
6
+ === 1.0.1 2012-08-21
7
+
8
+ * Fixed all the Walt Disney parks
9
+
1
10
  === 1.0.0 2012-06-09
2
11
 
3
12
  * Added park Disney World Orlando Parks
data/README.rdoc CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  * http://github.com/lloydpick/echelon
4
4
 
5
+ {<img src="https://secure.travis-ci.org/lloydpick/echelon.png?branch=master" alt="Build Status" />}[http://travis-ci.org/lloydpick/echelon]
6
+
5
7
  == DESCRIPTION:
6
8
 
7
9
  RubyGem to give quick access to Theme Park queue times
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 "xml-simple", "1.0.12"
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 'xmlsimple'
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 = XmlSimple.xml_in(data)
37
- @xml_data = xml_data['ride']
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["id"].to_s.to_i == ref
45
- active, queue_time = parse_wait_time(ride["waitTime"].to_s)
46
- updated_at = DateTime.parse(ride["lastModified"].to_s)
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 'xmlsimple'
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 = XmlSimple.xml_in(data)
33
- @xml_data = xml_data['ride']
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["id"].to_s.to_i == ref
41
- active, queue_time = parse_wait_time(ride["waitTime"].to_s)
42
- updated_at = DateTime.parse(ride["lastModified"].to_s)
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 'xmlsimple'
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 = XmlSimple.xml_in(data)
34
- @xml_data = xml_data['ride']
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["id"].to_s.to_i == ref
42
- active, queue_time = parse_wait_time(ride["waitTime"].to_s)
43
- updated_at = DateTime.parse(ride["lastModified"].to_s)
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
@@ -1,3 +1,3 @@
1
1
  module Echelon
2
- VERSION = '1.0.1'
2
+ VERSION = '1.0.2'
3
3
  end
@@ -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("Rita")
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/seaworld_san_antonio'
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::SeaworldSanAntonio do
8
+ describe Echelon::Seaworld::SanAntonio do
9
9
 
10
10
  before do
11
- @park = Echelon::SeaworldSanAntonio.new()
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::SeaworldSanAntonio)
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
- hash: 21
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
- date: 2012-08-21 00:00:00 Z
19
- dependencies:
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
- prerelease: false
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
- requirement: &id002 !ruby/object:Gem::Requirement
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
- requirement: &id003 !ruby/object:Gem::Requirement
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
- requirement: &id004 !ruby/object:Gem::Requirement
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
- requirement: &id005 !ruby/object:Gem::Requirement
72
+ version_requirements: !ruby/object:Gem::Requirement
88
73
  none: false
89
- requirements:
90
- - - "="
91
- - !ruby/object:Gem::Version
92
- hash: 15
93
- segments:
94
- - 1
95
- - 0
96
- - 12
97
- version: 1.0.12
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
- version_requirements: *id005
100
- description: RubyGem to give quick access to Theme Park queue times (Alton Towers, Disney World Animal Kingdom, Disney World Epcot, Disney World Hollywood Studios, Disney World Magic Kingdom, Disneyland, Disneyland California Adventure, Disneyland Paris, Seaworld San Antonio, Seaworld San Diego, Seaworld Orlando, Thorpe Park)
101
- email:
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
- hash: 3
153
- segments:
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
-