dcmetro 0.0.2 → 0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 26b4e560cc10b94ec132c545fdfbaf56ab923126
4
- data.tar.gz: 10e8f6c5602fe8de59a982a6f31d4880be270623
3
+ metadata.gz: dc313326de3ac26b92b875af66674b2ca9a38a30
4
+ data.tar.gz: ac7a212cd6cec05143267728e2e7c66b5a949074
5
5
  SHA512:
6
- metadata.gz: 5e321972a4fecd6ba6b16d6f3ff47ed1a199f7aebbf266fbccf8072af52ecfd979b80a2413f6b09ab522017d9c270878a838be281073f881b81a255727de1d85
7
- data.tar.gz: 345a453a721b5583d19c4e96bdc7ab550d92133ddb62ecba4f00dd97df92b3fac7d6fb9ea5f54e2efd787fbe391d9f7440db4d5e9da4005f9e16309dd3946f40
6
+ metadata.gz: f2c0675d498fdb34f53900671a11af6442efd934e0b318804c470a26bdb3b182d82dda92e08e4fb23bbd88f6065f0c7ce4ab5e1c41177a478a00a697ee5aef8c
7
+ data.tar.gz: e48582d557f17e3d75cc9af0fe576f35864db2f18456c17f0f893d782aa5c835745bbec403538dad9050d69ac92f4230c8365d0e8a58ce6f0c5937ec16840466
data/.coveralls.yml ADDED
@@ -0,0 +1 @@
1
+ service_name: travis-ci
data/.gitignore CHANGED
@@ -11,4 +11,5 @@
11
11
  *.so
12
12
  *.o
13
13
  *.a
14
+ *.gem
14
15
  mkmf.log
data/.travis.yml ADDED
@@ -0,0 +1,14 @@
1
+ language: ruby
2
+ cache: bundler
3
+
4
+ rvm:
5
+ - 2.2.0
6
+
7
+ script: 'bundle exec rake features'
8
+
9
+ notifications:
10
+ email:
11
+ recipients:
12
+ - kcrocken@gmail.com
13
+ on_failure: change
14
+ on_success: never
data/README.md CHANGED
@@ -1,4 +1,7 @@
1
- # DCMetro
1
+ # DCMetro
2
+ [![Gem Version](https://badge.fury.io/rb/dcmetro.svg)](http://badge.fury.io/rb/dcmetro)
3
+ [![Build Status](https://travis-ci.org/kencrocken/dcmetro.svg?branch=master)](https://travis-ci.org/kencrocken/dcmetro)
4
+ [![Coverage Status](https://coveralls.io/repos/kencrocken/dcmetro/badge.svg?branch=master&service=github)](https://coveralls.io/github/kencrocken/dcmetro?branch=master)
2
5
 
3
6
  Rails class and a command line interface to access the Washington, D.C. Metro Rail API. Returns the systemwide alerts, lines, stations and arrival times for the lines at each station.
4
7
 
@@ -18,6 +21,17 @@ Or install it yourself as:
18
21
 
19
22
  $ gem install dcmetro
20
23
 
24
+ ####An ENV variable must be set either in your shell for the CLI or where ever you keep such variables in your Rails apps.
25
+
26
+ The variable needs to be set to `DCMETRO_KEY`
27
+
28
+ It is recommended that a key is requested from https://developer.wmata.com/
29
+
30
+ For the CLI, in the `.bash_profile` set the following:
31
+ `EXPORT DCMETRO_KEY = <<replace with api key from WMATA>>`
32
+
33
+ Don't forget to `source .bash_profile` after making the changes.
34
+
21
35
  ## Usage
22
36
  ###Rails App
23
37
 
@@ -49,9 +63,25 @@ Commands:
49
63
  dcmetro alerts # Display DC Metro system wide alerts.
50
64
  dcmetro help [COMMAND] # Describe available commands or one specific command
51
65
  dcmetro line COLOR # Display metro rail lines, if COLOR, displays rail stations on the COLOR line
52
- dcmetro station NAME # Display metro station train arrival and departure times.
66
+ dcmetro station STARTING,DEST # Display metro station train arrival and departure times and travel info.
53
67
  ```
54
68
 
69
+ ### CHANGELOG
70
+ ##### Changes in 0.0.2
71
+
72
+ 1. Updates the api calls to the new format
73
+ 2. Fixes a bug if multiple stations are returned
74
+ 3. Requires the use of an env variable for the API key
75
+ 4. Requires rest-client
76
+ ##### Changes in 0.0.3
77
+
78
+ 1. Adds station to station travel information
79
+ 2. Expanded test coverage
80
+ 3. Refactors code so that the Information Class merely returns information
81
+ Any parsing is now done in the CLI application
82
+
83
+ # Bug: If no stations are returned app pukes
84
+ # Bug: Pentagon and Pentagon City confuses app
55
85
 
56
86
  ## Contributing
57
87
 
data/Rakefile CHANGED
@@ -1,2 +1,10 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler'
2
+ require 'bundler/gem_tasks'
3
+ require 'cucumber'
4
+ require 'cucumber/rake/task'
5
+
6
+ Cucumber::Rake::Task.new(:features) do |t|
7
+ t.cucumber_opts = "DCMETRO_KEY=#{ENV['DCMETRO_KEY']} features --format pretty"
8
+ end
9
+
2
10
 
data/dcmetro.gemspec CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
8
8
  spec.version = Dcmetro::VERSION
9
9
  spec.authors = ["Ken Crocken"]
10
10
  spec.email = ["kcrocken@gmail.com"]
11
- spec.summary = %q{Returns DC Metro information, including train schedules.}
12
- spec.description = %q{Returns DC Metro information, including train schedules.}
11
+ spec.summary = %q{Returns DC Metro Rails information, including train schedules.}
12
+ spec.description = %q{Washington, DC Metro Rails information, including lines, stations and arrival/departure predictions.}
13
13
  spec.homepage = "https://github.com/kencrocken/dcmetro"
14
14
  spec.license = "MIT"
15
15
 
@@ -24,4 +24,6 @@ Gem::Specification.new do |spec|
24
24
 
25
25
  spec.add_development_dependency "bundler", "~> 1.6"
26
26
  spec.add_development_dependency "rake"
27
+ spec.add_development_dependency "aruba"
28
+ spec.add_development_dependency "coveralls"
27
29
  end
@@ -0,0 +1,9 @@
1
+ Feature: check dcmetro alerts
2
+
3
+ In order to check alerts
4
+ When I run `dcmetro alerts`
5
+ Then alerts should be display
6
+
7
+ Scenario: check alerts
8
+ When I run `dcmetro alerts`
9
+ Then the stdout should contain "***"
@@ -0,0 +1,43 @@
1
+ @check
2
+ Feature: External calls to WMATA api
3
+
4
+ When I call WMATA api
5
+ Then the response should be "200"
6
+ And should return "JSON"
7
+ And should contain "the desired information"
8
+
9
+
10
+ Scenario: Check Alerts
11
+ When I send a GET request for "WMATA Alerts"
12
+ Then the response should be "200"
13
+ Then should return "JSON"
14
+ And should contain "Incidents"
15
+
16
+ Scenario: Check Lines
17
+ When I send a GET request for "WMATA Lines"
18
+ Then the response should be "200"
19
+ And should return "JSON"
20
+ And should contain "Lines"
21
+
22
+ Scenario: Check Stations on a Line
23
+ When I send a GET request for "WMATA Lines Red"
24
+ Then the response should be "200"
25
+ And should return "JSON"
26
+ And should contain "Stations"
27
+
28
+ Scenario: Check Stations arrival/departure times
29
+ When I send a GET request for "WMATA Station Gallery"
30
+ Then the response should be "200"
31
+ And should return "JSON"
32
+ And should contain "Line"
33
+ And should contain "DestinationName"
34
+ And should contain "Min"
35
+
36
+ @wip
37
+ Scenario: Check travel time, distance and fare between two stations
38
+ When I send a GET request for "WMATA Station Gallery College"
39
+ Then the response should be "200"
40
+ And should return "JSON"
41
+ And should contain "CompositeMiles"
42
+ And should contain "RailFare"
43
+ And should contain "RailTime"
@@ -0,0 +1,21 @@
1
+ Feature: check dcmetro lines
2
+
3
+ In order to check lines
4
+ When I run `dcmetro lines`
5
+ Then metro lines should be displayed
6
+
7
+ Scenario: check lines
8
+ When I run `dcmetro line`
9
+ Then the stdout should contain "Green\nBlue\nSilver\nRed\nOrange\nYellow"
10
+
11
+ Scenario: check lines
12
+ When I run `dcmetro lines`
13
+ Then the stdout should contain "Green\nBlue\nSilver\nRed\nOrange\nYellow"
14
+
15
+ Scenario: check red line for Gallery Place
16
+ When I run `dcmetro line red`
17
+ Then the stdout should contain "Gallery"
18
+
19
+ Scenario: check green line for Gallery Place
20
+ When I run `dcmetro line green`
21
+ Then the stdout should contain "Gallery"
@@ -0,0 +1,18 @@
1
+ Feature: check dcmetro station predictions
2
+
3
+ In order to station predictions
4
+ When I run `dcmetro station STATION`
5
+ Then train predictions for STATION should be displayed
6
+
7
+ Scenario: check gallery predictions
8
+ When I run `dcmetro station gallery`
9
+ Then the stdout should contain "===== Gallery Pl-Chinatown ====="
10
+
11
+ Scenario: check predictions from partial name
12
+ When I run `dcmetro station gall`
13
+ Then the stdout should contain "===== Gallery Pl-Chinatown ====="
14
+
15
+ Scenario: check predictions returning more than one station
16
+ When I run `dcmetro station g` interactively
17
+ And I type "5"
18
+ Then the stdout should contain "===== Gallery Pl-Chinatown ====="
@@ -0,0 +1,28 @@
1
+ When(/^I send a GET request for "([^"]*)"$/) do |path|
2
+ case path
3
+ when "WMATA Alerts"
4
+ @last_response = X.alerts
5
+ when "WMATA Lines"
6
+ @last_response = X.line
7
+ when "WMATA Lines Red"
8
+ @last_response = X.line "Red"
9
+ when "WMATA Station Gallery"
10
+ @last_response = X.station "Gallery place"
11
+ when "WMATA Station Gallery College"
12
+ @last_response = X.station "Gallery", "College"
13
+ else
14
+ false
15
+ end
16
+ end
17
+
18
+ Then(/^the response should be "([^"]*)"$/) do |status|
19
+ @last_response.code == status.to_i
20
+ end
21
+
22
+ Then(/^should return "([^"]*)"$/) do |arg1|
23
+ valid_json?(@last_response)
24
+ end
25
+
26
+ Then(/^should contain "([^"]*)"$/) do |arg1|
27
+ @last_response[arg1]
28
+ end
@@ -0,0 +1,24 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+
4
+ require 'aruba/cucumber'
5
+ require 'json'
6
+ require 'rest-client'
7
+ require 'dcmetro'
8
+
9
+ DCMETRO_KEY=ENV['DCMETRO_KEY']
10
+ API_KEY = DCMETRO_KEY
11
+ BASE_URL="http://api.wmata.com"
12
+
13
+ X = DCMetro::Information.new
14
+
15
+ Before ("@check ") do
16
+ def valid_json?(json)
17
+ begin
18
+ JSON.parse(json)
19
+ true
20
+ rescue
21
+ false
22
+ end
23
+ end
24
+ end
@@ -1,6 +1,6 @@
1
1
  require 'thor'
2
2
  require 'json'
3
- require 'rest_client'
3
+ require 'rest-client'
4
4
 
5
5
  #
6
6
  # This is the command line interface using Thor
@@ -16,7 +16,9 @@ module DCMetro
16
16
  # => *** Alert! Alert! ***
17
17
 
18
18
  x = DCMetro::Information.new
19
- display_alerts x.alerts
19
+
20
+ alerts = parse_json x.alerts
21
+ display_alerts alerts
20
22
  end
21
23
 
22
24
  desc 'line COLOR', 'Display metro rail lines, if COLOR, displays rail stations on the COLOR line'
@@ -31,15 +33,26 @@ module DCMetro
31
33
  x = DCMetro::Information.new
32
34
 
33
35
  if !color.nil?
34
- x.line(color).each { |station| puts station['Name']}
36
+ line = parse_json x.line(color)
37
+ line["Stations"].each { |station| puts station['Name']}
35
38
  else
36
- x.line.each { |line| puts line["DisplayName"]}
39
+ lines = parse_json x.line
40
+ lines["Lines"].each do |line|
41
+ color = get_color(line['LineCode'])
42
+
43
+ puts "#{color}#{line['DisplayName']}#{COLOR_OFF}"
44
+ end
37
45
  end
38
46
  end
39
47
 
48
+ desc "lines", "invokes line method"
49
+ def lines color=nil
50
+ invoke :line
51
+ end
52
+
40
53
  desc 'station NAME', 'Display metro station train arrival and departure times.'
41
54
  method_option :alerts, :aliases => '-a', :type => :boolean, :description => "Display Metro wide alerts."
42
- def station(name)
55
+ def station(from, to=nil)
43
56
  #
44
57
  # $dcmetro station Greenbelt
45
58
  # => Displays the departure and arrival times at the Greenbelt Station
@@ -51,20 +64,48 @@ module DCMetro
51
64
  x = DCMetro::Information.new
52
65
 
53
66
  if options[:alerts]
54
- y = x.alerts
67
+ y = parse_json x.alerts
55
68
  display_alerts y
56
69
  end
57
70
 
58
- x = x.station(name)
59
- train_time = x['Trains'].empty? ? "Sorry, there is no information for #{name}." : display_trains(x['Trains'])
60
- puts train_time if !train_time.kind_of?(Array)
61
- train_time
71
+ if to.nil?
72
+ x = parse_json x.station(from)
73
+ train_time = x['Trains'].empty? ? "Sorry, there is no information for #{from}." : display_trains(x['Trains'])
74
+ puts train_time if !train_time.kind_of?(Array)
75
+ train_time
76
+ else
77
+ x = x.station(from,to)
78
+ y = parse_json x
79
+ display_travel_info y
80
+
81
+ end
62
82
  end
63
83
 
64
84
  private
65
85
 
66
86
  no_commands do
67
87
 
88
+ def get_color line_code
89
+ case line_code
90
+ when "GR"
91
+ GREEN
92
+ when "BL"
93
+ BLUE
94
+ when "OR"
95
+ ORANGE
96
+ when "SV"
97
+ SILVER
98
+ when "YL"
99
+ YELLOW
100
+ else
101
+ RED
102
+ end
103
+ end
104
+
105
+ def parse_json response
106
+ JSON.parse(response)
107
+ end
108
+
68
109
  def display_alerts alerts
69
110
  #
70
111
  # Formats the display of the alerts
@@ -87,6 +128,14 @@ module DCMetro
87
128
  end
88
129
  end
89
130
 
131
+ def display_travel_info information
132
+ information = information['StationToStationInfos'][0]
133
+ railFare = information['RailFare']
134
+ puts "Distance: #{information['CompositeMiles']} Miles\n"
135
+ puts "Estimate Travel Time: #{information['RailTime']} Minutes\n"
136
+ puts "\n*** Fare Information ***\nOff Peak Time: $#{railFare['OffPeakTime']}\nPeak Time: $#{railFare['PeakTime']}\nSenior/Disabled: $#{railFare['SeniorDisabled']}"
137
+ end
138
+
90
139
  end
91
140
 
92
141
  end
@@ -1,5 +1,5 @@
1
1
  module Dcmetro
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
4
4
 
5
5
  ### Changes in 0.0.2
@@ -10,4 +10,16 @@ end
10
10
  #
11
11
  # Requires the use of an env variable for the API key
12
12
  #
13
- # Requires rest-client
13
+ # Requires rest-client
14
+
15
+ ### Changes in 0.0.3
16
+ #
17
+ # Adds station to station travel information
18
+ #
19
+ # Expanded test coverage
20
+ #
21
+ # Refactors code so that the Information Class merely returns information
22
+ # Any parsing is now done in the CLI application
23
+ #
24
+ # Bug: If no stations are returned app pukes
25
+ # Bug: Pentagon and Pentagon City confuses app
data/lib/dcmetro.rb CHANGED
@@ -3,21 +3,27 @@ require_relative 'dcmetro/cli/application'
3
3
 
4
4
  module DCMetro
5
5
  class Information
6
- attr_accessor :metro_incidents, :metro_lines, :metro_stations, :station_code, :metro_time
6
+ attr_accessor :metro_incidents, :metro_lines, :metro_stations, :station_code, :metro_time, :travel_info
7
+
8
+ BASE_URL="https://api.wmata.com"
7
9
 
8
10
  def initialize
9
- @metro_incidents = JSON.parse(RestClient.get "http://api.wmata.com/Incidents.svc/json/Incidents?api_key=#{API_KEY}&subscription-key=#{API_KEY}")
10
- @metro_lines = JSON.parse(RestClient.get "http://api.wmata.com/Rail.svc/json/JLines?api_key=#{API_KEY}&subscription-key=#{API_KEY}")
11
+ @metro_incidents = metro_incidents
12
+ @metro_lines = metro_lines
11
13
  @metro_stations = metro_stations
12
14
  @station_code = ""
13
15
  @metro_time = metro_time
16
+ @travel_info = travel_info
14
17
  end
15
18
 
16
19
  def alerts
17
20
  #
18
21
  # Makes the api call and returns the alerts
22
+ @metro_incidents = RestClient.get "#{BASE_URL}/Incidents.svc/json/Incidents", :params => {
23
+ "api_key" => API_KEY,
24
+ "subscription-key" => API_KEY
25
+ }
19
26
 
20
- @metro_incidents
21
27
  end ### alerts
22
28
 
23
29
  def line(color=nil)
@@ -27,14 +33,44 @@ module DCMetro
27
33
 
28
34
  if !color.nil?
29
35
  color = color.downcase
30
- @metro_stations = JSON.parse(RestClient.get "http://api.wmata.com/Rail.svc/json/jStations?LineCode=#{color}&api_key=#{API_KEY}&subscription-key=#{API_KEY}")
31
- @metro_stations['Stations']
36
+
37
+ case color
38
+ when "red"
39
+ color = "RD"
40
+ when "green"
41
+ color = "GR"
42
+ when "yellow"
43
+ color = "YL"
44
+ when "blue"
45
+ color = "BL"
46
+ when "orange"
47
+ color = "OR"
48
+ else
49
+ color = "SV"
50
+ end
51
+
52
+ @metro_stations = RestClient.get "#{BASE_URL}/Rail.svc/json/jStations", :params => {
53
+ "LineCode" => color,
54
+ "api_key" => API_KEY,
55
+ "subscription-key" => API_KEY
56
+ }
57
+
58
+ # @metro_stations = parse_json metro_stations
59
+ # @metro_stations['Stations']
32
60
  else
33
- @metro_lines['Lines']
61
+ @metro_lines = RestClient.get "#{BASE_URL}/Rail.svc/json/JLines", :params => {
62
+ "api_key" => API_KEY,
63
+ "subscription-key" => API_KEY
64
+ }
65
+
66
+ # @metro_lines = metro_lines
67
+ # @metro_lines['Lines']
68
+
69
+ # @metro_lines = get_all_stations
34
70
  end
35
71
  end ### line
36
72
 
37
- def station(name)
73
+ def station(source,destination=nil)
38
74
  #
39
75
  # Makes the api call to return all stations in the Metro rail system and
40
76
  # then grabs the specific station passed by the user
@@ -43,43 +79,85 @@ module DCMetro
43
79
  stations_check = []
44
80
 
45
81
  # forming the api call
46
- url = "https://api.wmata.com/Rail.svc/json/jStations?api_key=#{API_KEY}&subscription-key=#{API_KEY}"
47
- @metro_stations = JSON.parse(RestClient.get "#{url}")
48
-
49
- # Iterates through the response checking if the station name passed by the user
50
- # is included in the return response
51
- @metro_stations['Stations'].each do |station_name|
52
- if station_name['Name'].downcase.include? name.downcase
53
-
54
- # if the names of the station matches the user's station, the station
55
- # is pushed to an array
56
- stations_check.push(station_name)
82
+ @metro_stations = JSON.parse(get_all_stations)
83
+
84
+ if destination.nil?
85
+ # Iterates through the response checking if the station name passed by the user
86
+ # is included in the return response
87
+ @metro_stations['Stations'].each do |station_name|
88
+ if station_name['Name'].downcase.include? source.downcase
89
+ # if the names of the station matches the user's station, the station
90
+ # is pushed to an array
91
+ stations_check.push(station_name)
92
+ end
57
93
  end
58
- end
59
-
60
- # Oddly, the api seems to return some stations twice - since some stations have more than
61
- # one line. Though the additional station information is contained in each instance of the
62
- # station.
63
- # We limit our array to only unique station names, hopefully limiting the array to a single item
64
- stations_check.uniq! { |station| station['Name'] }
65
-
66
- # If the array length is greater than 1, we ask the user to be more specific and
67
- # return the names of the stations
68
- if stations_check.length > 1
69
- puts "****Multiple stations found****"
70
- stations_check.each do |station|
71
- puts station['Name']
72
- puts station
94
+ # Oddly, the api seems to return some stations twice - since some stations have more than
95
+ # one line. Though the additional station information is contained in each instance of the
96
+ # station.
97
+ # We limit our array to only unique station names, hopefully limiting the array to a single item
98
+ stations_check.uniq! { |station| station['Name'] }
99
+
100
+ # If the array length is greater than 1, we ask the user to be more specific and
101
+ # return the names of the stations
102
+ if stations_check.length > 1
103
+ puts "****Multiple stations found****"
104
+ stations_check.each_with_index do |station,i|
105
+ puts "#{i} #{station['Name']}"
106
+ end
107
+ puts "****Please be more specific, enter the number below ****"
108
+ specific = STDIN.gets.chomp.to_i
109
+ station_time stations_check[specific]
110
+ else
111
+ # We pass the station the station_time method to grab the predictions
112
+ station_time stations_check[0]
73
113
  end
74
- abort "****Please be more specific****"
75
114
  else
76
- # We pass the station the station_time method to grab the predictions
77
- station_time stations_check[0]
115
+ stations = [source, destination]
116
+ station_code = []
117
+ stations.each do |station|
118
+ @metro_stations['Stations'].each do |station_name|
119
+ if station_name['Name'].downcase.include? station.downcase
120
+ station_code << station_name
121
+ end
122
+ end
123
+ end
124
+ station_code.uniq! { |station| station['Name'] }
125
+ if station_code.length > 2
126
+ puts "****Multiple stations found****"
127
+ station_code.each_with_index do |station,i|
128
+ puts "#{i} #{station['Name']}"
129
+ end
130
+ puts "****Please be more specific****"
131
+ puts "Enter the number of your starting station."
132
+ start = STDIN.gets.chomp.to_i
133
+ puts "Enter the number of your destination station."
134
+ destination = STDIN.gets.chomp.to_i
135
+ @travel_info = RestClient.get "#{BASE_URL}/Rail.svc/json/jSrcStationToDstStationInfo", :params => {
136
+ "FromStationCode" => station_code[start]['Code'],
137
+ "ToStationCode" => station_code[destination]['Code'],
138
+ "api_key" => API_KEY,
139
+ "subscription-key" => API_KEY
140
+ }
141
+ else
142
+ @travel_info = RestClient.get "#{BASE_URL}/Rail.svc/json/jSrcStationToDstStationInfo", :params => {
143
+ "FromStationCode" => station_code[0]['Code'],
144
+ "ToStationCode" => station_code[1]['Code'],
145
+ "api_key" => API_KEY,
146
+ "subscription-key" => API_KEY
147
+ }
148
+ end
78
149
  end
79
150
  end ### station
80
151
 
81
152
  private
82
153
 
154
+ def get_all_stations
155
+ return RestClient.get "#{BASE_URL}/Rail.svc/json/jStations", :params => {
156
+ "api_key" => API_KEY,
157
+ "subscription-key" => API_KEY
158
+ }
159
+ end
160
+
83
161
  #
84
162
  # This makes an api call to grab the train arrival and departure predictions.
85
163
  # If more than one line is present at a station, such is concatenated and
@@ -97,8 +175,10 @@ module DCMetro
97
175
  end
98
176
 
99
177
  # The call to the api is made and the prediction times are returned
100
- url = "http://api.wmata.com/StationPrediction.svc/json/GetPrediction/#{@station_code}?api_key=#{API_KEY}&subscription-key=#{API_KEY}"
101
- @metro_time = JSON.parse(RestClient.get "#{url}")
178
+ @metro_time = RestClient.get "#{BASE_URL}/StationPrediction.svc/json/GetPrediction/#{@station_code}", :params => {
179
+ "api_key" => API_KEY,
180
+ "subscription-key" => API_KEY
181
+ }
102
182
  @metro_time
103
183
  end
104
184
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dcmetro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ken Crocken
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-09 00:00:00.000000000 Z
11
+ date: 2016-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -80,7 +80,36 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
- description: Returns DC Metro information, including train schedules.
83
+ - !ruby/object:Gem::Dependency
84
+ name: aruba
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: coveralls
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: Washington, DC Metro Rails information, including lines, stations and
112
+ arrival/departure predictions.
84
113
  email:
85
114
  - kcrocken@gmail.com
86
115
  executables:
@@ -88,13 +117,21 @@ executables:
88
117
  extensions: []
89
118
  extra_rdoc_files: []
90
119
  files:
120
+ - ".coveralls.yml"
91
121
  - ".gitignore"
122
+ - ".travis.yml"
92
123
  - Gemfile
93
124
  - LICENSE.txt
94
125
  - README.md
95
126
  - Rakefile
96
127
  - bin/dcmetro
97
128
  - dcmetro.gemspec
129
+ - features/alerts.feature
130
+ - features/external.feature
131
+ - features/lines.feature
132
+ - features/station.feature
133
+ - features/step_definitions/api_test_steps.rb
134
+ - features/support/env.rb
98
135
  - lib/dcmetro.rb
99
136
  - lib/dcmetro/cli/application.rb
100
137
  - lib/dcmetro/version.rb
@@ -121,5 +158,11 @@ rubyforge_project:
121
158
  rubygems_version: 2.4.5
122
159
  signing_key:
123
160
  specification_version: 4
124
- summary: Returns DC Metro information, including train schedules.
125
- test_files: []
161
+ summary: Returns DC Metro Rails information, including train schedules.
162
+ test_files:
163
+ - features/alerts.feature
164
+ - features/external.feature
165
+ - features/lines.feature
166
+ - features/station.feature
167
+ - features/step_definitions/api_test_steps.rb
168
+ - features/support/env.rb