actransit_rails 0.1.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ad1f9e6df558a900e021aa1baf9ebc46922be315
4
- data.tar.gz: 6321e8df8df27364c171dfe85c738d0ee162f735
3
+ metadata.gz: ad3dd9f032df1c65da242f9b4508b68d7df4914a
4
+ data.tar.gz: bef2da53560a6e943fd0366c44b711bc2cb6744d
5
5
  SHA512:
6
- metadata.gz: cb3af51e723d196d3891751d0ce2e1e736d1638d618ceae353766353f530c0301acf4e7a1413148a3718ccb996bbaaa7db41d19a4290a10aaa93173e313f4399
7
- data.tar.gz: 3f8f4731a44ca1b996556802d10e498eea3313fbd77012a99d8f40e0d7e6631695bcefbb4e3dc824599eb033a9555c676c6691cdde617b9310b10a73a8cc05f1
6
+ metadata.gz: 5ba2c8a1c8ab3f8020158d032867e67b7cc13724142d196c67444715c5839c1132363e534066a0e33becd1460d313dd90c20760d19563d51159c5501c51d9372
7
+ data.tar.gz: 3ca3ccaca6c50d78d41e9a1567b73ddb08ef41e217784902015290c15cafecc51279043bce194252cf974c74c7e08c54db9551abd4e37073910a1687a93ac400
data/CHANGELOG.md ADDED
@@ -0,0 +1,8 @@
1
+ # ActransitRails Change Log
2
+
3
+ # 07.20.15 - Version 0.2.0
4
+
5
+ Added Error Handling based on the HTTP response codes.
6
+
7
+ ACTransitRails will raise an APIAccessError with a `message` and `code` attributes.
8
+
@@ -1,4 +1,5 @@
1
1
  require "actransit_rails/version"
2
+ require "actransit_rails/exceptions"
2
3
  require 'json'
3
4
 
4
5
  module ACTransitRails
@@ -60,7 +61,8 @@ module ACTransitRails
60
61
  "#{route_name}/trip/" +
61
62
  "#{trip}/stops/" +
62
63
  search_string +
63
- my_token
64
+ my_token +
65
+ response_format
64
66
  )
65
67
  return get_response(uri)
66
68
  end
@@ -79,9 +81,28 @@ module ACTransitRails
79
81
  return "token=" + @actransit_token
80
82
  end
81
83
 
84
+ def self.response_format
85
+ return "&format=json"
86
+ end
87
+
82
88
  def self.get_response(uri)
83
89
  http = Net::HTTP.new(uri.host, uri.port)
84
- response = http.request(Net::HTTP::Get.new(uri.request_uri))
85
- return JSON.parse response.body
90
+ http_response = http.request(Net::HTTP::Get.new(uri.request_uri))
91
+ return process_response(http_response)
86
92
  end
93
+
94
+ def self.process_response(http_response)
95
+ code = "#{http_response.code}"
96
+ message = ""
97
+ case (http_response.code)
98
+ when '200'
99
+ return JSON.parse http_response.body
100
+ when '401'
101
+ message = http_response.body
102
+ when '404'
103
+ message = "Not found. No results for your query."
104
+ end
105
+ raise ACTransitRails::APIAccessError.new(message, code)
106
+ end
107
+
87
108
  end
@@ -0,0 +1,14 @@
1
+ module ACTransitRails
2
+
3
+ class Error < StandardError; end
4
+ class APIAccessError < Error
5
+ attr_reader :message, :code
6
+
7
+ def initialize(message, code)
8
+ @code = code
9
+ @message = "ACTransit returned error: #{code} - #{message}"
10
+ super(@message)
11
+ end
12
+ end
13
+
14
+ end
@@ -1,3 +1,3 @@
1
1
  module ACTransitRails
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: actransit_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sanjay Y Patel
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-07-15 00:00:00.000000000 Z
11
+ date: 2015-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -76,6 +76,7 @@ files:
76
76
  - ".DS_Store"
77
77
  - ".gitignore"
78
78
  - ".travis.yml"
79
+ - CHANGELOG.md
79
80
  - CODE_OF_CONDUCT.md
80
81
  - Gemfile
81
82
  - LICENSE.txt
@@ -85,6 +86,7 @@ files:
85
86
  - bin/console
86
87
  - bin/setup
87
88
  - lib/actransit_rails.rb
89
+ - lib/actransit_rails/exceptions.rb
88
90
  - lib/actransit_rails/version.rb
89
91
  - tasks/rspec.rake
90
92
  homepage: https://github.com/sanjayypatel/actransit_rails.git