saddle 0.0.46 → 0.0.48

Sign up to get free protection for your applications and to get access to all the features.
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: