sms_my_bus 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,9 +6,10 @@ require 'sms_my_bus/routes'
6
6
 
7
7
  require 'curb'
8
8
  require 'json'
9
-
9
+ require 'uri'
10
10
 
11
11
  module SmsMyBus
12
+ BASE_API_URI = 'http://api.smsmybus.com/v1/'
12
13
 
13
14
  def self.key= key
14
15
  @key = key
@@ -19,4 +20,14 @@ module SmsMyBus
19
20
  @key
20
21
  end
21
22
 
23
+ def self.make_api_request api_method, opts = {}
24
+ response = Curl::Easy.http_get(SmsMyBus.request_uri(api_method, opts))
25
+ JSON.parse(response.body_str)
26
+ end
27
+
28
+ def self.request_uri api_method, opts = {}
29
+ opts['key'] = SmsMyBus.key
30
+
31
+ "#{BASE_API_URI}#{api_method}?#{URI.encode_www_form(opts)}"
32
+ end
22
33
  end
@@ -1,8 +1,10 @@
1
1
  module SmsMyBus
2
2
  class Locations
3
3
  def self.get_stops route_id
4
- response = Curl::Easy.http_get("http://www.smsmybus.com/api/v1/getstops?key=#{SmsMyBus.key}&routeID=#{route_id}")
5
- JSON.parse(response.body_str)
4
+ api_method = 'getstops'
5
+ args = { 'routeID' => route_id }
6
+
7
+ SmsMyBus.make_api_request(api_method, args)
6
8
  end
7
9
  end
8
10
  end
@@ -1,8 +1,9 @@
1
1
  module SmsMyBus
2
2
  class Routes
3
3
  def self.get_routes
4
- response = Curl::Easy.http_get("http://www.smsmybus.com/api/v1/getroutes?key=#{SmsMyBus.key}")
5
- JSON.parse(response.body_str)
4
+ api_method = 'getroutes'
5
+
6
+ SmsMyBus.make_api_request api_method
6
7
  end
7
8
  end
8
9
  end
@@ -1,8 +1,10 @@
1
1
  module SmsMyBus
2
2
  class Schedules
3
3
  def self.get_arrivals stop_id
4
- response = Curl::Easy.http_get("http://www.smsmybus.com/api/v1/getarrivals?key=#{SmsMyBus.key}&stopID=#{stop_id}")
5
- JSON.parse(response.body_str)
4
+ api_method = 'getarrivals'
5
+ args = { 'stopID' => stop_id }
6
+
7
+ SmsMyBus.make_api_request(api_method, args)
6
8
  end
7
9
  end
8
10
  end
@@ -1,3 +1,3 @@
1
1
  module SmsMyBus
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -12,6 +12,22 @@ describe 'SmsMyBus' do
12
12
  end
13
13
  end
14
14
 
15
+ describe 'request_uri' do
16
+ context 'with opts' do
17
+ let(:expected_uri) { 'http://api.smsmybus.com/v1/getroutes?foo=bar&key=foobazzlew' }
18
+ it 'generates the correct URI' do
19
+ SmsMyBus.request_uri('getroutes', {:foo => 'bar'}).should == expected_uri
20
+ end
21
+ end
22
+ context 'with no opts' do
23
+ let(:expected_uri) { 'http://api.smsmybus.com/v1/getroutes?key=foobazzlew' }
24
+
25
+ it 'generates the correct URI' do
26
+ SmsMyBus.request_uri('getroutes').should == expected_uri
27
+ end
28
+ end
29
+ end
30
+
15
31
  describe SmsMyBus::Schedules do
16
32
  before do
17
33
  SmsMyBus.key = ENV['SMSMYBUS_KEY']
@@ -53,6 +69,4 @@ describe 'SmsMyBus' do
53
69
  end
54
70
  end
55
71
  end
56
-
57
- describe 'Notifications'
58
72
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sms_my_bus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-02-10 00:00:00.000000000Z
13
+ date: 2013-01-11 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: curb
17
- requirement: &2160929340 !ruby/object:Gem::Requirement
17
+ requirement: !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,15 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2160929340
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
26
31
  - !ruby/object:Gem::Dependency
27
32
  name: rspec
28
- requirement: &2160928920 !ruby/object:Gem::Requirement
33
+ requirement: !ruby/object:Gem::Requirement
29
34
  none: false
30
35
  requirements:
31
36
  - - ! '>='
@@ -33,10 +38,15 @@ dependencies:
33
38
  version: '0'
34
39
  type: :development
35
40
  prerelease: false
36
- version_requirements: *2160928920
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
37
47
  - !ruby/object:Gem::Dependency
38
48
  name: pry
39
- requirement: &2152952280 !ruby/object:Gem::Requirement
49
+ requirement: !ruby/object:Gem::Requirement
40
50
  none: false
41
51
  requirements:
42
52
  - - ! '>='
@@ -44,7 +54,12 @@ dependencies:
44
54
  version: '0'
45
55
  type: :development
46
56
  prerelease: false
47
- version_requirements: *2152952280
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
48
63
  description: A gem to talk to the awesome SMSMyBus API in Madison, WI.
49
64
  email:
50
65
  - matt.gauger@gmail.com
@@ -86,7 +101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
86
101
  version: '0'
87
102
  requirements: []
88
103
  rubyforge_project:
89
- rubygems_version: 1.8.15
104
+ rubygems_version: 1.8.24
90
105
  signing_key:
91
106
  specification_version: 3
92
107
  summary: SMSMyBus API integration