api_client 0.5.12 → 0.5.13

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
- ---
2
- SHA1:
3
- metadata.gz: d701efe0559b37e3cf87f4d54be040beeed8cf63
4
- data.tar.gz: 9ad51f5c23652fc1a31d2bbe3642cd45d7c46d28
5
- SHA512:
6
- metadata.gz: f63350c1e48cd18ab72b07ce5ea40be030f904f74245946b00b3977165ee5b7fbeb075377d78950deb730547b4181235bd3e2a02cabb6d163d4ee5ccc7d6c97a
7
- data.tar.gz: c195cba0d61896ef5df07cc0f36ee3283252b7df8d041bc035d23b01c3106bfedf9665a39335b384e6f4d8029977a49cfc231dc115e81df5037d6ee885e2d54d
1
+ ---
2
+ SHA512:
3
+ metadata.gz: 2e42b7b564b5052cfc4f16c402ed50c5799863466e80fff627b0c4941ac190aa5163698f53b1cc6213b2a5cf1d243806eb90b12408731b695434471e81f74b9e
4
+ data.tar.gz: b0753a40feb22f1db2511a8ad4c7266de5ebd9fdf1faf04a617b47e0cf742edec024efeffaae6a449f34fb6e72fda44b283969af2b2d04d7cc7d5218d7fb29eb
5
+ SHA1:
6
+ metadata.gz: 8e6ba65ec2ce249765942b32529d15d47c83f6be
7
+ data.tar.gz: 4ad33db01a65a8801882904b233069a5c09615ae
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 0.5.13
2
+
3
+ * add raw_body method to Scope which allows to set non-hash request payload
4
+
1
5
  # 0.5.12
2
6
 
3
7
  * fix threading problem on ruby 1.8.7 and earlier
data/README.md CHANGED
@@ -121,6 +121,13 @@ ApiClient allows you to apply scoping to your request using 3 methods:
121
121
 
122
122
  It returns a ApiClient::Scope object attached to a class you started with.
123
123
 
124
+ * ApiClient::Base.raw_body(body = nil)
125
+
126
+ Allows setting non-hash body in the request. Useful for binary payloads.
127
+ Notice: it overrides all parameters set via params method!
128
+
129
+ It returns a ApiClient::Scope object attached to a class you started with.
130
+
124
131
  All of these methods return a ApiClient::Scope object. When you call any request
125
132
  methods on this object (get, post, put, delete), the request will apply the
126
133
  options, params and headers.
@@ -60,6 +60,12 @@ module ApiClient
60
60
  self
61
61
  end
62
62
 
63
+ def raw_body(options = nil)
64
+ return @raw_body if options.nil?
65
+ @raw_body = options
66
+ self
67
+ end
68
+
63
69
  def clone_only_headers
64
70
  self.class.new(self.scopeable).headers(self.headers)
65
71
  end
@@ -79,7 +85,7 @@ module ApiClient
79
85
 
80
86
  raw = raw? || options.delete(:raw)
81
87
  params(options)
82
- response = connection.send method, path, @params, @headers
88
+ response = connection.send method, path, (@raw_body || @params), @headers
83
89
  raw ? response : @scopeable.parse(response)
84
90
  end
85
91
 
@@ -1,3 +1,3 @@
1
1
  module ApiClient
2
- VERSION = "0.5.12"
2
+ VERSION = "0.5.13"
3
3
  end
@@ -45,6 +45,33 @@ describe ApiClient::Scope do
45
45
 
46
46
  end
47
47
 
48
+ describe "#raw_body" do
49
+
50
+ it "reads/writes non-hash body" do
51
+ instance = ApiClient::Scope.new(ApiClient::Base)
52
+ instance.raw_body('raw body string').should == instance
53
+ instance.raw_body.should == 'raw body string'
54
+ end
55
+
56
+ it "overwrites previous raw_body" do
57
+ instance = ApiClient::Scope.new(ApiClient::Base)
58
+ instance.raw_body('previous').raw_body('current')
59
+ instance.raw_body.should == 'current'
60
+ end
61
+
62
+ it "does request with raw body only if set, skips other params" do
63
+ connection = double
64
+ instance = ApiClient::Scope.new(ApiClient::Base)
65
+ instance.stub(:connection).and_return(connection)
66
+ response = Faraday::Response.new(:body => '{"a": "1"}')
67
+ connection.should_receive(:get).with(@path, 'raw body string', {}).and_return(response)
68
+
69
+ result = instance.params({:skipped => 'params'}).raw_body('raw body string').request(:get, @path)
70
+ result.should == {"a"=> "1"}
71
+ end
72
+
73
+ end
74
+
48
75
  describe "connection" do
49
76
 
50
77
  it "retuns the connection based on the adapter" do
metadata CHANGED
@@ -1,95 +1,80 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: api_client
3
- version: !ruby/object:Gem::Version
4
- version: 0.5.12
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.13
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - Marcin Bunsch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-22 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
11
+
12
+ date: 2016-03-14 00:00:00 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
14
15
  name: yajl-ruby
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
16
  prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: faraday
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 0.8.1
17
+ requirement: &id001 !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - &id006
20
+ - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "0"
34
23
  type: :runtime
24
+ version_requirements: *id001
25
+ - !ruby/object:Gem::Dependency
26
+ name: faraday
35
27
  prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
28
+ requirement: &id002 !ruby/object:Gem::Requirement
29
+ requirements:
38
30
  - - ">="
39
- - !ruby/object:Gem::Version
31
+ - !ruby/object:Gem::Version
40
32
  version: 0.8.1
41
- - !ruby/object:Gem::Dependency
42
- name: hashie
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: 2.0.5
48
33
  type: :runtime
34
+ version_requirements: *id002
35
+ - !ruby/object:Gem::Dependency
36
+ name: hashie
49
37
  prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
38
+ requirement: &id003 !ruby/object:Gem::Requirement
39
+ requirements:
52
40
  - - ">="
53
- - !ruby/object:Gem::Version
41
+ - !ruby/object:Gem::Version
54
42
  version: 2.0.5
55
- - !ruby/object:Gem::Dependency
56
- name: multi_json
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: 1.6.1
62
43
  type: :runtime
44
+ version_requirements: *id003
45
+ - !ruby/object:Gem::Dependency
46
+ name: multi_json
63
47
  prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
48
+ requirement: &id004 !ruby/object:Gem::Requirement
49
+ requirements:
66
50
  - - ">="
67
- - !ruby/object:Gem::Version
51
+ - !ruby/object:Gem::Version
68
52
  version: 1.6.1
69
- - !ruby/object:Gem::Dependency
53
+ type: :runtime
54
+ version_requirements: *id004
55
+ - !ruby/object:Gem::Dependency
70
56
  name: rspec
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - '='
74
- - !ruby/object:Gem::Version
75
- version: 2.14.1
76
- type: :development
77
57
  prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - '='
81
- - !ruby/object:Gem::Version
58
+ requirement: &id005 !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "="
61
+ - !ruby/object:Gem::Version
82
62
  version: 2.14.1
63
+ type: :development
64
+ version_requirements: *id005
83
65
  description: API client builder
84
- email:
66
+ email:
85
67
  - marcin@futuresimple.com
86
68
  executables: []
69
+
87
70
  extensions: []
71
+
88
72
  extra_rdoc_files: []
89
- files:
90
- - ".gitignore"
91
- - ".rspec"
92
- - ".travis.yml"
73
+
74
+ files:
75
+ - .gitignore
76
+ - .rspec
77
+ - .travis.yml
93
78
  - CHANGELOG.md
94
79
  - Gemfile
95
80
  - LICENSE
@@ -148,28 +133,28 @@ files:
148
133
  - spec/support/matchers.rb
149
134
  homepage: https://github.com/futuresimple/api_client
150
135
  licenses: []
136
+
151
137
  metadata: {}
138
+
152
139
  post_install_message:
153
140
  rdoc_options: []
154
- require_paths:
141
+
142
+ require_paths:
155
143
  - lib
156
- required_ruby_version: !ruby/object:Gem::Requirement
157
- requirements:
158
- - - ">="
159
- - !ruby/object:Gem::Version
160
- version: '0'
161
- required_rubygems_version: !ruby/object:Gem::Requirement
162
- requirements:
163
- - - ">="
164
- - !ruby/object:Gem::Version
165
- version: '0'
144
+ required_ruby_version: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - *id006
147
+ required_rubygems_version: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - *id006
166
150
  requirements: []
151
+
167
152
  rubyforge_project: api_client
168
- rubygems_version: 2.2.2
153
+ rubygems_version: 2.4.5
169
154
  signing_key:
170
155
  specification_version: 3
171
156
  summary: API client builder
172
- test_files:
157
+ test_files:
173
158
  - spec/api_client/base/connection_hook_spec.rb
174
159
  - spec/api_client/base/delegation_spec.rb
175
160
  - spec/api_client/base/inheritance_spec.rb