actransit_rails 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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