saddle 0.0.46 → 0.0.48

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 ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ Yjk4ZjdjM2Y4ZGM5NDk1ZjI0MzA5M2ZjY2EyZTA0ODRlMTA0YjY0MQ==
5
+ data.tar.gz: !binary |-
6
+ Yjk0ZWYwMjVkNmE0MDgzZmE4MDYyOWZlYjJkOTcyMTllZTcyN2E1Mw==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ ZjBjZWI3Y2RjZWNhZGQwMmExODY2NzVkMzRiMDBlMGQ1MzRlZWVlNzc1Y2Jm
10
+ NTA3MjAxODk2YjE1ZTgyYjU4MjEwODkxMWE4ZDEyZWY4ZTNmOGVmMjMyNmRl
11
+ MGRlMDYzNzQxMjZkNzlhMzcwNWJhMWYwYTU3OGUyZDVhMTQ5OWQ=
12
+ data.tar.gz: !binary |-
13
+ OGFmNWY3MWY3MmMxMDM2MjBiMDY0NDMxMTEwZjZmYjFmYmY2ZWRhYTcwYmMw
14
+ YWEyZGJmYWJjMGFkZGVkMjRhN2Q2MDBmODFiZGZmMjY2Yzg4Y2UzZThiNWMy
15
+ OTI4OTI2YWUxODVjOGQ1MTM4ZjgyMjg5N2RhNjBjYjgyMjQzMmE=
data/.gitignore CHANGED
@@ -5,6 +5,9 @@
5
5
  # RVM
6
6
  .rvmrc
7
7
 
8
+ # rbenv
9
+ .ruby-version
10
+
8
11
  # Gems
9
12
  *.gem
10
13
  Gemfile.lock
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ # 0.0.48
2
+ * Optionally return the full response object using `:return_full_response`
3
+
4
+ # 0.0.47
5
+ * Pass arguments to the underlying HTTP adapter via `:http_adapter`
6
+
1
7
  # 0.0.46
2
8
  * Moving the path_prefix and user-agent middlewares before the custom middleware block.
3
9
  ** This is needed for OAuth 1.0 middleware to work.
@@ -16,7 +16,8 @@ module Saddle
16
16
  :timeout => timeout,
17
17
  :http_adapter => http_adapter,
18
18
  :stubs => stubs,
19
- :additional_middlewares => self.additional_middlewares,
19
+ :return_full_response => return_full_response,
20
+ :additional_middlewares => self.additional_middlewares
20
21
  }
21
22
  end
22
23
 
@@ -56,7 +57,8 @@ module Saddle
56
57
  30
57
58
  end
58
59
 
59
- # Support specification of the HTTP adapter being used
60
+ # Support specification of the HTTP adapter being used. Returns a symbol or
61
+ # hash of the form { :key => :net_http, :args => [ ... ] }.
60
62
  def http_adapter
61
63
  :net_http
62
64
  end
@@ -66,7 +68,10 @@ module Saddle
66
68
  nil
67
69
  end
68
70
 
69
-
71
+ # Should the client return the full response object, or just the body?
72
+ def return_full_response
73
+ false
74
+ end
70
75
 
71
76
  # Use this to add additional middleware to the request stack
72
77
  # ex:
@@ -58,12 +58,18 @@ module Saddle
58
58
  raise ':additional_middleware must be an Array' unless @additional_middlewares.is_a?(Array)
59
59
  raise 'invalid middleware found' unless @additional_middlewares.all? { |m| m[:klass] < Faraday::Middleware }
60
60
  raise 'middleware arguments must be an array' unless @additional_middlewares.all? { |m| m[:args].nil? || m[:args].is_a?(Array) }
61
+
61
62
  @http_adapter = opt[:http_adapter] || :net_http
62
- raise ':http_adapter must be a symbol' unless @http_adapter.is_a?(Symbol)
63
+ raise ':http_adapter must be a symbol or a hash' unless @http_adapter.is_a?(Symbol) || @http_adapter.is_a?(Hash)
64
+ @http_adapter = { :key => @http_adapter } if @http_adapter.is_a?(Symbol)
65
+ raise 'adapter key must be a symbol' unless @http_adapter[:key].is_a?(Symbol)
66
+ raise 'adapter arguments must be an array' unless @http_adapter[:args].nil? || @http_adapter[:args].is_a?(Array)
67
+
63
68
  @stubs = opt[:stubs] || nil
64
69
  unless @stubs.nil?
65
70
  raise ':stubs must be a Faraday::Adapter::Test::Stubs' unless @stubs.is_a?(Faraday::Adapter::Test::Stubs)
66
71
  end
72
+ @return_full_response = opt[:return_full_response] || false
67
73
  end
68
74
 
69
75
 
@@ -73,7 +79,7 @@ module Saddle
73
79
  req.options.deep_merge!(options)
74
80
  req.url(url, params)
75
81
  end
76
- response.body
82
+ handle_response(response)
77
83
  end
78
84
 
79
85
  # Make a POST request
@@ -83,7 +89,7 @@ module Saddle
83
89
  req.url(url)
84
90
  req.body = data
85
91
  end
86
- response.body
92
+ handle_response(response)
87
93
  end
88
94
 
89
95
  # Make a PUT request
@@ -93,7 +99,7 @@ module Saddle
93
99
  req.url(url)
94
100
  req.body = data
95
101
  end
96
- response.body
102
+ handle_response(response)
97
103
  end
98
104
 
99
105
  # Make a DELETE request
@@ -102,13 +108,18 @@ module Saddle
102
108
  req.options.deep_merge!(options)
103
109
  req.url(url, params)
104
110
  end
105
- response.body
111
+ handle_response(response)
106
112
  end
107
113
 
108
114
 
109
115
 
110
116
  private
111
117
 
118
+ # Return the appropriate response format based on options
119
+ def handle_response response
120
+ @return_full_response ? response : response.body
121
+ end
122
+
112
123
  # Construct a base url using this requester's settings
113
124
  def base_url
114
125
  "http#{'s' if @use_ssl}://#{@host}#{":#{@port}" if @port}"
@@ -164,7 +175,7 @@ module Saddle
164
175
  # Set up our adapter
165
176
  if @stubs.nil?
166
177
  # Use the default adapter
167
- builder.adapter(@http_adapter)
178
+ builder.adapter(@http_adapter[:key], *@http_adapter[:args])
168
179
  else
169
180
  # Use the test adapter
170
181
  builder.adapter(:test, @stubs)
@@ -1,3 +1,3 @@
1
1
  module Saddle
2
- VERSION = '0.0.46'
2
+ VERSION = '0.0.48'
3
3
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: saddle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.46
5
- prerelease:
4
+ version: 0.0.48
6
5
  platform: ruby
7
6
  authors:
8
7
  - Mike Lewis
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-10-08 00:00:00.000000000 Z
11
+ date: 2013-12-16 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activesupport
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ! '>='
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: faraday
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: faraday_middleware
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ~>
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
@@ -127,27 +120,26 @@ files:
127
120
  homepage: https://github.com/mLewisLogic/saddle
128
121
  licenses:
129
122
  - MIT
123
+ metadata: {}
130
124
  post_install_message:
131
125
  rdoc_options: []
132
126
  require_paths:
133
127
  - lib
134
128
  required_ruby_version: !ruby/object:Gem::Requirement
135
- none: false
136
129
  requirements:
137
130
  - - ! '>='
138
131
  - !ruby/object:Gem::Version
139
132
  version: '0'
140
133
  required_rubygems_version: !ruby/object:Gem::Requirement
141
- none: false
142
134
  requirements:
143
135
  - - ! '>='
144
136
  - !ruby/object:Gem::Version
145
137
  version: '0'
146
138
  requirements: []
147
139
  rubyforge_project:
148
- rubygems_version: 1.8.25
140
+ rubygems_version: 2.1.11
149
141
  signing_key:
150
- specification_version: 3
142
+ specification_version: 4
151
143
  summary: A full-featured, generic consumer layer for you to build API client implementations
152
144
  with.
153
145
  test_files: