ruby_wmata 0.9.0
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/.gitignore +14 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +59 -0
- data/Rakefile +2 -0
- data/lib/client.rb +35 -0
- data/lib/ruby_wmata.rb +33 -0
- data/lib/ruby_wmata/version.rb +3 -0
- data/ruby_wmata.gemspec +26 -0
- data/spec/fixtures/next_trains.json +78 -0
- data/spec/fixtures/train_incidents.json +19 -0
- data/spec/fixtures/train_path.json +230 -0
- data/spec/fixtures/train_stations.json +490 -0
- data/spec/spec_helper.rb +23 -0
- data/spec/train_spec.rb +42 -0
- metadata +136 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d8538252db13839452c68f8487a9eda07b5cf180
|
4
|
+
data.tar.gz: 9e36edcfaeace30c03eb1d564144b52cb6366a5a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1b25a41364469133612589c5fc1d5a5946e2ad504309303e2d5c12da04b6a5dc9d848dfe825ecf6788d5d80cb0fa0d900ca638f7ed72825b64fff0c3cd753ef1
|
7
|
+
data.tar.gz: 8dfd16f2b9de84630ed1306473755e2424f645ce748ee25c97538eef3e7c7615795fd7bfb7c2958e33a98e561438a89994483bfb4b4291250e8a3821e77bded8
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2015 bennacer860
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
# RubyWmata
|
2
|
+
|
3
|
+
TODO: Write a gem description
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem 'ruby_wmata'
|
11
|
+
```
|
12
|
+
|
13
|
+
And then execute:
|
14
|
+
|
15
|
+
$ bundle
|
16
|
+
|
17
|
+
Or install it yourself as:
|
18
|
+
|
19
|
+
$ gem install ruby_wmata
|
20
|
+
|
21
|
+
## Usage
|
22
|
+
|
23
|
+
You will need to get your own api_key from [here](http://developer.wmata.com)
|
24
|
+
Setup you api key first
|
25
|
+
|
26
|
+
```ruby
|
27
|
+
WMATA.api_key = "xxxxxxx"
|
28
|
+
```
|
29
|
+
And then you can make you api calls like this
|
30
|
+
|
31
|
+
```ruby
|
32
|
+
WMATA.next_trains("A01")
|
33
|
+
```
|
34
|
+
|
35
|
+
In this case we have used the station name code as argument, you can determine the code for each station by making a simple code on a specific line
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
WMATA.train_station("RD")
|
39
|
+
```
|
40
|
+
|
41
|
+
In this case 'RD' is the code name for the 'red line', you can find all those line code name by making a simple call
|
42
|
+
|
43
|
+
```ruby
|
44
|
+
WMATA.lines
|
45
|
+
```
|
46
|
+
|
47
|
+
Another cool feature you can make is to find the path between two stations
|
48
|
+
|
49
|
+
```ruby
|
50
|
+
WMATA.train_path("A01","A15")
|
51
|
+
```
|
52
|
+
|
53
|
+
## Contributing
|
54
|
+
|
55
|
+
1. Fork it ( https://github.com/[my-github-username]/ruby_wmata/fork )
|
56
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
57
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
58
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
59
|
+
5. Create a new Pull Request
|
data/Rakefile
ADDED
data/lib/client.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'httparty'
|
2
|
+
module WMATA
|
3
|
+
|
4
|
+
class Client
|
5
|
+
include HTTParty
|
6
|
+
base_uri "https://api.wmata.com"
|
7
|
+
def initialize(api_key)
|
8
|
+
@options = {query: {api_key: api_key} }
|
9
|
+
end
|
10
|
+
|
11
|
+
def next_trains(stations='A06')
|
12
|
+
response = self.class.get("/StationPrediction.svc/json/GetPrediction/#{stations}", @options)
|
13
|
+
JSON.parse(response.body)["Trains"]
|
14
|
+
end
|
15
|
+
|
16
|
+
def train_stations(line='RD', formated=true)
|
17
|
+
@options[:query][:LineCode]=line
|
18
|
+
response = self.class.get("/Rail.svc/json/jStations", @options)
|
19
|
+
JSON.parse(response.body)["Stations"]
|
20
|
+
end
|
21
|
+
|
22
|
+
def train_path(from,to)
|
23
|
+
@options[:query][:FromStationCode] = from
|
24
|
+
@options[:query][:ToStationCode] = to
|
25
|
+
response = self.class.get("/Rail.svc/json/jPath", @options)
|
26
|
+
JSON.parse(response.body)["Path"]
|
27
|
+
end
|
28
|
+
|
29
|
+
def train_incidents
|
30
|
+
response = self.class.get("/Incidents.svc/json/Incidents", @options)
|
31
|
+
JSON.parse(response.body)["Incidents"]
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
data/lib/ruby_wmata.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
$:.unshift(File.dirname(__FILE__))
|
2
|
+
require 'client'
|
3
|
+
|
4
|
+
module WMATA
|
5
|
+
def self.client
|
6
|
+
@client ||= Client.new(api)
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.api
|
10
|
+
@api || raise("please set the api key")
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.api=(api_key)
|
14
|
+
@client = Client.new(api_key)
|
15
|
+
@api = api_key
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.next_trains(station = "A06")
|
19
|
+
client.next_trains(station)
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.train_stations(line = 'RD')
|
23
|
+
client.train_stations(line)
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.train_path(from,to)
|
27
|
+
client.train_path(from,to)
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.train_incidents
|
31
|
+
client.train_incidents
|
32
|
+
end
|
33
|
+
end
|
data/ruby_wmata.gemspec
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'ruby_wmata/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "ruby_wmata"
|
8
|
+
spec.version = RubyWmata::VERSION
|
9
|
+
spec.authors = ["Rafik Bennacer"]
|
10
|
+
spec.email = ["bennacer860@gmail.com"]
|
11
|
+
spec.summary = "It is a simple WMATA api ruby wrapper"
|
12
|
+
spec.description = "With this gem you will be able to retrieve realtime information about stations, trains and incidents."
|
13
|
+
spec.homepage = ""
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.7"
|
22
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
23
|
+
spec.add_development_dependency "httparty", "~> 0.13.3"
|
24
|
+
spec.add_development_dependency "webmock", "~> 1.20.4"
|
25
|
+
spec.add_development_dependency "rspec", "~> 3.1.0"
|
26
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
{
|
2
|
+
"Trains":[
|
3
|
+
{
|
4
|
+
"Car":"6",
|
5
|
+
"Destination":"SilvrSpg",
|
6
|
+
"DestinationCode":"B08",
|
7
|
+
"DestinationName":"Silver Spring",
|
8
|
+
"Group":"1",
|
9
|
+
"Line":"RD",
|
10
|
+
"LocationCode":"A01",
|
11
|
+
"LocationName":"Metro Center",
|
12
|
+
"Min":"3"
|
13
|
+
|
14
|
+
},
|
15
|
+
{
|
16
|
+
"Car":"6",
|
17
|
+
"Destination":"Grsvnor",
|
18
|
+
"DestinationCode":"A11",
|
19
|
+
"DestinationName":"Grosvenor-Strathmore",
|
20
|
+
"Group":"2",
|
21
|
+
"Line":"RD",
|
22
|
+
"LocationCode":"A01",
|
23
|
+
"LocationName":"Metro Center",
|
24
|
+
"Min":"4"
|
25
|
+
|
26
|
+
},
|
27
|
+
{
|
28
|
+
"Car":"6",
|
29
|
+
"Destination":"Shady Gr",
|
30
|
+
"DestinationCode":"A15",
|
31
|
+
"DestinationName":"Shady Grove",
|
32
|
+
"Group":"2",
|
33
|
+
"Line":"RD",
|
34
|
+
"LocationCode":"A01",
|
35
|
+
"LocationName":"Metro Center",
|
36
|
+
"Min":"6"
|
37
|
+
|
38
|
+
},
|
39
|
+
{
|
40
|
+
"Car":"8",
|
41
|
+
"Destination":"Glenmont",
|
42
|
+
"DestinationCode":"B11",
|
43
|
+
"DestinationName":"Glenmont",
|
44
|
+
"Group":"1",
|
45
|
+
"Line":"RD",
|
46
|
+
"LocationCode":"A01",
|
47
|
+
"LocationName":"Metro Center",
|
48
|
+
"Min":"8"
|
49
|
+
|
50
|
+
},
|
51
|
+
{
|
52
|
+
"Car":"6",
|
53
|
+
"Destination":"SilvrSpg",
|
54
|
+
"DestinationCode":"B08",
|
55
|
+
"DestinationName":"Silver Spring",
|
56
|
+
"Group":"1",
|
57
|
+
"Line":"RD",
|
58
|
+
"LocationCode":"A01",
|
59
|
+
"LocationName":"Metro Center",
|
60
|
+
"Min":"9"
|
61
|
+
|
62
|
+
},
|
63
|
+
{
|
64
|
+
"Car":"6",
|
65
|
+
"Destination":"Grsvnor",
|
66
|
+
"DestinationCode":"A11",
|
67
|
+
"DestinationName":"Grosvenor-Strathmore",
|
68
|
+
"Group":"2",
|
69
|
+
"Line":"RD",
|
70
|
+
"LocationCode":"A01",
|
71
|
+
"LocationName":"Metro Center",
|
72
|
+
"Min":"9"
|
73
|
+
|
74
|
+
}
|
75
|
+
|
76
|
+
]
|
77
|
+
|
78
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
{
|
2
|
+
"Incidents": [
|
3
|
+
{
|
4
|
+
"DateUpdated": "2010-07-29T14:21:28",
|
5
|
+
"DelaySeverity": null,
|
6
|
+
"Description": "Red Line: Expect residual delays to Glenmont due to an earlier signal problem outside Forest Glen.",
|
7
|
+
"EmergencyText": null,
|
8
|
+
"EndLocationFullName": null,
|
9
|
+
"IncidentID": "3754F8B2-A0A6-494E-A4B5-82C9E72DFA74",
|
10
|
+
"IncidentType": "Delay",
|
11
|
+
"LinesAffected": "RD;",
|
12
|
+
"PassengerDelay": 0,
|
13
|
+
"StartLocationFullName": null
|
14
|
+
|
15
|
+
}
|
16
|
+
|
17
|
+
]
|
18
|
+
|
19
|
+
}
|
@@ -0,0 +1,230 @@
|
|
1
|
+
{
|
2
|
+
"Path": [
|
3
|
+
{
|
4
|
+
"DistanceToPrev": 0,
|
5
|
+
"LineCode": "SV",
|
6
|
+
"SeqNum": 1,
|
7
|
+
"StationCode": "N06",
|
8
|
+
"StationName": "Wiehle-Reston East"
|
9
|
+
|
10
|
+
},
|
11
|
+
{
|
12
|
+
"DistanceToPrev": 30867,
|
13
|
+
"LineCode": "SV",
|
14
|
+
"SeqNum": 2,
|
15
|
+
"StationCode": "N04",
|
16
|
+
"StationName": "Spring Hill"
|
17
|
+
|
18
|
+
},
|
19
|
+
{
|
20
|
+
"DistanceToPrev": 3634,
|
21
|
+
"LineCode": "SV",
|
22
|
+
"SeqNum": 3,
|
23
|
+
"StationCode": "N03",
|
24
|
+
"StationName": "Greensboro"
|
25
|
+
|
26
|
+
},
|
27
|
+
{
|
28
|
+
"DistanceToPrev": 3902,
|
29
|
+
"LineCode": "SV",
|
30
|
+
"SeqNum": 4,
|
31
|
+
"StationCode": "N02",
|
32
|
+
"StationName": "Tysons Corner"
|
33
|
+
|
34
|
+
},
|
35
|
+
{
|
36
|
+
"DistanceToPrev": 3440,
|
37
|
+
"LineCode": "SV",
|
38
|
+
"SeqNum": 5,
|
39
|
+
"StationCode": "N01",
|
40
|
+
"StationName": "McLean"
|
41
|
+
|
42
|
+
},
|
43
|
+
{
|
44
|
+
"DistanceToPrev": 24745,
|
45
|
+
"LineCode": "SV",
|
46
|
+
"SeqNum": 6,
|
47
|
+
"StationCode": "K05",
|
48
|
+
"StationName": "E Falls Church"
|
49
|
+
|
50
|
+
},
|
51
|
+
{
|
52
|
+
"DistanceToPrev": 13156,
|
53
|
+
"LineCode": "SV",
|
54
|
+
"SeqNum": 7,
|
55
|
+
"StationCode": "K04",
|
56
|
+
"StationName": "Ballston"
|
57
|
+
|
58
|
+
},
|
59
|
+
{
|
60
|
+
"DistanceToPrev": 2980,
|
61
|
+
"LineCode": "SV",
|
62
|
+
"SeqNum": 8,
|
63
|
+
"StationCode": "K03",
|
64
|
+
"StationName": "Virginia Square"
|
65
|
+
|
66
|
+
},
|
67
|
+
{
|
68
|
+
"DistanceToPrev": 2473,
|
69
|
+
"LineCode": "SV",
|
70
|
+
"SeqNum": 9,
|
71
|
+
"StationCode": "K02",
|
72
|
+
"StationName": "Clarendon"
|
73
|
+
|
74
|
+
},
|
75
|
+
{
|
76
|
+
"DistanceToPrev": 2687,
|
77
|
+
"LineCode": "SV",
|
78
|
+
"SeqNum": 10,
|
79
|
+
"StationCode": "K01",
|
80
|
+
"StationName": "Court House"
|
81
|
+
|
82
|
+
},
|
83
|
+
{
|
84
|
+
"DistanceToPrev": 4936,
|
85
|
+
"LineCode": "SV",
|
86
|
+
"SeqNum": 11,
|
87
|
+
"StationCode": "C05",
|
88
|
+
"StationName": "Rosslyn"
|
89
|
+
|
90
|
+
},
|
91
|
+
{
|
92
|
+
"DistanceToPrev": 6993,
|
93
|
+
"LineCode": "SV",
|
94
|
+
"SeqNum": 12,
|
95
|
+
"StationCode": "C04",
|
96
|
+
"StationName": "Foggy Bottom"
|
97
|
+
|
98
|
+
},
|
99
|
+
{
|
100
|
+
"DistanceToPrev": 2783,
|
101
|
+
"LineCode": "SV",
|
102
|
+
"SeqNum": 13,
|
103
|
+
"StationCode": "C03",
|
104
|
+
"StationName": "Farragut West"
|
105
|
+
|
106
|
+
},
|
107
|
+
{
|
108
|
+
"DistanceToPrev": 2001,
|
109
|
+
"LineCode": "SV",
|
110
|
+
"SeqNum": 14,
|
111
|
+
"StationCode": "C02",
|
112
|
+
"StationName": "McPherson Square"
|
113
|
+
|
114
|
+
},
|
115
|
+
{
|
116
|
+
"DistanceToPrev": 2359,
|
117
|
+
"LineCode": "SV",
|
118
|
+
"SeqNum": 15,
|
119
|
+
"StationCode": "C01",
|
120
|
+
"StationName": "Metro Center"
|
121
|
+
|
122
|
+
},
|
123
|
+
{
|
124
|
+
"DistanceToPrev": 1561,
|
125
|
+
"LineCode": "SV",
|
126
|
+
"SeqNum": 16,
|
127
|
+
"StationCode": "D01",
|
128
|
+
"StationName": "Federal Triangle"
|
129
|
+
|
130
|
+
},
|
131
|
+
{
|
132
|
+
"DistanceToPrev": 2016,
|
133
|
+
"LineCode": "SV",
|
134
|
+
"SeqNum": 17,
|
135
|
+
"StationCode": "D02",
|
136
|
+
"StationName": "Smithsonian"
|
137
|
+
|
138
|
+
},
|
139
|
+
{
|
140
|
+
"DistanceToPrev": 2643,
|
141
|
+
"LineCode": "SV",
|
142
|
+
"SeqNum": 18,
|
143
|
+
"StationCode": "D03",
|
144
|
+
"StationName": "L'Enfant Plaza"
|
145
|
+
|
146
|
+
},
|
147
|
+
{
|
148
|
+
"DistanceToPrev": 1757,
|
149
|
+
"LineCode": "SV",
|
150
|
+
"SeqNum": 19,
|
151
|
+
"StationCode": "D04",
|
152
|
+
"StationName": "Federal Center SW"
|
153
|
+
|
154
|
+
},
|
155
|
+
{
|
156
|
+
"DistanceToPrev": 3052,
|
157
|
+
"LineCode": "SV",
|
158
|
+
"SeqNum": 20,
|
159
|
+
"StationCode": "D05",
|
160
|
+
"StationName": "Capitol South"
|
161
|
+
|
162
|
+
},
|
163
|
+
{
|
164
|
+
"DistanceToPrev": 2703,
|
165
|
+
"LineCode": "SV",
|
166
|
+
"SeqNum": 21,
|
167
|
+
"StationCode": "D06",
|
168
|
+
"StationName": "Eastern Market"
|
169
|
+
|
170
|
+
},
|
171
|
+
{
|
172
|
+
"DistanceToPrev": 3289,
|
173
|
+
"LineCode": "SV",
|
174
|
+
"SeqNum": 22,
|
175
|
+
"StationCode": "D07",
|
176
|
+
"StationName": "Potomac Avenue"
|
177
|
+
|
178
|
+
},
|
179
|
+
{
|
180
|
+
"DistanceToPrev": 3750,
|
181
|
+
"LineCode": "SV",
|
182
|
+
"SeqNum": 23,
|
183
|
+
"StationCode": "D08",
|
184
|
+
"StationName": "Stadium Armory"
|
185
|
+
|
186
|
+
},
|
187
|
+
{
|
188
|
+
"DistanceToPrev": 12162,
|
189
|
+
"LineCode": "SV",
|
190
|
+
"SeqNum": 24,
|
191
|
+
"StationCode": "G01",
|
192
|
+
"StationName": "Benning Road"
|
193
|
+
|
194
|
+
},
|
195
|
+
{
|
196
|
+
"DistanceToPrev": 7779,
|
197
|
+
"LineCode": "SV",
|
198
|
+
"SeqNum": 25,
|
199
|
+
"StationCode": "G02",
|
200
|
+
"StationName": "Capitol Heights"
|
201
|
+
|
202
|
+
},
|
203
|
+
{
|
204
|
+
"DistanceToPrev": 5215,
|
205
|
+
"LineCode": "SV",
|
206
|
+
"SeqNum": 26,
|
207
|
+
"StationCode": "G03",
|
208
|
+
"StationName": "Addison Road"
|
209
|
+
|
210
|
+
},
|
211
|
+
{
|
212
|
+
"DistanceToPrev": 7960,
|
213
|
+
"LineCode": "SV",
|
214
|
+
"SeqNum": 27,
|
215
|
+
"StationCode": "G04",
|
216
|
+
"StationName": "Morgan Blvd"
|
217
|
+
|
218
|
+
},
|
219
|
+
{
|
220
|
+
"DistanceToPrev": 7256,
|
221
|
+
"LineCode": "SV",
|
222
|
+
"SeqNum": 28,
|
223
|
+
"StationCode": "G05",
|
224
|
+
"StationName": "Largo Town Center"
|
225
|
+
|
226
|
+
}
|
227
|
+
|
228
|
+
]
|
229
|
+
|
230
|
+
}
|
@@ -0,0 +1,490 @@
|
|
1
|
+
{
|
2
|
+
"Stations": [
|
3
|
+
{
|
4
|
+
"Address": {
|
5
|
+
"City": "Rockville",
|
6
|
+
"State": "MD",
|
7
|
+
"Street": "15903 Somerville Drive",
|
8
|
+
"Zip": "20855"
|
9
|
+
},
|
10
|
+
"Code": "A15",
|
11
|
+
"Lat": 39.1199273249,
|
12
|
+
"LineCode1": "RD",
|
13
|
+
"LineCode2": null,
|
14
|
+
"LineCode3": null,
|
15
|
+
"LineCode4": null,
|
16
|
+
"Lon": -77.1646273343,
|
17
|
+
"Name": "Shady Grove",
|
18
|
+
"StationTogether1": "",
|
19
|
+
"StationTogether2": ""
|
20
|
+
},
|
21
|
+
{
|
22
|
+
"Address": {
|
23
|
+
"City": "Rockville",
|
24
|
+
"State": "MD",
|
25
|
+
"Street": "251 Hungerford Drive",
|
26
|
+
"Zip": "20850"
|
27
|
+
},
|
28
|
+
"Code": "A14",
|
29
|
+
"Lat": 39.0843216075,
|
30
|
+
"LineCode1": "RD",
|
31
|
+
"LineCode2": null,
|
32
|
+
"LineCode3": null,
|
33
|
+
"LineCode4": null,
|
34
|
+
"Lon": -77.1461253392,
|
35
|
+
"Name": "Rockville",
|
36
|
+
"StationTogether1": "",
|
37
|
+
"StationTogether2": ""
|
38
|
+
},
|
39
|
+
{
|
40
|
+
"Address": {
|
41
|
+
"City": "Rockville",
|
42
|
+
"State": "MD",
|
43
|
+
"Street": "1600 Chapman Avenue",
|
44
|
+
"Zip": "20852"
|
45
|
+
},
|
46
|
+
"Code": "A13",
|
47
|
+
"Lat": 39.0624676517,
|
48
|
+
"LineCode1": "RD",
|
49
|
+
"LineCode2": null,
|
50
|
+
"LineCode3": null,
|
51
|
+
"LineCode4": null,
|
52
|
+
"Lon": -77.1208179517,
|
53
|
+
"Name": "Twinbrook",
|
54
|
+
"StationTogether1": "",
|
55
|
+
"StationTogether2": ""
|
56
|
+
},
|
57
|
+
{
|
58
|
+
"Address": {
|
59
|
+
"City": "Rockville",
|
60
|
+
"State": "MD",
|
61
|
+
"Street": "5500 Marinelli Road",
|
62
|
+
"Zip": "20852"
|
63
|
+
},
|
64
|
+
"Code": "A12",
|
65
|
+
"Lat": 39.0481513573,
|
66
|
+
"LineCode1": "RD",
|
67
|
+
"LineCode2": null,
|
68
|
+
"LineCode3": null,
|
69
|
+
"LineCode4": null,
|
70
|
+
"Lon": -77.112829859,
|
71
|
+
"Name": "White Flint",
|
72
|
+
"StationTogether1": "",
|
73
|
+
"StationTogether2": ""
|
74
|
+
},
|
75
|
+
{
|
76
|
+
"Address": {
|
77
|
+
"City": "Bethesda",
|
78
|
+
"State": "MD",
|
79
|
+
"Street": "10300 Rockville Pike",
|
80
|
+
"Zip": "20852"
|
81
|
+
},
|
82
|
+
"Code": "A11",
|
83
|
+
"Lat": 39.02926895,
|
84
|
+
"LineCode1": "RD",
|
85
|
+
"LineCode2": null,
|
86
|
+
"LineCode3": null,
|
87
|
+
"LineCode4": null,
|
88
|
+
"Lon": -77.10384972,
|
89
|
+
"Name": "Grosvenor",
|
90
|
+
"StationTogether1": "",
|
91
|
+
"StationTogether2": ""
|
92
|
+
},
|
93
|
+
{
|
94
|
+
"Address": {
|
95
|
+
"City": "Bethesda",
|
96
|
+
"State": "MD",
|
97
|
+
"Street": "8810 Rockville Pike",
|
98
|
+
"Zip": "20814"
|
99
|
+
},
|
100
|
+
"Code": "A10",
|
101
|
+
"Lat": 39.0000564843,
|
102
|
+
"LineCode1": "RD",
|
103
|
+
"LineCode2": null,
|
104
|
+
"LineCode3": null,
|
105
|
+
"LineCode4": null,
|
106
|
+
"Lon": -77.0969522905,
|
107
|
+
"Name": "Medical Center",
|
108
|
+
"StationTogether1": "",
|
109
|
+
"StationTogether2": ""
|
110
|
+
},
|
111
|
+
{
|
112
|
+
"Address": {
|
113
|
+
"City": "Bethesda",
|
114
|
+
"State": "MD",
|
115
|
+
"Street": "7450 Wisconsin Avenue",
|
116
|
+
"Zip": "20814"
|
117
|
+
},
|
118
|
+
"Code": "A09",
|
119
|
+
"Lat": 38.9843936603,
|
120
|
+
"LineCode1": "RD",
|
121
|
+
"LineCode2": null,
|
122
|
+
"LineCode3": null,
|
123
|
+
"LineCode4": null,
|
124
|
+
"Lon": -77.0941291922,
|
125
|
+
"Name": "Bethesda",
|
126
|
+
"StationTogether1": "",
|
127
|
+
"StationTogether2": ""
|
128
|
+
},
|
129
|
+
{
|
130
|
+
"Address": {
|
131
|
+
"City": "Washington",
|
132
|
+
"State": "DC",
|
133
|
+
"Street": "5337 Wisconsin Avenue NW",
|
134
|
+
"Zip": "20015"
|
135
|
+
},
|
136
|
+
"Code": "A08",
|
137
|
+
"Lat": 38.9594838736,
|
138
|
+
"LineCode1": "RD",
|
139
|
+
"LineCode2": null,
|
140
|
+
"LineCode3": null,
|
141
|
+
"LineCode4": null,
|
142
|
+
"Lon": -77.084995805,
|
143
|
+
"Name": "Friendship Heights",
|
144
|
+
"StationTogether1": "",
|
145
|
+
"StationTogether2": ""
|
146
|
+
},
|
147
|
+
{
|
148
|
+
"Address": {
|
149
|
+
"City": "Washington",
|
150
|
+
"State": "DC",
|
151
|
+
"Street": "4501 Wisconsin Avenue NW",
|
152
|
+
"Zip": "20016"
|
153
|
+
},
|
154
|
+
"Code": "A07",
|
155
|
+
"Lat": 38.9488514351,
|
156
|
+
"LineCode1": "RD",
|
157
|
+
"LineCode2": null,
|
158
|
+
"LineCode3": null,
|
159
|
+
"LineCode4": null,
|
160
|
+
"Lon": -77.0795873255,
|
161
|
+
"Name": "Tenleytown",
|
162
|
+
"StationTogether1": "",
|
163
|
+
"StationTogether2": ""
|
164
|
+
},
|
165
|
+
{
|
166
|
+
"Address": {
|
167
|
+
"City": "Washington",
|
168
|
+
"State": "DC",
|
169
|
+
"Street": "4200 Connecticut Avenue NW",
|
170
|
+
"Zip": "20008"
|
171
|
+
},
|
172
|
+
"Code": "A06",
|
173
|
+
"Lat": 38.9432652883,
|
174
|
+
"LineCode1": "RD",
|
175
|
+
"LineCode2": null,
|
176
|
+
"LineCode3": null,
|
177
|
+
"LineCode4": null,
|
178
|
+
"Lon": -77.0629861805,
|
179
|
+
"Name": "Van Ness UDC",
|
180
|
+
"StationTogether1": "",
|
181
|
+
"StationTogether2": ""
|
182
|
+
},
|
183
|
+
{
|
184
|
+
"Address": {
|
185
|
+
"City": "Washington",
|
186
|
+
"State": "DC",
|
187
|
+
"Street": "3599 Connecticut Avenue NW",
|
188
|
+
"Zip": "20008"
|
189
|
+
},
|
190
|
+
"Code": "A05",
|
191
|
+
"Lat": 38.9347628908,
|
192
|
+
"LineCode1": "RD",
|
193
|
+
"LineCode2": null,
|
194
|
+
"LineCode3": null,
|
195
|
+
"LineCode4": null,
|
196
|
+
"Lon": -77.0580425191,
|
197
|
+
"Name": "Cleveland Park",
|
198
|
+
"StationTogether1": "",
|
199
|
+
"StationTogether2": ""
|
200
|
+
},
|
201
|
+
{
|
202
|
+
"Address": {
|
203
|
+
"City": "Washington",
|
204
|
+
"State": "DC",
|
205
|
+
"Street": "2700 Connecticut Ave., NW",
|
206
|
+
"Zip": "20008"
|
207
|
+
},
|
208
|
+
"Code": "A04",
|
209
|
+
"Lat": 38.9250851371,
|
210
|
+
"LineCode1": "RD",
|
211
|
+
"LineCode2": null,
|
212
|
+
"LineCode3": null,
|
213
|
+
"LineCode4": null,
|
214
|
+
"Lon": -77.0524180207,
|
215
|
+
"Name": "Woodley Park Zoo",
|
216
|
+
"StationTogether1": "",
|
217
|
+
"StationTogether2": ""
|
218
|
+
},
|
219
|
+
{
|
220
|
+
"Address": {
|
221
|
+
"City": "Washington",
|
222
|
+
"State": "DC",
|
223
|
+
"Street": "1525 20th St. NW",
|
224
|
+
"Zip": "20036"
|
225
|
+
},
|
226
|
+
"Code": "A03",
|
227
|
+
"Lat": 38.9095980575,
|
228
|
+
"LineCode1": "RD",
|
229
|
+
"LineCode2": null,
|
230
|
+
"LineCode3": null,
|
231
|
+
"LineCode4": null,
|
232
|
+
"Lon": -77.0434143597,
|
233
|
+
"Name": "Dupont Circle",
|
234
|
+
"StationTogether1": "",
|
235
|
+
"StationTogether2": ""
|
236
|
+
},
|
237
|
+
{
|
238
|
+
"Address": {
|
239
|
+
"City": "Washington",
|
240
|
+
"State": "DC",
|
241
|
+
"Street": "1001 Connecticut Avenue NW",
|
242
|
+
"Zip": "20036"
|
243
|
+
},
|
244
|
+
"Code": "A02",
|
245
|
+
"Lat": 38.9032019462,
|
246
|
+
"LineCode1": "RD",
|
247
|
+
"LineCode2": null,
|
248
|
+
"LineCode3": null,
|
249
|
+
"LineCode4": null,
|
250
|
+
"Lon": -77.0397008272,
|
251
|
+
"Name": "Farragut North",
|
252
|
+
"StationTogether1": "",
|
253
|
+
"StationTogether2": ""
|
254
|
+
},
|
255
|
+
{
|
256
|
+
"Address": {
|
257
|
+
"City": "Washington",
|
258
|
+
"State": "DC",
|
259
|
+
"Street": "607 13th St. NW",
|
260
|
+
"Zip": "20005"
|
261
|
+
},
|
262
|
+
"Code": "A01",
|
263
|
+
"Lat": 38.8983144732,
|
264
|
+
"LineCode1": "RD",
|
265
|
+
"LineCode2": null,
|
266
|
+
"LineCode3": null,
|
267
|
+
"LineCode4": null,
|
268
|
+
"Lon": -77.0280779971,
|
269
|
+
"Name": "Metro Center",
|
270
|
+
"StationTogether1": "C01",
|
271
|
+
"StationTogether2": ""
|
272
|
+
},
|
273
|
+
{
|
274
|
+
"Address": {
|
275
|
+
"City": "Washington",
|
276
|
+
"State": "DC",
|
277
|
+
"Street": "630 H St. NW",
|
278
|
+
"Zip": "20001"
|
279
|
+
},
|
280
|
+
"Code": "B01",
|
281
|
+
"Lat": 38.8983168097,
|
282
|
+
"LineCode1": "RD",
|
283
|
+
"LineCode2": null,
|
284
|
+
"LineCode3": null,
|
285
|
+
"LineCode4": null,
|
286
|
+
"Lon": -77.0219153904,
|
287
|
+
"Name": "Gallery Place",
|
288
|
+
"StationTogether1": "F01",
|
289
|
+
"StationTogether2": ""
|
290
|
+
},
|
291
|
+
{
|
292
|
+
"Address": {
|
293
|
+
"City": "Washington",
|
294
|
+
"State": "DC",
|
295
|
+
"Street": "450 F Street NW",
|
296
|
+
"Zip": "20001"
|
297
|
+
},
|
298
|
+
"Code": "B02",
|
299
|
+
"Lat": 38.8960903176,
|
300
|
+
"LineCode1": "RD",
|
301
|
+
"LineCode2": null,
|
302
|
+
"LineCode3": null,
|
303
|
+
"LineCode4": null,
|
304
|
+
"Lon": -77.0166389566,
|
305
|
+
"Name": "Judiciary Square",
|
306
|
+
"StationTogether1": "",
|
307
|
+
"StationTogether2": ""
|
308
|
+
},
|
309
|
+
{
|
310
|
+
"Address": {
|
311
|
+
"City": "Washington",
|
312
|
+
"State": "DC",
|
313
|
+
"Street": "701 First St. NE",
|
314
|
+
"Zip": "20002"
|
315
|
+
},
|
316
|
+
"Code": "B03",
|
317
|
+
"Lat": 38.8977660392,
|
318
|
+
"LineCode1": "RD",
|
319
|
+
"LineCode2": null,
|
320
|
+
"LineCode3": null,
|
321
|
+
"LineCode4": null,
|
322
|
+
"Lon": -77.0074142921,
|
323
|
+
"Name": "Union Station",
|
324
|
+
"StationTogether1": "",
|
325
|
+
"StationTogether2": ""
|
326
|
+
},
|
327
|
+
{
|
328
|
+
"Address": {
|
329
|
+
"City": "Washington",
|
330
|
+
"State": "DC",
|
331
|
+
"Street": "200 Florida Ave N.E.",
|
332
|
+
"Zip": "20002"
|
333
|
+
},
|
334
|
+
"Code": "B35",
|
335
|
+
"Lat": 38.9070162121,
|
336
|
+
"LineCode1": "RD",
|
337
|
+
"LineCode2": null,
|
338
|
+
"LineCode3": null,
|
339
|
+
"LineCode4": null,
|
340
|
+
"Lon": -77.0030204472,
|
341
|
+
"Name": "New York Avenue",
|
342
|
+
"StationTogether1": "",
|
343
|
+
"StationTogether2": ""
|
344
|
+
},
|
345
|
+
{
|
346
|
+
"Address": {
|
347
|
+
"City": "Washington",
|
348
|
+
"State": "DC",
|
349
|
+
"Street": "919 Rhode Island Avenue NE",
|
350
|
+
"Zip": "20018"
|
351
|
+
},
|
352
|
+
"Code": "B04",
|
353
|
+
"Lat": 38.9210596891,
|
354
|
+
"LineCode1": "RD",
|
355
|
+
"LineCode2": null,
|
356
|
+
"LineCode3": null,
|
357
|
+
"LineCode4": null,
|
358
|
+
"Lon": -76.9959369166,
|
359
|
+
"Name": "Rhode Island Avenue",
|
360
|
+
"StationTogether1": "",
|
361
|
+
"StationTogether2": ""
|
362
|
+
},
|
363
|
+
{
|
364
|
+
"Address": {
|
365
|
+
"City": "Washington",
|
366
|
+
"State": "DC",
|
367
|
+
"Street": "801 Michigan Avenue NE",
|
368
|
+
"Zip": "20017"
|
369
|
+
},
|
370
|
+
"Code": "B05",
|
371
|
+
"Lat": 38.9332109913,
|
372
|
+
"LineCode1": "RD",
|
373
|
+
"LineCode2": null,
|
374
|
+
"LineCode3": null,
|
375
|
+
"LineCode4": null,
|
376
|
+
"Lon": -76.9945342851,
|
377
|
+
"Name": "Brookland",
|
378
|
+
"StationTogether1": "",
|
379
|
+
"StationTogether2": ""
|
380
|
+
},
|
381
|
+
{
|
382
|
+
"Address": {
|
383
|
+
"City": "Washington",
|
384
|
+
"State": "DC",
|
385
|
+
"Street": "550 Galloway Street NE",
|
386
|
+
"Zip": "20011"
|
387
|
+
},
|
388
|
+
"Code": "B06",
|
389
|
+
"Lat": 38.9518467675,
|
390
|
+
"LineCode1": "RD",
|
391
|
+
"LineCode2": null,
|
392
|
+
"LineCode3": null,
|
393
|
+
"LineCode4": null,
|
394
|
+
"Lon": -77.0022030768,
|
395
|
+
"Name": "Fort Totten",
|
396
|
+
"StationTogether1": "E06",
|
397
|
+
"StationTogether2": ""
|
398
|
+
},
|
399
|
+
{
|
400
|
+
"Address": {
|
401
|
+
"City": "Washington",
|
402
|
+
"State": "DC",
|
403
|
+
"Street": "327 Cedar Street NW",
|
404
|
+
"Zip": "20012"
|
405
|
+
},
|
406
|
+
"Code": "B07",
|
407
|
+
"Lat": 38.976078531,
|
408
|
+
"LineCode1": "RD",
|
409
|
+
"LineCode2": null,
|
410
|
+
"LineCode3": null,
|
411
|
+
"LineCode4": null,
|
412
|
+
"Lon": -77.0181766987,
|
413
|
+
"Name": "Takoma",
|
414
|
+
"StationTogether1": "",
|
415
|
+
"StationTogether2": ""
|
416
|
+
},
|
417
|
+
{
|
418
|
+
"Address": {
|
419
|
+
"City": "Silver Spring",
|
420
|
+
"State": "MD",
|
421
|
+
"Street": "8400 Colesville Road",
|
422
|
+
"Zip": "20910"
|
423
|
+
},
|
424
|
+
"Code": "B08",
|
425
|
+
"Lat": 38.9939493747,
|
426
|
+
"LineCode1": "RD",
|
427
|
+
"LineCode2": null,
|
428
|
+
"LineCode3": null,
|
429
|
+
"LineCode4": null,
|
430
|
+
"Lon": -77.0310178268,
|
431
|
+
"Name": "Silver Spring",
|
432
|
+
"StationTogether1": "",
|
433
|
+
"StationTogether2": ""
|
434
|
+
},
|
435
|
+
{
|
436
|
+
"Address": {
|
437
|
+
"City": "Forest Glen",
|
438
|
+
"State": "MD",
|
439
|
+
"Street": "9730 Georgia Avenue",
|
440
|
+
"Zip": "20910"
|
441
|
+
},
|
442
|
+
"Code": "B09",
|
443
|
+
"Lat": 39.0149542752,
|
444
|
+
"LineCode1": "RD",
|
445
|
+
"LineCode2": null,
|
446
|
+
"LineCode3": null,
|
447
|
+
"LineCode4": null,
|
448
|
+
"Lon": -77.0429165548,
|
449
|
+
"Name": "Forest Glen",
|
450
|
+
"StationTogether1": "",
|
451
|
+
"StationTogether2": ""
|
452
|
+
},
|
453
|
+
{
|
454
|
+
"Address": {
|
455
|
+
"City": "Silver Spring",
|
456
|
+
"State": "MD",
|
457
|
+
"Street": "11171 Georgia Avenue",
|
458
|
+
"Zip": "20902"
|
459
|
+
},
|
460
|
+
"Code": "B10",
|
461
|
+
"Lat": 39.0375271436,
|
462
|
+
"LineCode1": "RD",
|
463
|
+
"LineCode2": null,
|
464
|
+
"LineCode3": null,
|
465
|
+
"LineCode4": null,
|
466
|
+
"Lon": -77.0501070535,
|
467
|
+
"Name": "Wheaton",
|
468
|
+
"StationTogether1": "",
|
469
|
+
"StationTogether2": ""
|
470
|
+
},
|
471
|
+
{
|
472
|
+
"Address": {
|
473
|
+
"City": "Silver Spring",
|
474
|
+
"State": "MD",
|
475
|
+
"Street": "12501 Georgia Avenue",
|
476
|
+
"Zip": "20906"
|
477
|
+
},
|
478
|
+
"Code": "B11",
|
479
|
+
"Lat": 39.0617837655,
|
480
|
+
"LineCode1": "RD",
|
481
|
+
"LineCode2": null,
|
482
|
+
"LineCode3": null,
|
483
|
+
"LineCode4": null,
|
484
|
+
"Lon": -77.0535573593,
|
485
|
+
"Name": "Glenmont",
|
486
|
+
"StationTogether1": "",
|
487
|
+
"StationTogether2": ""
|
488
|
+
}
|
489
|
+
]
|
490
|
+
}
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
$:.unshift 'lib'
|
2
|
+
require 'ruby_wmata'
|
3
|
+
require 'webmock/rspec'
|
4
|
+
WebMock.disable_net_connect!(allow_localhost: true)
|
5
|
+
|
6
|
+
|
7
|
+
RSpec.configure do |config|
|
8
|
+
|
9
|
+
config.before(:each) do
|
10
|
+
stub_request(:get, %r|https://api.wmata.com/StationPrediction.svc/json/GetPrediction/|).
|
11
|
+
to_return(status: 200, body: File.open("./spec/fixtures/next_trains.json"){|f| f.read}, headers: {})
|
12
|
+
|
13
|
+
stub_request(:get, %r|https://api.wmata.com/Rail.svc/json/jStations|).
|
14
|
+
to_return(status: 200, body: File.open("./spec/fixtures/train_stations.json"){|f| f.read}, headers: {})
|
15
|
+
|
16
|
+
stub_request(:get, %r|https://api.wmata.com/Rail.svc/json/jPath|).
|
17
|
+
to_return(status: 200, body: File.open("./spec/fixtures/train_path.json"){|f| f.read}, headers: {})
|
18
|
+
|
19
|
+
stub_request(:get, %r|https://api.wmata.com/Incidents.svc/json/Incidents|).
|
20
|
+
to_return(status: 200, body: File.open("./spec/fixtures/train_incidents.json"){|f| f.read}, headers: {})
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
data/spec/train_spec.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
#require 'pry'
|
3
|
+
describe WMATA do
|
4
|
+
before(:all) { WMATA.api = 'xxxxx' }
|
5
|
+
|
6
|
+
it 'should predict next trains' do
|
7
|
+
expect(WMATA).to respond_to :next_trains
|
8
|
+
expect(WMATA.next_trains).not_to be_empty
|
9
|
+
["Car","Min","DestinationName"].each{ |field|
|
10
|
+
expect(WMATA.next_trains.first[field]).not_to be_nil
|
11
|
+
}
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should give a list of all train stations ' do
|
15
|
+
expect(WMATA).to respond_to :train_stations
|
16
|
+
expect(WMATA.train_stations).not_to be_empty
|
17
|
+
["Code","Name","LineCode1","Address"].each {|field|
|
18
|
+
expect(WMATA.train_stations.first[field]).not_to be_nil
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'should give path from station to another ' do
|
23
|
+
expect(WMATA).to respond_to :train_path
|
24
|
+
expect(WMATA.train_path("A02","A01")).not_to be_empty
|
25
|
+
path = WMATA.train_path("A02","A01")
|
26
|
+
#binding.pry
|
27
|
+
["LineCode","SeqNum","StationCode","StationName"].each{|field|
|
28
|
+
#puts "#{field} "#=> #{path.first[field]}"
|
29
|
+
expect(path.first[field]).not_to be_nil
|
30
|
+
}
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
it 'should give rails incidents' do
|
35
|
+
expect(WMATA).to respond_to :train_incidents
|
36
|
+
expect(WMATA.train_incidents).not_to be_empty
|
37
|
+
end
|
38
|
+
=begin
|
39
|
+
def rail_incidents(self):
|
40
|
+
return self._get('Incidents', 'Incidents')
|
41
|
+
=end
|
42
|
+
end
|
metadata
ADDED
@@ -0,0 +1,136 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ruby_wmata
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.9.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Rafik Bennacer
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-02-05 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.7'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.7'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: httparty
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.13.3
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.13.3
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: webmock
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.20.4
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.20.4
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 3.1.0
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 3.1.0
|
83
|
+
description: With this gem you will be able to retrieve realtime information about
|
84
|
+
stations, trains and incidents.
|
85
|
+
email:
|
86
|
+
- bennacer860@gmail.com
|
87
|
+
executables: []
|
88
|
+
extensions: []
|
89
|
+
extra_rdoc_files: []
|
90
|
+
files:
|
91
|
+
- ".gitignore"
|
92
|
+
- Gemfile
|
93
|
+
- LICENSE.txt
|
94
|
+
- README.md
|
95
|
+
- Rakefile
|
96
|
+
- lib/client.rb
|
97
|
+
- lib/ruby_wmata.rb
|
98
|
+
- lib/ruby_wmata/version.rb
|
99
|
+
- ruby_wmata.gemspec
|
100
|
+
- spec/fixtures/next_trains.json
|
101
|
+
- spec/fixtures/train_incidents.json
|
102
|
+
- spec/fixtures/train_path.json
|
103
|
+
- spec/fixtures/train_stations.json
|
104
|
+
- spec/spec_helper.rb
|
105
|
+
- spec/train_spec.rb
|
106
|
+
homepage: ''
|
107
|
+
licenses:
|
108
|
+
- MIT
|
109
|
+
metadata: {}
|
110
|
+
post_install_message:
|
111
|
+
rdoc_options: []
|
112
|
+
require_paths:
|
113
|
+
- lib
|
114
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
requirements: []
|
125
|
+
rubyforge_project:
|
126
|
+
rubygems_version: 2.4.3
|
127
|
+
signing_key:
|
128
|
+
specification_version: 4
|
129
|
+
summary: It is a simple WMATA api ruby wrapper
|
130
|
+
test_files:
|
131
|
+
- spec/fixtures/next_trains.json
|
132
|
+
- spec/fixtures/train_incidents.json
|
133
|
+
- spec/fixtures/train_path.json
|
134
|
+
- spec/fixtures/train_stations.json
|
135
|
+
- spec/spec_helper.rb
|
136
|
+
- spec/train_spec.rb
|