grac 3.2.0 → 3.3.0

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
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9fdd0470abd5596e55d738192c7abdfb57b64e88
4
- data.tar.gz: 79f10e51fb3d8b197b44a95cab96d8b91f43afc3
3
+ metadata.gz: dce6c4eb73575542179fb0ad403d3d730abc9efa
4
+ data.tar.gz: 5572592f8aa53d04fc2c56569497f04792756550
5
5
  SHA512:
6
- metadata.gz: c01b818108bf6fc8b107a2dc25998caa5542cd9a710b871fd93ae33009e0441e559a43cbaefa314c9f74928b6cbdba606a31004ac0a73c0ba32b93cf413d85e4
7
- data.tar.gz: 29cf2986998e375cc4a00f971beae2d40f5c43d50ba361c4a0fe481fefc2c846590ce0d478b66dd381ac156f0bf9a88cefcc56f9ec20bc5edb865e473e327ed5
6
+ metadata.gz: c84337bb9c57a1c9d77dcdff6d626692f4cdc2dae2a9091d014a13956f3b71e22e9012b7a999dc4bca4c086505a46a51056a066c8114fd14a35a2135556f9faa
7
+ data.tar.gz: 3d9e91062b5eb57aa9cac9ab26cebe4de3b04261443892ded6013e019683c006b9e92f43194f3b6d0d1f8ae6da773e842c4225e2377ce63fb9bf3a964eb18d27
@@ -120,11 +120,31 @@ module Grac
120
120
  private
121
121
 
122
122
  def build_and_run(method, options = {})
123
- body = options[:body].nil? || options[:body].empty? ? nil : options[:body].to_json
123
+ body = prepare_body_by_content_type(options[:body])
124
124
  params = @options[:params].merge(options[:params] || {})
125
125
  return middleware_chain.call(@options, uri, method, params, body)
126
126
  end
127
127
 
128
+ def headers
129
+ @options[:headers] || {}
130
+ end
131
+
132
+ def prepare_body_by_content_type(body)
133
+ return nil if body.nil? || body.empty?
134
+
135
+ case headers['Content-Type']
136
+ when /\Aapplication\/json/
137
+ return body.to_json
138
+ when /\Aapplication\/x-www-form-urlencoded/
139
+ # Typhoeus will take care of the encoding when receiving a hash
140
+ return body
141
+ else
142
+ # Do not encode other unknown Content-Types either.
143
+ # The default is JSON through the Content-Type header which is set by default.
144
+ return body
145
+ end
146
+ end
147
+
128
148
  def middleware_chain
129
149
  callee = self
130
150
 
@@ -1,3 +1,3 @@
1
1
  module Grac
2
- VERSION = "3.2.0"
2
+ VERSION = "3.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grac
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Schoknecht
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-28 00:00:00.000000000 Z
11
+ date: 2019-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -66,20 +66,34 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '2.7'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rack
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 1.6.11
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 1.6.11
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rack-test
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: '0.7'
89
+ version: 0.6.3
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: '0.7'
96
+ version: 0.6.3
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: oj
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -140,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
140
154
  version: '0'
141
155
  requirements: []
142
156
  rubyforge_project:
143
- rubygems_version: 2.4.8
157
+ rubygems_version: 2.2.2
144
158
  signing_key:
145
159
  specification_version: 4
146
160
  summary: Very generic client for REST API with basic error handling