safer_bus_api 0.0.1 → 0.0.4

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: 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