camel_snake_keys 0.0.4 → 0.0.5

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: 60878589862b05c4c1b707c7840614c473b9ea52
4
- data.tar.gz: fbf67796982570c635fad519603702847e0163ae
3
+ metadata.gz: b21140710746cd5e5d82b5f063b4654126df61f9
4
+ data.tar.gz: e1714386e270c31d3dd6054fb3f923d74138eeca
5
5
  SHA512:
6
- metadata.gz: 3aca7eee031b8ad0592bbeb8e3dae912d797bef57a20605c31d5ee40b5231429194329f65ae91688d68ee0b62b692e72eddfad958a759abb8ff1a66bdd90c08d
7
- data.tar.gz: d43e5649843a5a9a14b98185d9ebc8b6a0ff5b255236f3f5cc87728aace3e220df48214a03f9914739c670c4e6063d4f3272bdddd08447e35700da159f148cc9
6
+ metadata.gz: 239f2025330fe5ed5a4bc0d4359905009e9dee60dfe4124ceafefa05f4fa193aa507d89558667925f9bcaf3358e9618bf211c13297b0c37ebf2e54e4ab9a4716
7
+ data.tar.gz: 31f4b8bf86703c297e0675898d9ed66a7e1a1f2fba4000f0fe4e9c785ffa90b8afc29574877cb5e1371c7484bf1a547b5a47eef47eae8919437dd9594ea21686
@@ -536,10 +536,10 @@ Style/DefWithParentheses:
536
536
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#method-parens'
537
537
  Enabled: false
538
538
 
539
- Style/DeprecatedHashMethods:
540
- Description: 'Checks for use of deprecated Hash methods.'
541
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-key'
542
- Enabled: false
539
+ #Style/DeprecatedHashMethods:
540
+ # Description: 'Checks for use of deprecated Hash methods.'
541
+ # StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-key'
542
+ # Enabled: false
543
543
 
544
544
  Style/Documentation:
545
545
  Description: 'Document classes and non-namespace modules.'
@@ -724,7 +724,7 @@ Style/LineEndConcatenation:
724
724
  line end.
725
725
  Enabled: false
726
726
 
727
- Style/MethodCallParentheses:
727
+ Style/MethodCallWithoutArgsParentheses:
728
728
  Description: 'Do not use parentheses for method calls with no arguments.'
729
729
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-args-no-parens'
730
730
  Enabled: false
@@ -810,6 +810,10 @@ Style/Not:
810
810
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bang-not-not'
811
811
  Enabled: false
812
812
 
813
+ Style/NumericPredicate:
814
+ Exclude:
815
+ - 'spec/**/*'
816
+
813
817
  Style/NumericLiterals:
814
818
  Description: >-
815
819
  Add underscores to large numeric literals to improve their
@@ -1162,3 +1166,8 @@ Style/WordArray:
1162
1166
  Description: 'Use %w or %W for arrays of words.'
1163
1167
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-w'
1164
1168
  Enabled: false
1169
+
1170
+ Style/BlockLength:
1171
+ Exclude:
1172
+ - '*.gemspec'
1173
+ - 'spec/**/*'
@@ -7,6 +7,7 @@ script:
7
7
  - bundle exec rspec
8
8
 
9
9
  rvm:
10
+ - 2.3.0
10
11
  - 2.2
11
12
  - 2.1
12
13
  - 2.0.0
@@ -23,7 +24,7 @@ env:
23
24
  matrix:
24
25
  - RAILS=3.2.22
25
26
  - RAILS=4.1.13
26
- - RAILS=4.2.5.1
27
+ - RAILS=4.2.7.1
27
28
  - RAILS=master
28
29
  global:
29
30
  - JRUBY_OPTS="-J-Xmx1024m --debug"
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source 'https://rubygems.org'
2
- gem 'rspec'
3
- gem 'rake'
4
- gem 'activesupport'
5
- gem 'hashie'
2
+ gem 'activesupport', '~> 4.2'
6
3
  gem 'coveralls', require: false
4
+ gem 'hashie'
5
+ gem 'rake'
6
+ gem 'rspec'
data/README.md CHANGED
@@ -17,24 +17,19 @@
17
17
  [CS img]: https://coveralls.io/repos/buermann/camel_snake_keys/badge.png?branch=master
18
18
 
19
19
 
20
- Add recursive with_snake_keys and with_camel_keys to Enumerable, preserve strings and symbols in hashes, and treat hash descendents like ActiveSupport::HashWithIndifferentAccess and Hashie::Mash agnostically.
20
+ Add recursive with_snake_keys and with_camel_keys refinements to Array and Hash. Preserve strings and symbols and treat hash descendents such as ActiveSupport::HashWithIndifferentAccess and Hashie::Mash agnostically.
21
21
 
22
22
  ## Documentation
23
23
 
24
- Add `gem 'camel_snake_keys'` to your Gemfile or gem install camel_snake_keys.
25
-
26
- Enumerables will be monkey patched the following methods:
27
-
28
- ```
29
- with_snake_keys(with_indifferent=false)
30
- with_camel_keys(with_indifferent=false)
31
- ```
24
+ Add `gem 'camel_snake_keys'` to your Gemfile or gem install camel_snake_keys. Where you want to add `with_snake_keys` and `with_camel_keys` to your objects invoke `using CamelSnakeKeys`, or invoke the class methods, `CamelSnakeKeys.camel_keys(object, with_indifference)` and `CamelSnakeKeys.snake_keys(object, with_indifference)`.
32
25
 
33
26
  If with_indifference is set to a true value hashes will be returned as ActiveSupport's HashWithIndifferentAccess.
34
27
 
35
28
  ```
36
29
  require 'camel_snake_keys'
37
30
 
31
+ using CamelSnakeKeys
32
+
38
33
  {fooBar: "Frob"}.with_snake_keys
39
34
  => {:foo_bar=>"Frob"}
40
35
 
@@ -21,4 +21,5 @@ Gem::Specification.new do |s|
21
21
  s.add_dependency "activesupport"
22
22
 
23
23
  s.add_development_dependency "rspec-rails", '>= 3.0'
24
+ s.add_development_dependency "activesupport", '~> 4.2'
24
25
  end
@@ -2,6 +2,18 @@ require 'active_support/core_ext/hash'
2
2
  require 'active_support/core_ext/string/inflections'
3
3
 
4
4
  module CamelSnakeKeys
5
+ [Hash,Array].each do |klass|
6
+ refine klass do
7
+ def with_camel_keys(indifference=false)
8
+ CamelSnakeKeys.camel_keys(self, indifference)
9
+ end
10
+
11
+ def with_snake_keys(indifference=false)
12
+ CamelSnakeKeys.snake_keys(self, indifference)
13
+ end
14
+ end
15
+ end
16
+
5
17
  class << self
6
18
  def if_underscore(v)
7
19
  if v.is_a? Symbol
@@ -27,7 +39,7 @@ module CamelSnakeKeys
27
39
  if data.kind_of? Array
28
40
  data.map { |v| snake_keys(v) }
29
41
  elsif data.kind_of? Hash
30
- hash = Hash[data.sort_by {|k,v| k =~ /_/ ? 0 : 1 }.map {|k, v| [if_underscore(k), snake_keys(v)] }]
42
+ hash = Hash[data.sort_by {|k,_v| k =~ /_/ ? 0 : 1 }.map {|k, v| [if_underscore(k), snake_keys(v)] }]
31
43
  hash = hash.with_indifferent_access if indifference
32
44
  data.class == Hash ? hash : data.class.new(hash)
33
45
  else
@@ -39,7 +51,7 @@ module CamelSnakeKeys
39
51
  if data.kind_of? Array
40
52
  data.map { |v| camel_keys(v) }
41
53
  elsif data.kind_of? Hash
42
- hash = Hash[data.sort_by {|k,v| k =~ /_/ ? 1 : 0 }.map {|k, v| [if_camelize(k), camel_keys(v)] }]
54
+ hash = Hash[data.sort_by {|k,_v| k =~ /_/ ? 1 : 0 }.map {|k, v| [if_camelize(k), camel_keys(v)] }]
43
55
  hash = hash.with_indifferent_access if indifference
44
56
  data.class == Hash ? hash : data.class.new(hash)
45
57
  else
@@ -49,12 +61,4 @@ module CamelSnakeKeys
49
61
  end
50
62
  end
51
63
 
52
- module Enumerable
53
- def with_camel_keys(indifference=false)
54
- CamelSnakeKeys.camel_keys(self, indifference)
55
- end
56
64
 
57
- def with_snake_keys(indifference=false)
58
- CamelSnakeKeys.snake_keys(self, indifference)
59
- end
60
- end
@@ -1,5 +1,5 @@
1
1
  module CamelSnakeKeys
2
- VERSION = "0.0.4".freeze
2
+ VERSION = "0.0.5".freeze
3
3
 
4
4
  def self.version
5
5
  VERSION
@@ -1,6 +1,8 @@
1
1
  require 'test_helper'
2
2
  require 'hashie/mash'
3
3
 
4
+ using CamelSnakeKeys
5
+
4
6
  RSpec.describe Enumerable do
5
7
 
6
8
  context "arrays" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: camel_snake_keys
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Buermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-21 00:00:00.000000000 Z
11
+ date: 2017-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: activesupport
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '4.2'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '4.2'
41
55
  description: ''
42
56
  email:
43
57
  - buermann@gmail.com
@@ -78,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
78
92
  version: '0'
79
93
  requirements: []
80
94
  rubyforge_project:
81
- rubygems_version: 2.5.1
95
+ rubygems_version: 2.6.10
82
96
  signing_key:
83
97
  specification_version: 4
84
98
  summary: Convert nested data structure hash keys between camel and snake case.