echelon 1.0.2 → 1.0.3
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 +7 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +5 -3
- data/README.rdoc +6 -5
- data/lib/echelon.rb +10 -4
- data/lib/echelon/parks/disney_world.rb +122 -0
- data/lib/echelon/ride.rb +1 -1
- data/lib/echelon/version.rb +1 -1
- metadata +14 -27
- data/lib/echelon/parks/disney_world/animal_kingdom.rb +0 -40
- data/lib/echelon/parks/disney_world/epcot.rb +0 -40
- data/lib/echelon/parks/disney_world/hollywood_studios.rb +0 -40
- data/lib/echelon/parks/disney_world/magic_kingdom.rb +0 -40
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: db14024c0e3222ac1c609300cbae0f50b895aa5c
|
4
|
+
data.tar.gz: a6862271c7b5f01885e74d3bb5f2e6a79d3ed22b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6e40449b0b6d65d6f737378f0348d828cc63466af9e2a5a050ce9a36d5f5adedcfeba78de2761967d906541cf91dcf1ec8b18e5397d3d41eba691a82a18fae70
|
7
|
+
data.tar.gz: f309887fde0eede1b840699ee106eb4d9949806b97104fb7501d4d5b31e84d7e8739ff0ec98e33ed003f1cf641a58875d5992bca9222968bb9363376c42a1dd9
|
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
echelon
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.0.0
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,17 +1,19 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
echelon (1.0.
|
4
|
+
echelon (1.0.2)
|
5
5
|
json_pure (= 1.4.6)
|
6
6
|
nokogiri (~> 1.5)
|
7
7
|
zip (= 2.0.2)
|
8
8
|
|
9
9
|
GEM
|
10
|
-
remote:
|
10
|
+
remote: https://rubygems.org/
|
11
11
|
specs:
|
12
12
|
diff-lcs (1.1.2)
|
13
13
|
json_pure (1.4.6)
|
14
|
-
|
14
|
+
mini_portile (0.5.2)
|
15
|
+
nokogiri (1.6.1)
|
16
|
+
mini_portile (~> 0.5.0)
|
15
17
|
rake (0.9.2.2)
|
16
18
|
rspec (2.4.0)
|
17
19
|
rspec-core (~> 2.4.0)
|
data/README.rdoc
CHANGED
@@ -57,10 +57,11 @@ Currently only the following parks are supported...
|
|
57
57
|
Echelon::Seaworld::SanDiego.new()
|
58
58
|
|
59
59
|
# Disney World
|
60
|
-
Echelon::DisneyWorld
|
61
|
-
|
62
|
-
|
63
|
-
|
60
|
+
wdw = Echelon::DisneyWorld.new()
|
61
|
+
wdw.animal_kingdom
|
62
|
+
wdw.epcot
|
63
|
+
wdw.hollywood_studios
|
64
|
+
wdw.magic_kingdom
|
64
65
|
|
65
66
|
# Disneyland California
|
66
67
|
Echelon::Disneyland::Disneyland.new()
|
@@ -81,7 +82,7 @@ Currently only the following parks are supported...
|
|
81
82
|
|
82
83
|
(The MIT License)
|
83
84
|
|
84
|
-
Copyright (c) 2010-
|
85
|
+
Copyright (c) 2010-2014 Lloyd Pick
|
85
86
|
|
86
87
|
Permission is hereby granted, free of charge, to any person obtaining
|
87
88
|
a copy of this software and associated documentation files (the
|
data/lib/echelon.rb
CHANGED
@@ -14,10 +14,11 @@ require "#{File.dirname(__FILE__)}/echelon/parks/seaworld/san_diego.rb"
|
|
14
14
|
require "#{File.dirname(__FILE__)}/echelon/parks/seaworld/orlando.rb"
|
15
15
|
|
16
16
|
# Disney World Resort
|
17
|
-
require "#{File.dirname(__FILE__)}/echelon/parks/disney_world
|
18
|
-
require "#{File.dirname(__FILE__)}/echelon/parks/disney_world/
|
19
|
-
require "#{File.dirname(__FILE__)}/echelon/parks/disney_world/
|
20
|
-
require "#{File.dirname(__FILE__)}/echelon/parks/disney_world/
|
17
|
+
require "#{File.dirname(__FILE__)}/echelon/parks/disney_world.rb"
|
18
|
+
# require "#{File.dirname(__FILE__)}/echelon/parks/disney_world/magic_kingdom.rb"
|
19
|
+
# require "#{File.dirname(__FILE__)}/echelon/parks/disney_world/epcot.rb"
|
20
|
+
# require "#{File.dirname(__FILE__)}/echelon/parks/disney_world/hollywood_studios.rb"
|
21
|
+
# require "#{File.dirname(__FILE__)}/echelon/parks/disney_world/animal_kingdom.rb"
|
21
22
|
|
22
23
|
# Disneyland Resort California
|
23
24
|
require "#{File.dirname(__FILE__)}/echelon/parks/disneyland/disneyland.rb"
|
@@ -27,4 +28,9 @@ require "#{File.dirname(__FILE__)}/echelon/parks/disneyland/california_adventure
|
|
27
28
|
require "#{File.dirname(__FILE__)}/echelon/parks/disneyland_paris.rb"
|
28
29
|
|
29
30
|
module Echelon
|
31
|
+
|
32
|
+
def self.parameterize(params)
|
33
|
+
URI.escape(params.collect{|k,v| "#{k}=#{v}"}.join('&'))
|
34
|
+
end
|
35
|
+
|
30
36
|
end
|
@@ -0,0 +1,122 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'json'
|
3
|
+
require 'net/http'
|
4
|
+
require 'net/https'
|
5
|
+
|
6
|
+
module Echelon
|
7
|
+
class DisneyWorld
|
8
|
+
|
9
|
+
attr_reader :access_token, :expires_at
|
10
|
+
|
11
|
+
def initialize
|
12
|
+
|
13
|
+
uri = URI.parse("https://authorization.go.com/token")
|
14
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
15
|
+
http.use_ssl = true
|
16
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
17
|
+
|
18
|
+
params = Echelon::parameterize({ grant_type: 'assertion', assertion_type: 'public', client_id: 'WDPRO-MOBILE.CLIENT-PROD' })
|
19
|
+
resp = http.post(uri.request_uri, params)
|
20
|
+
|
21
|
+
data = JSON.parse(resp.body)
|
22
|
+
@access_token = data['access_token']
|
23
|
+
@expires_at = Time.now.to_i + data['expires_in'].to_i
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
def animal_kingdom
|
28
|
+
@animal_kingdom ||= DisneyWorld::AnimalKingdom.new(self.access_token)
|
29
|
+
end
|
30
|
+
|
31
|
+
def magic_kingdom
|
32
|
+
@magic_kingdom ||= DisneyWorld::MagicKingdom.new(self.access_token)
|
33
|
+
end
|
34
|
+
|
35
|
+
def hollywood_studios
|
36
|
+
@hollywood_studios ||= DisneyWorld::HollywoodStudios.new(self.access_token)
|
37
|
+
end
|
38
|
+
|
39
|
+
def epcot
|
40
|
+
@epcot ||= DisneyWorld::Epcot.new(self.access_token)
|
41
|
+
end
|
42
|
+
|
43
|
+
class Park < Echelon::Park
|
44
|
+
|
45
|
+
attr_reader :json_data
|
46
|
+
|
47
|
+
def ride_list
|
48
|
+
self.json_data['entries'].inject({}) { |r,a| r[a['id'].split(';').first.to_i] = a['name']; r }
|
49
|
+
end
|
50
|
+
|
51
|
+
def initialize(access_token, park_id)
|
52
|
+
|
53
|
+
uri = URI.parse("https://api.wdpro.disney.go.com/facility-service/theme-parks/#{park_id};entityType=theme-park/wait-times")
|
54
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
55
|
+
http.use_ssl = true
|
56
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
57
|
+
|
58
|
+
headers = {
|
59
|
+
'Authorization' => "BEARER #{access_token}",
|
60
|
+
'Accept' => 'application/json;apiversion=1',
|
61
|
+
'X-Conversation-Id' => '~WDPRO-MOBILE.CLIENT-PROD'
|
62
|
+
}
|
63
|
+
|
64
|
+
resp = http.get(uri.request_uri, headers)
|
65
|
+
@json_data = JSON.parse(resp.body)
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
private
|
70
|
+
|
71
|
+
def create_ride_object(ref)
|
72
|
+
self.json_data['entries'].each do |ride|
|
73
|
+
if ride['id'].split(';').first.to_i == ref
|
74
|
+
|
75
|
+
ride_status = ride['waitTime']['status']
|
76
|
+
status = 1 if ride_status == 'Operating'
|
77
|
+
status = 0 if ride_status == 'Closed'
|
78
|
+
status = -1 if ride_status == 'Down'
|
79
|
+
|
80
|
+
queue_times = {
|
81
|
+
actual: ride['waitTime']['actualWaitMinutes'].to_i,
|
82
|
+
posted: ride['waitTime']['postedWaitMinutes'].to_i
|
83
|
+
}
|
84
|
+
|
85
|
+
meta = {
|
86
|
+
fastpass_available: ride['waitTime']['fastPass']['available'],
|
87
|
+
single_rider: ride['waitTime']['singleRider']
|
88
|
+
}
|
89
|
+
|
90
|
+
return Ride.new(:name => self.ride_list[ref], :queue_time => queue_times, :active => status, :meta => meta)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
96
|
+
|
97
|
+
class Epcot < Park
|
98
|
+
def initialize(access_token)
|
99
|
+
super(access_token, 80007838)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
class MagicKingdom < Park
|
104
|
+
def initialize(access_token)
|
105
|
+
super(access_token, 80007944)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
class HollywoodStudios < Park
|
110
|
+
def initialize(access_token)
|
111
|
+
super(access_token, 80007998)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
class AnimalKingdom < Park
|
116
|
+
def initialize(access_token)
|
117
|
+
super(access_token, 80007823)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
end
|
122
|
+
end
|
data/lib/echelon/ride.rb
CHANGED
data/lib/echelon/version.rb
CHANGED
metadata
CHANGED
@@ -1,52 +1,46 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: echelon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Lloyd Pick
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-01-22 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bundler
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 1.0.0
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: 1.0.0
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rspec
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: 2.4.0
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: 2.4.0
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: json_pure
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - '='
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - '='
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: zip
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - '='
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - '='
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: nokogiri
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ~>
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ~>
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -102,6 +91,8 @@ extensions: []
|
|
102
91
|
extra_rdoc_files: []
|
103
92
|
files:
|
104
93
|
- .gitignore
|
94
|
+
- .ruby-gemset
|
95
|
+
- .ruby-version
|
105
96
|
- .travis.yml
|
106
97
|
- Gemfile
|
107
98
|
- Gemfile.lock
|
@@ -113,10 +104,7 @@ files:
|
|
113
104
|
- lib/echelon.rb
|
114
105
|
- lib/echelon/park.rb
|
115
106
|
- lib/echelon/parks/alton_towers.rb
|
116
|
-
- lib/echelon/parks/disney_world
|
117
|
-
- lib/echelon/parks/disney_world/epcot.rb
|
118
|
-
- lib/echelon/parks/disney_world/hollywood_studios.rb
|
119
|
-
- lib/echelon/parks/disney_world/magic_kingdom.rb
|
107
|
+
- lib/echelon/parks/disney_world.rb
|
120
108
|
- lib/echelon/parks/disneyland/california_adventure.rb
|
121
109
|
- lib/echelon/parks/disneyland/disneyland.rb
|
122
110
|
- lib/echelon/parks/disneyland_paris.rb
|
@@ -133,26 +121,25 @@ files:
|
|
133
121
|
- spec/thorpe_park_spec.rb
|
134
122
|
homepage: http://github.com/lloydpick/echelon
|
135
123
|
licenses: []
|
124
|
+
metadata: {}
|
136
125
|
post_install_message:
|
137
126
|
rdoc_options: []
|
138
127
|
require_paths:
|
139
128
|
- lib
|
140
129
|
required_ruby_version: !ruby/object:Gem::Requirement
|
141
|
-
none: false
|
142
130
|
requirements:
|
143
|
-
- -
|
131
|
+
- - '>='
|
144
132
|
- !ruby/object:Gem::Version
|
145
133
|
version: '0'
|
146
134
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
|
-
none: false
|
148
135
|
requirements:
|
149
|
-
- -
|
136
|
+
- - '>='
|
150
137
|
- !ruby/object:Gem::Version
|
151
138
|
version: 1.3.6
|
152
139
|
requirements: []
|
153
140
|
rubyforge_project: echelon
|
154
|
-
rubygems_version:
|
141
|
+
rubygems_version: 2.0.6
|
155
142
|
signing_key:
|
156
|
-
specification_version:
|
143
|
+
specification_version: 4
|
157
144
|
summary: RubyGem to give quick access to Theme Park queue times
|
158
145
|
test_files: []
|
@@ -1,40 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'json'
|
3
|
-
require 'net/http'
|
4
|
-
|
5
|
-
module Echelon
|
6
|
-
module DisneyWorld
|
7
|
-
class AnimalKingdom < Park
|
8
|
-
|
9
|
-
attr_reader :json_data
|
10
|
-
|
11
|
-
def ride_list
|
12
|
-
self.json_data.keys.inject({}) { |r,k| r[k] = k; r }
|
13
|
-
end
|
14
|
-
|
15
|
-
def initialize
|
16
|
-
# fetch the json feed
|
17
|
-
url = "http://dparks.uiemedia.net/dmm_v2/jsondata/JsonUpdateData?version=14&p=80007823"
|
18
|
-
resp = Net::HTTP.get_response(URI.parse(url))
|
19
|
-
data = resp.body
|
20
|
-
|
21
|
-
# were only interested in the ride data, throw everything else away
|
22
|
-
json_data = JSON.parse(data)
|
23
|
-
ride_data = json_data["attractions"]["homeLabels"]
|
24
|
-
queue_data = json_data["attractions"]["homeValues"].map { |v| v.to_i }
|
25
|
-
@json_data = json_data["attractions"]["homeLabels"].each_with_index.inject({}) { |r,i| r[i.first] = queue_data[i.last]; r }
|
26
|
-
end
|
27
|
-
|
28
|
-
private
|
29
|
-
|
30
|
-
def create_ride_object(ref)
|
31
|
-
self.json_data.each do |ride|
|
32
|
-
if ride[0] == ref
|
33
|
-
return Ride.new(:name => ride[0], :queue_time => ride[1])
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'json'
|
3
|
-
require 'net/http'
|
4
|
-
|
5
|
-
module Echelon
|
6
|
-
module DisneyWorld
|
7
|
-
class Epcot < Park
|
8
|
-
|
9
|
-
attr_reader :json_data
|
10
|
-
|
11
|
-
def ride_list
|
12
|
-
self.json_data.keys.inject({}) { |r,k| r[k] = k; r }
|
13
|
-
end
|
14
|
-
|
15
|
-
def initialize
|
16
|
-
# fetch the json feed
|
17
|
-
url = "http://dparks.uiemedia.net/dmm_v2/jsondata/JsonUpdateData?version=14&p=80007838"
|
18
|
-
resp = Net::HTTP.get_response(URI.parse(url))
|
19
|
-
data = resp.body
|
20
|
-
|
21
|
-
# were only interested in the ride data, throw everything else away
|
22
|
-
json_data = JSON.parse(data)
|
23
|
-
ride_data = json_data["attractions"]["homeLabels"]
|
24
|
-
queue_data = json_data["attractions"]["homeValues"].map { |v| v.to_i }
|
25
|
-
@json_data = json_data["attractions"]["homeLabels"].each_with_index.inject({}) { |r,i| r[i.first] = queue_data[i.last]; r }
|
26
|
-
end
|
27
|
-
|
28
|
-
private
|
29
|
-
|
30
|
-
def create_ride_object(ref)
|
31
|
-
self.json_data.each do |ride|
|
32
|
-
if ride[0] == ref
|
33
|
-
return Ride.new(:name => ride[0], :queue_time => ride[1])
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'json'
|
3
|
-
require 'net/http'
|
4
|
-
|
5
|
-
module Echelon
|
6
|
-
module DisneyWorld
|
7
|
-
class HollywoodStudios < Park
|
8
|
-
|
9
|
-
attr_reader :json_data
|
10
|
-
|
11
|
-
def ride_list
|
12
|
-
self.json_data.keys.inject({}) { |r,k| r[k] = k; r }
|
13
|
-
end
|
14
|
-
|
15
|
-
def initialize
|
16
|
-
# fetch the json feed
|
17
|
-
url = "http://dparks.uiemedia.net/dmm_v2/jsondata/JsonUpdateData?version=14&p=80007998"
|
18
|
-
resp = Net::HTTP.get_response(URI.parse(url))
|
19
|
-
data = resp.body
|
20
|
-
|
21
|
-
# were only interested in the ride data, throw everything else away
|
22
|
-
json_data = JSON.parse(data)
|
23
|
-
ride_data = json_data["attractions"]["homeLabels"]
|
24
|
-
queue_data = json_data["attractions"]["homeValues"].map { |v| v.to_i }
|
25
|
-
@json_data = json_data["attractions"]["homeLabels"].each_with_index.inject({}) { |r,i| r[i.first] = queue_data[i.last]; r }
|
26
|
-
end
|
27
|
-
|
28
|
-
private
|
29
|
-
|
30
|
-
def create_ride_object(ref)
|
31
|
-
self.json_data.each do |ride|
|
32
|
-
if ride[0] == ref
|
33
|
-
return Ride.new(:name => ride[0], :queue_time => ride[1])
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'json'
|
3
|
-
require 'net/http'
|
4
|
-
|
5
|
-
module Echelon
|
6
|
-
module DisneyWorld
|
7
|
-
class MagicKingdom < Park
|
8
|
-
|
9
|
-
attr_reader :json_data
|
10
|
-
|
11
|
-
def ride_list
|
12
|
-
self.json_data.keys.inject({}) { |r,k| r[k] = k; r }
|
13
|
-
end
|
14
|
-
|
15
|
-
def initialize
|
16
|
-
# fetch the json feed
|
17
|
-
url = "http://dparks.uiemedia.net/dmm_v2/jsondata/JsonUpdateData?version=14&p=80007944"
|
18
|
-
resp = Net::HTTP.get_response(URI.parse(url))
|
19
|
-
data = resp.body
|
20
|
-
|
21
|
-
# were only interested in the ride data, throw everything else away
|
22
|
-
json_data = JSON.parse(data)
|
23
|
-
ride_data = json_data["attractions"]["homeLabels"]
|
24
|
-
queue_data = json_data["attractions"]["homeValues"].map { |v| v.to_i }
|
25
|
-
@json_data = json_data["attractions"]["homeLabels"].each_with_index.inject({}) { |r,i| r[i.first] = queue_data[i.last]; r }
|
26
|
-
end
|
27
|
-
|
28
|
-
private
|
29
|
-
|
30
|
-
def create_ride_object(ref)
|
31
|
-
self.json_data.each do |ride|
|
32
|
-
if ride[0] == ref
|
33
|
-
return Ride.new(:name => ride[0], :queue_time => ride[1])
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|