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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a1deaf4c103576f67cc498b9c7a786b4ac93a765
4
- data.tar.gz: bfb84476d5245c2da30f3faef1fae0c3973d92ae
3
+ metadata.gz: 67ce3c5993fb98a883ab27f78d29290f899ce970
4
+ data.tar.gz: 422c1a4920d21ab40c4c461df80685d2309a8a0b
5
5
  SHA512:
6
- metadata.gz: 6119b904f8d31b489970d942da3a8e44ddf93b5b3b2cd2dbda19a84711b4348d624ae5860704b001d5e153e4b6353fa8bbdeff628081432579e5ff13c1ae35e7
7
- data.tar.gz: eda7bc88a59b871d46e9987f83f71228d5d32748143aca7b248ee3a2e06f7783a9fc4adf51d9fee7626704fd7feab24c0b6fd59941362af75d24127a2f1f896e
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)
@@ -1,43 +1,15 @@
1
- require "safer_bus_api/version"
2
- require 'duly_noted/configuration'
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
- BASE_URL = 'https://mobile.fmcsa.dot.gov/saferbus/resource/v1/'
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
@@ -0,0 +1,15 @@
1
+ module SaferBusApi
2
+ class Response
3
+ def initialize(raw_data)
4
+ @raw_data = raw_data
5
+ end
6
+
7
+ def data
8
+ JSON.parse(@raw_data)
9
+ end
10
+
11
+ def raw_data
12
+ @raw_data
13
+ end
14
+ end
15
+ end
@@ -1,3 +1,3 @@
1
- class SaferBusApi
2
- VERSION = "0.0.1"
1
+ module SaferBusApi
2
+ VERSION = "0.0.4"
3
3
  end
@@ -17,6 +17,6 @@ Gem::Specification.new do |gem|
17
17
  gem.license = 'MIT'
18
18
 
19
19
  gem.add_development_dependency('rspec')
20
- gem.add_dependency('typhoeus')
20
+ gem.add_dependency 'typhoeus', '~> 0.6'
21
21
 
22
22
  end
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.1
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-14 00:00:00.000000000 Z
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.1.11
78
+ rubygems_version: 2.0.3
76
79
  signing_key:
77
80
  specification_version: 4
78
81
  summary: A simple wrapper for the SaferBusAPI