safer_bus_api 0.0.1 → 0.0.4
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 +4 -4
- data/README.md +24 -1
- data/lib/safer_base_api.rb +7 -35
- data/lib/safer_bus_api/query.rb +23 -0
- data/lib/safer_bus_api/request.rb +29 -0
- data/lib/safer_bus_api/response.rb +15 -0
- data/lib/safer_bus_api/version.rb +2 -2
- data/safer_bus_api.gemspec +1 -1
- metadata +10 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 67ce3c5993fb98a883ab27f78d29290f899ce970
|
4
|
+
data.tar.gz: 422c1a4920d21ab40c4c461df80685d2309a8a0b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 75092fc44c8a481edd2a95756c2c12336d38eff7a1c67ac4b9cb184a85c3c21973286c8cf782d1b471a83ea1b59e7c42bd0aae0eaffda27e874634f8448478e9
|
7
|
+
data.tar.gz: b65faaa39261c9950796bf8c15e4a06bb2090f60b8e92fb4cfd7936bbb7c179534615fb4c17045307b7208a15a5c49bf158722782c707ed9ad83d271c6c321f1
|
data/README.md
CHANGED
@@ -28,9 +28,32 @@ SaferBusApi.configure do |config|
|
|
28
28
|
end
|
29
29
|
```
|
30
30
|
|
31
|
-
## Usage
|
31
|
+
## Example Usage
|
32
32
|
|
33
|
+
### Query by DOT number:
|
33
34
|
|
35
|
+
```ruby
|
36
|
+
request = SaferBusApi::Request.new(dot_number: '44110')
|
37
|
+
response = request.perform
|
38
|
+
response.data # Returns a formatted hash
|
39
|
+
response.raw_data # Returns the raw response from
|
40
|
+
```
|
41
|
+
|
42
|
+
### Query by Company Name:
|
43
|
+
|
44
|
+
```ruby
|
45
|
+
request = SaferBusApi::Request.new(company_name: 'greyhound') # Note: company name should have no spaces and be all lower case.
|
46
|
+
response = request.perform
|
47
|
+
response.data # Returns a formatted hash
|
48
|
+
```
|
49
|
+
|
50
|
+
### Query by MC Number:
|
51
|
+
|
52
|
+
```ruby
|
53
|
+
request = SaferBusApi::Request.new(mc_number: '1515') # Note: company name should have no spaces and be all lower case.
|
54
|
+
response = request.perform
|
55
|
+
response.data # Returns a formatted hash
|
56
|
+
```
|
34
57
|
|
35
58
|
## Author
|
36
59
|
[Nathan Bertram](https://github.com/nathanbertram)
|
data/lib/safer_base_api.rb
CHANGED
@@ -1,43 +1,15 @@
|
|
1
|
-
require
|
2
|
-
require '
|
1
|
+
require 'typhoeus'
|
2
|
+
require 'safer_bus_api/version'
|
3
|
+
require 'safer_bus_api/configuration'
|
4
|
+
require 'safer_bus_api/query'
|
5
|
+
require 'safer_bus_api/request'
|
6
|
+
require 'safer_bus_api/response'
|
3
7
|
|
4
8
|
module SaferBusApi
|
5
|
-
|
9
|
+
module_function
|
6
10
|
|
7
11
|
def configure
|
8
12
|
yield SaferBusApi::Configuration
|
9
13
|
end
|
10
14
|
|
11
|
-
def initialize(opts={})
|
12
|
-
@dot_number = opts[:dot_number]
|
13
|
-
@response = nil
|
14
|
-
end
|
15
|
-
|
16
|
-
def perform
|
17
|
-
raise 'Cannot perform SaferBusApi api-request with empty dot_number' if @dot_number.blank?
|
18
|
-
@response = SaferBusApi.query_by_dot_number(@dot_number)
|
19
|
-
end
|
20
|
-
|
21
|
-
def response
|
22
|
-
@response
|
23
|
-
end
|
24
|
-
|
25
|
-
def self.query_by_company_name(company_name)
|
26
|
-
fetch_data("carriers/#{company_name}")
|
27
|
-
end
|
28
|
-
|
29
|
-
def self.query_by_dot_number(dot_number)
|
30
|
-
fetch_data("carrier/#{dot_number}")
|
31
|
-
end
|
32
|
-
|
33
|
-
def self.query_by_mc_number(mc_number)
|
34
|
-
fetch_data("carrier/#{mc_number}")
|
35
|
-
end
|
36
|
-
|
37
|
-
def self.fetch_data(url_suffix)
|
38
|
-
url = "#{BASE_URL}#{url_suffix}.json?start=1&size=10&webKey=#{SaferBusApi::Configuration.api_token}"
|
39
|
-
response = Typhoeus.get(url)
|
40
|
-
return JSON.parse(response.body)
|
41
|
-
end
|
42
|
-
|
43
15
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module SaferBusApi
|
2
|
+
class Query
|
3
|
+
BASE_URL = 'https://mobile.fmcsa.dot.gov/saferbus/resource/v1/'
|
4
|
+
|
5
|
+
def self.by_company_name(company_name)
|
6
|
+
fetch_data("carriers/#{company_name}")
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.by_dot_number(dot_number)
|
10
|
+
fetch_data("carrier/#{dot_number}")
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.by_mc_number(mc_number)
|
14
|
+
fetch_data("carrier/#{mc_number}")
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.fetch_data(url_suffix)
|
18
|
+
url = "#{BASE_URL}#{url_suffix}.json?start=1&size=10&webKey=#{SaferBusApi::Configuration.api_token}"
|
19
|
+
response = Typhoeus.get(url)
|
20
|
+
return response.body
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module SaferBusApi
|
2
|
+
class Request
|
3
|
+
def initialize(opts={})
|
4
|
+
@dot_number = opts[:dot_number]
|
5
|
+
@company_name = opts[:company_name]
|
6
|
+
@mc_number = opts[:mc_number]
|
7
|
+
|
8
|
+
@response = nil
|
9
|
+
end
|
10
|
+
|
11
|
+
def perform
|
12
|
+
if @dot_number.present?
|
13
|
+
@response = SaferBusApi::Query.by_dot_number(@dot_number)
|
14
|
+
elsif @company_name.present?
|
15
|
+
@response = SaferBusApi::Query.by_company_name(@company_name)
|
16
|
+
elsif @mc_number.present?
|
17
|
+
@response = SaferBusApi::Query.by_mc_number(@mc_number)
|
18
|
+
else
|
19
|
+
raise 'SaferBusApi Error: Need to set either a dot_number, company_name or mc_number.'
|
20
|
+
end
|
21
|
+
|
22
|
+
Response.new(@response)
|
23
|
+
end
|
24
|
+
|
25
|
+
def response
|
26
|
+
@response
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -1,3 +1,3 @@
|
|
1
|
-
|
2
|
-
VERSION = "0.0.
|
1
|
+
module SaferBusApi
|
2
|
+
VERSION = "0.0.4"
|
3
3
|
end
|
data/safer_bus_api.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: safer_bus_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Bertram
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: typhoeus
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
33
|
+
version: '0.6'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
40
|
+
version: '0.6'
|
41
41
|
description: The Department of Transportation maintains the SaferBusAPI to provide
|
42
42
|
safety information pertaining to transporation companies.
|
43
43
|
email:
|
@@ -50,6 +50,9 @@ files:
|
|
50
50
|
- README.md
|
51
51
|
- lib/safer_base_api.rb
|
52
52
|
- lib/safer_bus_api/configuration.rb
|
53
|
+
- lib/safer_bus_api/query.rb
|
54
|
+
- lib/safer_bus_api/request.rb
|
55
|
+
- lib/safer_bus_api/response.rb
|
53
56
|
- lib/safer_bus_api/version.rb
|
54
57
|
- safer_bus_api.gemspec
|
55
58
|
homepage: http://github.com/TanookiSuitLabs/safer_bus_api
|
@@ -72,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
72
75
|
version: '0'
|
73
76
|
requirements: []
|
74
77
|
rubyforge_project:
|
75
|
-
rubygems_version: 2.
|
78
|
+
rubygems_version: 2.0.3
|
76
79
|
signing_key:
|
77
80
|
specification_version: 4
|
78
81
|
summary: A simple wrapper for the SaferBusAPI
|