api_client 0.5.12 → 0.5.13

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