olive_branch 1.1.0 → 1.2.0

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
1
  ---
2
2
  SHA1:
3
- metadata.gz: 80f2ef38ee34ab8852a3f11c1b18310e31aeb864
4
- data.tar.gz: 628446c9dcbd3ab769d475197a3b56cef44f6435
3
+ metadata.gz: 1003430e098e5da7f06c8b10bf05e5fbaad73609
4
+ data.tar.gz: fd1d42c19334bf3afcce7da25e36affc58ce1836
5
5
  SHA512:
6
- metadata.gz: 99a516a13d253685f2932fc8aac9fe5c75ac4398aa237311866414d5cbcbd016092ba5f50b4d4efa8d7275c4e05c57ad0e384c817e40a982627d719156514a8d
7
- data.tar.gz: ba1f90bd3f29d8ade69576e3ae0b8321a97299bfd14bcf3b70f2f62504a3be7437bba3223898fbb60b12a2eeb829e7f1beac2566843cc639ee3f9ef3a56b65bc
6
+ metadata.gz: 33354c35884b50bf2a270b23e9f0ab465fb96b20114254cb01d661102b1c64cf93b1bbfcf0a17ea77425a732dd21a10d0d6e13630f401a2d9bda13257c7787f9
7
+ data.tar.gz: 86dbfc19f6350351ba615e242c9235f42eed5d78217894118028a3dcaa1195352732822687483b395cc5a5b71c13f398b8e1acd6a43e103c2c938d10290a54de
data/README.md CHANGED
@@ -18,6 +18,8 @@ This gem lets your API users pass in and receive camelCased or dash-cased keys,
18
18
 
19
19
  Include a `X-Key-Inflection` header with values of `camel`, `dash`, or `snake` in your JSON API requests.
20
20
 
21
+ For more examples, see [our blog post](https://www.viget.com/articles/introducing-olivebranch).
22
+
21
23
 
22
24
  * * *
23
25
 
@@ -8,7 +8,7 @@ module OliveBranch
8
8
  inflection = env["HTTP_X_KEY_INFLECTION"]
9
9
 
10
10
  if inflection && env["CONTENT_TYPE"] =~ /application\/json/
11
- env["action_dispatch.request.request_parameters"].deep_transform_keys!(&:underscore)
11
+ underscore_params(env)
12
12
  end
13
13
 
14
14
  @app.call(env).tap do |_status, headers, response|
@@ -31,5 +31,18 @@ module OliveBranch
31
31
  end
32
32
  end
33
33
  end
34
+
35
+ def underscore_params(env)
36
+ if Rails::VERSION::MAJOR < 5
37
+ env["action_dispatch.request.request_parameters"].deep_transform_keys!(&:underscore)
38
+ else
39
+ request_body = JSON.parse(env['rack.input'].read)
40
+ request_body.deep_transform_keys!(&:underscore)
41
+ req = StringIO.new(request_body.to_json)
42
+
43
+ env['rack.input'] = req
44
+ env['CONTENT_LENGTH'] = req.length
45
+ end
46
+ end
34
47
  end
35
48
  end
@@ -1,3 +1,3 @@
1
1
  module OliveBranch
2
- VERSION = '1.1.0'
2
+ VERSION = '1.2.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: olive_branch
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eli Fatsi
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-04-20 00:00:00.000000000 Z
12
+ date: 2016-10-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -72,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
72
  version: '0'
73
73
  requirements: []
74
74
  rubyforge_project:
75
- rubygems_version: 2.2.0
75
+ rubygems_version: 2.5.1
76
76
  signing_key:
77
77
  specification_version: 4
78
78
  summary: Handle camel/snake/dash case conversion