tankard 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: caf2e4adbd1c27dad9227737cec3b9ccb7947d4d
4
- data.tar.gz: ce3dbc3b145c38afdcb37c80472ac042d121269d
3
+ metadata.gz: 6aa50daed58d6eec35118b8f2d8c3849ed224c01
4
+ data.tar.gz: f965bcf8557b59391b73d86fcaec0d9ed7c47113
5
5
  SHA512:
6
- metadata.gz: 4734b1c05ec5529b9af9105c70308aacf74a5cdd04b76e570c461beb2775ff2a430ec1a3947f64b37d7a065bae75500e91b13e17d42aa233276080d4ff597b72
7
- data.tar.gz: 1b27b4d244bb37e09453d9908d8fd91667244f47a5b22de60fe9f36ca89d68aa4128f127795574596811f960aa30740b23dae2b99aea8e7d40f4eb9c360a1575
6
+ metadata.gz: f8eb6fa746869c8e816f5e643b534dbbf411018825e566c5a0935360804fa763aa008cf0b96e2b84fa71cff92bb67da90221d06bee22ef2b134f9f790117ccd7
7
+ data.tar.gz: f0045e571b37fd5f651f5cb38ec598bd172b771844a20af09b74225ccf48f72748168823629fa9781854c9e1dddc3f802e3fa895d4d010af85d396817f77b74c
@@ -0,0 +1,15 @@
1
+ AllCops:
2
+ Includes:
3
+ - 'Gemfile'
4
+ - 'Rakefile'
5
+ - 'tankard.gemspec'
6
+
7
+ AccessModifierIndentation:
8
+ EnforcedStyle: outdent
9
+ EmptyLinesAroundBody:
10
+ Enabled: false
11
+ LineLength:
12
+ Enabled: false
13
+ MethodLength:
14
+ CountComments: false # count full line comments?
15
+ Max: 10
@@ -1,15 +1,20 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - jruby-19mode
4
- - rbx-19mode
4
+ - rbx-2.0.0
5
+ - rbx-2.1.1
6
+ - rbx-2.2.6
5
7
  - 1.9.3
6
8
  - 2.0.0
9
+ - 2.1.0
10
+ - 2.1.1
7
11
  - ruby-head
8
12
  - jruby-head
9
13
  jdk:
10
14
  - openjdk6
11
15
  - openjdk7
12
16
  - oraclejdk7
17
+ - oraclejdk8
13
18
  matrix:
14
19
  allow_failures:
15
20
  - rvm: ruby-head
@@ -19,15 +24,47 @@ matrix:
19
24
  jdk: openjdk7
20
25
  - rvm: 1.9.3
21
26
  jdk: oraclejdk7
27
+ - rvm: 1.9.3
28
+ jdk: oraclejdk8
22
29
  - rvm: 2.0.0
23
30
  jdk: openjdk7
24
31
  - rvm: 2.0.0
25
32
  jdk: oraclejdk7
33
+ - rvm: 2.0.0
34
+ jdk: oraclejdk8
35
+ - rvm: 2.1.0
36
+ jdk: openjdk7
37
+ - rvm: 2.1.0
38
+ jdk: oraclejdk7
39
+ - rvm: 2.1.0
40
+ jdk: oraclejdk8
41
+ - rvm: 2.1.1
42
+ jdk: openjdk7
43
+ - rvm: 2.1.1
44
+ jdk: oraclejdk7
45
+ - rvm: 2.1.1
46
+ jdk: oraclejdk8
26
47
  - rvm: ruby-head
27
48
  jdk: openjdk7
28
49
  - rvm: ruby-head
29
50
  jdk: oraclejdk7
30
- - rvm: rbx-19mode
51
+ - rvm: ruby-head
52
+ jdk: oraclejdk8
53
+ - rvm: rbx-2.0.0
54
+ jdk: openjdk7
55
+ - rvm: rbx-2.0.0
56
+ jdk: oraclejdk7
57
+ - rvm: rbx-2.0.0
58
+ jdk: oraclejdk8
59
+ - rvm: rbx-2.1.1
31
60
  jdk: openjdk7
32
- - rvm: rbx-19mode
33
- jdk: oraclejdk7
61
+ - rvm: rbx-2.1.1
62
+ jdk: oraclejdk7
63
+ - rvm: rbx-2.1.1
64
+ jdk: oraclejdk8
65
+ - rvm: rbx-2.2.6
66
+ jdk: openjdk7
67
+ - rvm: rbx-2.2.6
68
+ jdk: oraclejdk7
69
+ - rvm: rbx-2.2.6
70
+ jdk: oraclejdk8
@@ -1,3 +1,10 @@
1
+ ## v0.2.0 (03/28/14)
2
+ * Fixed Rspec deprecation's
3
+ * Relaxed strictness of required gem's
4
+ * Refactored a significant amount of the gem
5
+ * Allow reusing of a query
6
+ * Test gem against more ruby interpreters
7
+
1
8
  ## v0.1.0 (05/15/2013)
2
9
  * Add params method to beers. Allows passing additional parameters in an additional way.
3
10
  * Add params method to beer. Allows passing additional parameters in an additional way.
@@ -12,4 +19,4 @@
12
19
 
13
20
  ## v0.0.1
14
21
  * Support for querying a beer
15
- * Support for querying a list of beers
22
+ * Support for querying a list of beers
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- task default: :spec
6
+ task default: :spec
@@ -1,9 +1,12 @@
1
- require "tankard/version"
2
- require "tankard/configuration"
3
- require "tankard/error"
4
- require "tankard/client"
5
- require "atomic"
1
+ require 'tankard/version'
2
+ require 'tankard/configuration'
3
+ require 'tankard/error'
4
+ require 'tankard/client'
5
+ require 'atomic'
6
6
 
7
+ # Sets up and delegates 'most' method calls to the Tankard Client
8
+ #
9
+ # @author Matthew Shafer
7
10
  module Tankard
8
11
  @client = ::Atomic.new
9
12
 
@@ -11,23 +14,23 @@ module Tankard
11
14
  include Configuration
12
15
 
13
16
  def client
14
- @client.compare_and_swap(nil, Tankard::Client.new(credentials)) unless @client.value
17
+ @client.compare_and_swap(nil, Tankard::Client.new(credentials))
15
18
  @client.value
16
19
  end
17
20
 
18
21
  def respond_to?(method)
19
- return client.respond_to?(method)
22
+ client.respond_to?(method)
20
23
  end
21
24
 
22
- private
25
+ private
23
26
 
24
- def method_missing(method_name, *args, &block)
25
- return super unless client.respond_to?(method_name)
26
- client.send(method_name, *args, &block)
27
- end
27
+ def method_missing(method_name, *args, &block)
28
+ return super unless client.respond_to?(method_name)
29
+ client.send(method_name, *args, &block)
30
+ end
28
31
 
29
- def reset_client
30
- @client.value = nil
31
- end
32
+ def reset_client
33
+ @client.value = nil
34
+ end
32
35
  end
33
36
  end
@@ -1,5 +1,4 @@
1
1
  require 'hashie'
2
- require 'tankard/api/request/get'
3
2
  require 'tankard/api/utils/page_finders'
4
3
  require 'tankard/api/utils/find'
5
4
 
@@ -10,7 +9,6 @@ module Tankard
10
9
  # @see http://www.brewerydb.com/developers/docs-endpoint/beer_index
11
10
  # @author Matthew Shafer
12
11
  class Beer
13
- include Tankard::Api::Request::Get
14
12
  include Tankard::Api::Utils::PageFinders
15
13
  include Tankard::Api::Utils::Find
16
14
  # @!parse include ::Enumerable
@@ -20,9 +18,9 @@ module Tankard
20
18
  # @param request [Tankard::Request]
21
19
  # @param options [Hash]
22
20
  # @return [Tankard::Api::Beer]
23
- def initialize(request, options={})
24
- @request = request
25
- @options = Hashie::Mash.new(options)
21
+ def initialize(request, options = {})
22
+ @http_client = request
23
+ @http_request_parameters = Hashie::Mash.new(options)
26
24
  end
27
25
 
28
26
  # @!method find(id_or_array, options={})
@@ -49,7 +47,7 @@ module Tankard
49
47
  # @param beer_id [String]
50
48
  # @return [self] returns itself
51
49
  def id(beer_id)
52
- @options.id = beer_id
50
+ @http_request_parameters.id = beer_id
53
51
  self
54
52
  end
55
53
 
@@ -57,7 +55,7 @@ module Tankard
57
55
  #
58
56
  # @return [self] returns itself
59
57
  def breweries
60
- @options.endpoint = "breweries"
58
+ @http_request_parameters.endpoint = 'breweries'
61
59
  self
62
60
  end
63
61
 
@@ -65,7 +63,7 @@ module Tankard
65
63
  #
66
64
  # @return [self] returns itself
67
65
  def events
68
- @options.endpoint = "events"
66
+ @http_request_parameters.endpoint = 'events'
69
67
  self
70
68
  end
71
69
 
@@ -73,7 +71,7 @@ module Tankard
73
71
  #
74
72
  # @return [self] returns itself
75
73
  def ingredients
76
- @options.endpoint = "ingredients"
74
+ @http_request_parameters.endpoint = 'ingredients'
77
75
  self
78
76
  end
79
77
 
@@ -81,7 +79,7 @@ module Tankard
81
79
  #
82
80
  # @return [self] returns itself
83
81
  def social_accounts
84
- @options.endpoint = "socialaccounts"
82
+ @http_request_parameters.endpoint = 'socialaccounts'
85
83
  self
86
84
  end
87
85
 
@@ -89,7 +87,7 @@ module Tankard
89
87
  #
90
88
  # @return [self] returns itself
91
89
  def variations
92
- @options.endpoint = "variations"
90
+ @http_request_parameters.endpoint = 'variations'
93
91
  self
94
92
  end
95
93
 
@@ -97,41 +95,34 @@ module Tankard
97
95
  #
98
96
  # @param options [Hash]
99
97
  # @return [self] returns itself
100
- def params(options={})
101
- options.each_pair do |key,value|
102
- @options[key] = value
98
+ def params(options = {})
99
+ options.each_pair do |key, value|
100
+ @http_request_parameters[key] = value
103
101
  end
104
102
  self
105
103
  end
106
104
 
107
- private
105
+ private
108
106
 
109
- def http_request_uri
110
- endpoint = "#{route}/#{raise_if_no_id_in_options}"
107
+ attr_reader :http_client
108
+ attr_reader :http_request_parameters
111
109
 
112
- if @options.endpoint?
113
- endpoint += "/#{@options.delete(:endpoint)}"
114
- end
115
-
116
- endpoint
117
- end
118
-
119
- def raise_if_no_id_in_options
120
- raise Tankard::Error::MissingParameter, "No Beer ID is set" unless @options.id?
121
- @options.delete(:id)
122
- end
123
-
124
- def route
125
- "beer"
126
- end
110
+ def http_request_uri
111
+ @request_endpoint = "/#{@http_request_parameters.delete(:endpoint)}" if @http_request_parameters.endpoint?
112
+ endpoint = "#{route}/#{raise_if_no_id_in_options}"
113
+ endpoint += @request_endpoint if @request_endpoint
114
+ endpoint
115
+ end
127
116
 
128
- def http_client
129
- @request
130
- end
117
+ def raise_if_no_id_in_options
118
+ @beer_id = @http_request_parameters.delete(:id) if @http_request_parameters.id?
119
+ fail Tankard::Error::MissingParameter, 'No Beer ID is set' unless @beer_id
120
+ @beer_id
121
+ end
131
122
 
132
- def http_request_parameters
133
- @options
134
- end
123
+ def route
124
+ 'beer'
125
+ end
135
126
  end
136
127
  end
137
- end
128
+ end
@@ -18,9 +18,9 @@ module Tankard
18
18
  # @param request [Tankard::Request]
19
19
  # @param options [Hash]
20
20
  # @return [Tankard::Api::Beers]
21
- def initialize(request, options={})
22
- @request = request
23
- @options = Hashie::Mash.new(options)
21
+ def initialize(request, options = {})
22
+ @http_client = request
23
+ @http_request_parameters = Hashie::Mash.new(options)
24
24
  end
25
25
 
26
26
  # @!method each(&block)
@@ -37,7 +37,7 @@ module Tankard
37
37
  # @param beer_name [String]
38
38
  # @return [self] returns itself
39
39
  def name(beer_name)
40
- @options[:name] = beer_name
40
+ @http_request_parameters.name = beer_name
41
41
  self
42
42
  end
43
43
 
@@ -46,7 +46,7 @@ module Tankard
46
46
  # @param number [Integer]
47
47
  # @return [self] returns itself
48
48
  def page(number)
49
- @options[:p] = number
49
+ @http_request_parameters.p = number
50
50
  self
51
51
  end
52
52
 
@@ -54,26 +54,21 @@ module Tankard
54
54
  #
55
55
  # @param options [Hash]
56
56
  # @return [self] returns itself
57
- def params(options={})
58
- options.each_pair do |key,value|
59
- @options[key] = value
57
+ def params(options = {})
58
+ options.each_pair do |key, value|
59
+ @http_request_parameters[key] = value
60
60
  end
61
61
  self
62
62
  end
63
63
 
64
- private
64
+ private
65
65
 
66
- def http_request_uri
67
- "beers"
68
- end
69
-
70
- def http_client
71
- @request
72
- end
66
+ attr_reader :http_client
67
+ attr_reader :http_request_parameters
73
68
 
74
- def http_request_parameters
75
- @options
76
- end
69
+ def http_request_uri
70
+ 'beers'
71
+ end
77
72
  end
78
73
  end
79
- end
74
+ end
@@ -1,27 +1,23 @@
1
1
  module Tankard
2
2
  module Api
3
3
  module Request
4
+ # Helper for GET requests
5
+ #
6
+ # @author Matthew Shafer
4
7
  module Get
5
8
 
6
- private
9
+ private
7
10
 
8
- def request_data_with_nil_on_http_error(request_object, uri, options)
9
- begin
10
- request_data(request_object, uri, options)
11
- rescue Tankard::Error::HttpError
12
- nil
13
- end
14
- end
11
+ def request_data_with_nil_on_http_error(request_object, uri, options)
12
+ get_request(request_object, uri, options)['data']
13
+ rescue Tankard::Error::HttpError
14
+ nil
15
+ end
15
16
 
16
- # break up the request methods into smaller pieces
17
- def request_data(request_object, uri, options)
18
- get_request(request_object, uri, options)["data"]
19
- end
20
-
21
- def get_request(request_object, uri, options)
22
- request_object.get(uri, options)
23
- end
17
+ def get_request(request_object, uri, options)
18
+ request_object.get(uri, options)
19
+ end
24
20
  end
25
21
  end
26
22
  end
27
- end
23
+ end
@@ -17,9 +17,9 @@ module Tankard
17
17
  # @param request [Tankard::Request]
18
18
  # @param options [Hash]
19
19
  # @return [Tankard::Api::Search]
20
- def initialize(request, options={})
21
- @request = request
22
- @options = Hashie::Mash.new(options)
20
+ def initialize(request, options = {})
21
+ @http_client = request
22
+ @http_request_parameters = Hashie::Mash.new(options)
23
23
  end
24
24
 
25
25
  # Calls the given block once for each result
@@ -40,7 +40,7 @@ module Tankard
40
40
  # @param search_query [String]
41
41
  # @return [self] returns itself
42
42
  def query(search_query)
43
- @options.q = search_query
43
+ @http_request_parameters.q = search_query
44
44
  self
45
45
  end
46
46
 
@@ -49,7 +49,7 @@ module Tankard
49
49
  # @param number [Integer]
50
50
  # @return [self] returns itself
51
51
  def page(number)
52
- @options.p = number
52
+ @http_request_parameters.p = number
53
53
  self
54
54
  end
55
55
 
@@ -57,9 +57,9 @@ module Tankard
57
57
  #
58
58
  # @param options [Hash]
59
59
  # @return [self] returns itself
60
- def params(options={})
61
- options.each_pair do |key,value|
62
- @options[key] = value
60
+ def params(options = {})
61
+ options.each_pair do |key, value|
62
+ @http_request_parameters[key] = value
63
63
  end
64
64
  self
65
65
  end
@@ -69,7 +69,7 @@ module Tankard
69
69
  # @param search_type [String]
70
70
  # @return [self] returns itself
71
71
  def type(search_type)
72
- @options.type = search_type
72
+ @http_request_parameters.type = search_type
73
73
  self
74
74
  end
75
75
 
@@ -79,8 +79,8 @@ module Tankard
79
79
  # @param upc_code [Integer]
80
80
  # @return [self] returns itself
81
81
  def upc(upc_code)
82
- @options.code = upc_code
83
- @options.endpoint = "upc"
82
+ @http_request_parameters.code = upc_code
83
+ @http_request_parameters.endpoint = 'upc'
84
84
  self
85
85
  end
86
86
 
@@ -91,42 +91,33 @@ module Tankard
91
91
  # @param longitude [Float]
92
92
  # @return [self] returns itself
93
93
  def geo_point(latitude, longitude)
94
- @options.lat = latitude
95
- @options.lng = longitude
96
- @options.endpoint = "geo/point"
94
+ @http_request_parameters.lat = latitude
95
+ @http_request_parameters.lng = longitude
96
+ @http_request_parameters.endpoint = 'geo/point'
97
97
  self
98
98
  end
99
99
 
100
- private
100
+ private
101
101
 
102
- def http_request_uri
103
- endpoint = "search"
102
+ attr_reader :http_client
103
+ attr_reader :http_request_parameters
104
104
 
105
- if @options.endpoint?
106
- endpoint += "/#{@options.delete(:endpoint)}"
107
- end
108
-
109
- endpoint
110
- end
111
-
112
- def http_client
113
- @request
114
- end
115
-
116
- def http_request_parameters
117
- @options
118
- end
105
+ def http_request_uri
106
+ @request_endpoint = "/#{@http_request_parameters.delete(:endpoint)}" if @http_request_parameters.endpoint?
107
+ endpoint = 'search'
108
+ endpoint += @request_endpoint if @request_endpoint
109
+ endpoint
110
+ end
119
111
 
120
- def raise_if_required_options_not_set
121
- case @options.endpoint
122
- when nil
123
- raise Tankard::Error::MissingParameter, "No search query set" unless @options.q?
124
- when "upc"
125
- raise Tankard::Error::MissingParameter, "missing parameter: code" unless @options.code?
126
- when "geo/point"
127
- raise Tankard::Error::MissingParameter, "missing Parameters: lat, lng" unless @options.lat? && @options.lng?
128
- end
112
+ def raise_if_required_options_not_set
113
+ if @http_request_parameters.endpoint.nil?
114
+ fail Tankard::Error::MissingParameter, 'No search query set' unless @http_request_parameters.q?
115
+ elsif @http_request_parameters.endpoint == 'upc'
116
+ fail Tankard::Error::MissingParameter, 'missing parameter: code' unless @http_request_parameters.code?
117
+ elsif @http_request_parameters.endpoint == 'geo/point'
118
+ fail Tankard::Error::MissingParameter, 'missing Parameters: lat, lng' unless @http_request_parameters.lat? && @http_request_parameters.lng?
129
119
  end
120
+ end
130
121
  end
131
122
  end
132
- end
123
+ end