bidu-core_ext 1.2.3 → 1.2.4
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 +4 -4
- data/Gemfile.lock +23 -22
- data/README.md +11 -0
- data/core_ext.gemspec +6 -5
- data/lib/bidu/core_ext/version.rb +1 -1
- data/lib/hash.rb +19 -1
- data/spec/lib/hash/deep_hash_constructor_spec.rb +2 -2
- data/spec/lib/hash_spec.rb +4 -3
- data/spec/support/shared_examples/chain_hash_keys_changer.rb +88 -0
- data/spec/support/shared_examples/expected.rb +6 -0
- data/spec/support/shared_examples/hash_keys_changer.rb +0 -7
- data/spec/support/shared_examples/value_changer.rb +1 -1
- metadata +41 -23
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 46ca9596bf1bd9395697f6d139e95529443dfeed
         | 
| 4 | 
            +
              data.tar.gz: 1f867d81d89c0da0a422bad9ec9ff241cb16c057
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 9cc16aa3de7626debf7b94218590db05eb5deefacd264a5dd1bf1cdea39f41e66e47df1e13b5b434ec3a1e02e345f07d890bda70d3cb149d494a39e408c24933
         | 
| 7 | 
            +
              data.tar.gz: 5c18491c6ae48e0fbed356615fcf1026b68585597167d9d7fa9eda3a4a1419ea32daa864b0aa31389dcbf3fe0e9647318a31c7e46837b25595365613fcc7a50e
         | 
    
        data/Gemfile.lock
    CHANGED
    
    | @@ -1,32 +1,32 @@ | |
| 1 1 | 
             
            PATH
         | 
| 2 2 | 
             
              remote: .
         | 
| 3 3 | 
             
              specs:
         | 
| 4 | 
            -
                bidu-core_ext (1.2. | 
| 5 | 
            -
                  activesupport
         | 
| 4 | 
            +
                bidu-core_ext (1.2.4)
         | 
| 5 | 
            +
                  activesupport (~> 5.1.1)
         | 
| 6 6 |  | 
| 7 7 | 
             
            GEM
         | 
| 8 8 | 
             
              remote: https://rubygems.org/
         | 
| 9 9 | 
             
              specs:
         | 
| 10 | 
            -
                activesupport (5. | 
| 10 | 
            +
                activesupport (5.1.1)
         | 
| 11 11 | 
             
                  concurrent-ruby (~> 1.0, >= 1.0.2)
         | 
| 12 12 | 
             
                  i18n (~> 0.7)
         | 
| 13 13 | 
             
                  minitest (~> 5.1)
         | 
| 14 14 | 
             
                  tzinfo (~> 1.1)
         | 
| 15 | 
            -
                coderay (1.1. | 
| 16 | 
            -
                concurrent-ruby (1.0. | 
| 15 | 
            +
                coderay (1.1.1)
         | 
| 16 | 
            +
                concurrent-ruby (1.0.5)
         | 
| 17 17 | 
             
                diff-lcs (1.2.5)
         | 
| 18 18 | 
             
                docile (1.1.5)
         | 
| 19 | 
            -
                i18n (0. | 
| 19 | 
            +
                i18n (0.8.4)
         | 
| 20 | 
            +
                json (2.1.0)
         | 
| 20 21 | 
             
                method_source (0.8.2)
         | 
| 21 | 
            -
                minitest (5. | 
| 22 | 
            -
                 | 
| 23 | 
            -
                pry (0.10.3)
         | 
| 22 | 
            +
                minitest (5.10.2)
         | 
| 23 | 
            +
                pry (0.10.4)
         | 
| 24 24 | 
             
                  coderay (~> 1.1.0)
         | 
| 25 25 | 
             
                  method_source (~> 0.8.1)
         | 
| 26 26 | 
             
                  slop (~> 3.4)
         | 
| 27 27 | 
             
                pry-nav (0.2.4)
         | 
| 28 28 | 
             
                  pry (>= 0.9.10, < 0.11.0)
         | 
| 29 | 
            -
                rake ( | 
| 29 | 
            +
                rake (11.3.0)
         | 
| 30 30 | 
             
                rspec (2.99.0)
         | 
| 31 31 | 
             
                  rspec-core (~> 2.99.0)
         | 
| 32 32 | 
             
                  rspec-expectations (~> 2.99.0)
         | 
| @@ -34,15 +34,15 @@ GEM | |
| 34 34 | 
             
                rspec-core (2.99.2)
         | 
| 35 35 | 
             
                rspec-expectations (2.99.2)
         | 
| 36 36 | 
             
                  diff-lcs (>= 1.1.3, < 2.0)
         | 
| 37 | 
            -
                rspec-mocks (2.99. | 
| 38 | 
            -
                simplecov (0. | 
| 37 | 
            +
                rspec-mocks (2.99.4)
         | 
| 38 | 
            +
                simplecov (0.14.1)
         | 
| 39 39 | 
             
                  docile (~> 1.1.0)
         | 
| 40 | 
            -
                   | 
| 41 | 
            -
                  simplecov-html (~> 0. | 
| 42 | 
            -
                simplecov-html (0. | 
| 40 | 
            +
                  json (>= 1.8, < 3)
         | 
| 41 | 
            +
                  simplecov-html (~> 0.10.0)
         | 
| 42 | 
            +
                simplecov-html (0.10.1)
         | 
| 43 43 | 
             
                slop (3.6.0)
         | 
| 44 | 
            -
                thread_safe (0.3. | 
| 45 | 
            -
                tzinfo (1.2. | 
| 44 | 
            +
                thread_safe (0.3.6)
         | 
| 45 | 
            +
                tzinfo (1.2.3)
         | 
| 46 46 | 
             
                  thread_safe (~> 0.1)
         | 
| 47 47 |  | 
| 48 48 | 
             
            PLATFORMS
         | 
| @@ -51,11 +51,12 @@ PLATFORMS | |
| 51 51 | 
             
            DEPENDENCIES
         | 
| 52 52 | 
             
              bidu-core_ext!
         | 
| 53 53 | 
             
              bundler (~> 1.6)
         | 
| 54 | 
            -
              pry | 
| 55 | 
            -
               | 
| 54 | 
            +
              pry (~> 0.10.4)
         | 
| 55 | 
            +
              pry-nav (~> 0.2.4)
         | 
| 56 | 
            +
              rake (~> 11.3.0)
         | 
| 56 57 | 
             
              rspec (~> 2.14)
         | 
| 57 | 
            -
              rspec-mocks
         | 
| 58 | 
            -
              simplecov
         | 
| 58 | 
            +
              rspec-mocks (~> 2.99.4)
         | 
| 59 | 
            +
              simplecov (~> 0.14.1)
         | 
| 59 60 |  | 
| 60 61 | 
             
            BUNDLED WITH
         | 
| 61 | 
            -
               1. | 
| 62 | 
            +
               1.15.1
         | 
    
        data/README.md
    CHANGED
    
    | @@ -106,6 +106,17 @@ returns | |
| 106 106 | 
             
              { 'CA_B' => 1 }
         | 
| 107 107 | 
             
            ```
         | 
| 108 108 |  | 
| 109 | 
            +
            ###chain_change_keys
         | 
| 110 | 
            +
            Change the hash keys usin a chained method call
         | 
| 111 | 
            +
             | 
| 112 | 
            +
            ```ruby
         | 
| 113 | 
            +
              { ca_b: 1 }.chain_change_keys(:to_s, :upcase, :to_sym)
         | 
| 114 | 
            +
            ```
         | 
| 115 | 
            +
            returns
         | 
| 116 | 
            +
            ```ruby
         | 
| 117 | 
            +
              { CA_B: 1 }
         | 
| 118 | 
            +
            ```
         | 
| 119 | 
            +
             | 
| 109 120 | 
             
            ### change_values
         | 
| 110 121 | 
             
            Change the values of the array
         | 
| 111 122 | 
             
            ```ruby
         | 
    
        data/core_ext.gemspec
    CHANGED
    
    | @@ -15,12 +15,13 @@ Gem::Specification.new do |spec| | |
| 15 15 | 
             
              spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
         | 
| 16 16 | 
             
              spec.require_paths = ['lib']
         | 
| 17 17 |  | 
| 18 | 
            -
              spec.add_runtime_dependency 'activesupport'
         | 
| 18 | 
            +
              spec.add_runtime_dependency 'activesupport', '~> 5.1.1'
         | 
| 19 19 |  | 
| 20 20 | 
             
              spec.add_development_dependency 'bundler', '~> 1.6'
         | 
| 21 | 
            -
              spec.add_development_dependency 'rake'
         | 
| 21 | 
            +
              spec.add_development_dependency 'rake', '~> 11.3.0'
         | 
| 22 22 | 
             
              spec.add_development_dependency 'rspec', '~> 2.14'
         | 
| 23 | 
            -
              spec.add_development_dependency 'rspec-mocks'
         | 
| 24 | 
            -
              spec.add_development_dependency 'pry | 
| 25 | 
            -
              spec.add_development_dependency ' | 
| 23 | 
            +
              spec.add_development_dependency 'rspec-mocks', '~> 2.99.4'
         | 
| 24 | 
            +
              spec.add_development_dependency 'pry', '~> 0.10.4'
         | 
| 25 | 
            +
              spec.add_development_dependency 'pry-nav', '~> 0.2.4'
         | 
| 26 | 
            +
              spec.add_development_dependency 'simplecov', '~> 0.14.1'
         | 
| 26 27 | 
             
            end
         | 
    
        data/lib/hash.rb
    CHANGED
    
    | @@ -90,7 +90,7 @@ class Hash | |
| 90 90 |  | 
| 91 91 | 
             
              # change all keys returning the new map
         | 
| 92 92 | 
             
              # options: { recursive: true }
         | 
| 93 | 
            -
              # ex: { "a" | 
| 93 | 
            +
              # ex: { "a" =>1 }.change_keys{ |key| key.upcase } == { "A" => 1 }
         | 
| 94 94 | 
             
              def change_keys(options = {}, &block)
         | 
| 95 95 | 
             
                deep_dup.change_keys!(options, &block)
         | 
| 96 96 | 
             
              end
         | 
| @@ -102,6 +102,24 @@ class Hash | |
| 102 102 | 
             
                Hash::KeyChanger.new(self).change_keys(options, &block)
         | 
| 103 103 | 
             
              end
         | 
| 104 104 |  | 
| 105 | 
            +
              # change all publicaly sending method calls
         | 
| 106 | 
            +
              # options: { recursive: true }
         | 
| 107 | 
            +
              # ex: { a: 1 }.chain_change_keys(:to_s, :upcase) == { "A" =>1 }
         | 
| 108 | 
            +
              def chain_change_keys(*calls)
         | 
| 109 | 
            +
                deep_dup.chain_change_keys!(*calls)
         | 
| 110 | 
            +
              end
         | 
| 111 | 
            +
             | 
| 112 | 
            +
              # change all publicaly sending method calls
         | 
| 113 | 
            +
              # options: { recursive: true }
         | 
| 114 | 
            +
              # ex: { a: 1 }.chain_change_keys(:to_s, :upcase) == { "A" =>1 }
         | 
| 115 | 
            +
              def chain_change_keys!(*calls)
         | 
| 116 | 
            +
                options = calls.extract_options!
         | 
| 117 | 
            +
             | 
| 118 | 
            +
                calls.inject(self) do |h, m|
         | 
| 119 | 
            +
                  h.change_keys!(options, &m)
         | 
| 120 | 
            +
                end
         | 
| 121 | 
            +
              end
         | 
| 122 | 
            +
             | 
| 105 123 | 
             
              # prepend a string to all keys
         | 
| 106 124 | 
             
              # options {
         | 
| 107 125 | 
             
              #  recursive: true,
         | 
| @@ -96,7 +96,7 @@ describe Hash::DeepHashConstructor do | |
| 96 96 | 
             
                      'quote_request.personal.person[1].name' => 'Some name 2',
         | 
| 97 97 | 
             
                      'quote_request.personal.person[1].age' => 23,
         | 
| 98 98 | 
             
                      'request[0].status.clazz' => String,
         | 
| 99 | 
            -
                      'request[1].status.clazz' =>  | 
| 99 | 
            +
                      'request[1].status.clazz' => Integer,
         | 
| 100 100 | 
             
                      'request[2].status.clazz' => Date,
         | 
| 101 101 | 
             
                      'trials' => 3
         | 
| 102 102 | 
             
                    }
         | 
| @@ -114,7 +114,7 @@ describe Hash::DeepHashConstructor do | |
| 114 114 | 
             
                      },
         | 
| 115 115 | 
             
                      'request' => [
         | 
| 116 116 | 
             
                        { 'status' => { 'clazz' => String } },
         | 
| 117 | 
            -
                        { 'status' => { 'clazz' =>  | 
| 117 | 
            +
                        { 'status' => { 'clazz' => Integer } },
         | 
| 118 118 | 
             
                        { 'status' => { 'clazz' => Date } }
         | 
| 119 119 | 
             
                      ],
         | 
| 120 120 | 
             
                      'trials' => 3
         | 
    
        data/spec/lib/hash_spec.rb
    CHANGED
    
    | @@ -2,10 +2,11 @@ require 'spec_helper' | |
| 2 2 |  | 
| 3 3 | 
             
            describe Hash do
         | 
| 4 4 | 
             
              it_behaves_like 'a class with change_key method'
         | 
| 5 | 
            +
              it_behaves_like 'a class with chain_change_key method'
         | 
| 5 6 | 
             
              it_behaves_like 'a class with camlize_keys method'
         | 
| 6 7 | 
             
              it_behaves_like 'a class with underscore_keys method'
         | 
| 7 8 | 
             
              it_behaves_like 'a class with append_keys method'
         | 
| 8 | 
            -
              it_behaves_like 'a class with  | 
| 9 | 
            +
              it_behaves_like 'a class with change_values method'
         | 
| 9 10 | 
             
              it_behaves_like 'a class with remap method'
         | 
| 10 11 | 
             
              it_behaves_like 'an object with chain_fetch method'
         | 
| 11 12 |  | 
| @@ -173,7 +174,7 @@ describe Hash do | |
| 173 174 | 
             
                      'quote_request.personal.person[1].name' => 'Some name 2',
         | 
| 174 175 | 
             
                      'quote_request.personal.person[1].age' => 23,
         | 
| 175 176 | 
             
                      'request[0].status.clazz' => String,
         | 
| 176 | 
            -
                      'request[1].status.clazz' =>  | 
| 177 | 
            +
                      'request[1].status.clazz' => Integer,
         | 
| 177 178 | 
             
                      'request[2].status.clazz' => Date,
         | 
| 178 179 | 
             
                      'trials' => 3
         | 
| 179 180 | 
             
                    }
         | 
| @@ -191,7 +192,7 @@ describe Hash do | |
| 191 192 | 
             
                      },
         | 
| 192 193 | 
             
                      'request' => [
         | 
| 193 194 | 
             
                        { 'status' => { 'clazz' => String } },
         | 
| 194 | 
            -
                        { 'status' => { 'clazz' =>  | 
| 195 | 
            +
                        { 'status' => { 'clazz' => Integer } },
         | 
| 195 196 | 
             
                        { 'status' => { 'clazz' => Date } }
         | 
| 196 197 | 
             
                      ],
         | 
| 197 198 | 
             
                      'trials' => 3
         | 
| @@ -0,0 +1,88 @@ | |
| 1 | 
            +
            shared_examples 'a class with chain_change_key method' do
         | 
| 2 | 
            +
              let(:hash) do
         | 
| 3 | 
            +
                { 'a' => 1, b: 2, c: { d: 3, e: 4 }, f: [{ g: 5 }, { h: 6 }] }
         | 
| 4 | 
            +
              end
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              describe :chain_change_keys do
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                it_behaves_like 'a method that is able to chain change keys', :chain_change_keys
         | 
| 9 | 
            +
                it 'does not affects the original hash' do
         | 
| 10 | 
            +
                  expect do
         | 
| 11 | 
            +
                    hash.chain_change_keys(:to_s, :upcase)
         | 
| 12 | 
            +
                  end.not_to change { hash }
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              describe :ichain_change_keys! do
         | 
| 17 | 
            +
                it_behaves_like 'a method that is able to chain change keys', :chain_change_keys!
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                it 'affects the original hash' do
         | 
| 20 | 
            +
                  expect do
         | 
| 21 | 
            +
                    hash.chain_change_keys!(:to_s, :upcase)
         | 
| 22 | 
            +
                  end.to change { hash }
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
              end
         | 
| 25 | 
            +
            end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            shared_examples 'a method that is able to chain change keys' do |method|
         | 
| 28 | 
            +
              let(:result) { hash.public_send(method, *transformations, options) }
         | 
| 29 | 
            +
              let(:options) { {} }
         | 
| 30 | 
            +
              let(:transformations) { [ :to_s ] }
         | 
| 31 | 
            +
             | 
| 32 | 
            +
              context 'with simple level hash' do
         | 
| 33 | 
            +
                let(:hash) { { 'a' => 1, b: 2 } }
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                context 'with symbol transformation' do
         | 
| 36 | 
            +
                  let(:transformations) { [ :to_sym ] }
         | 
| 37 | 
            +
                  let(:expected) { { a: 1, b: 2 } }
         | 
| 38 | 
            +
                  it_behaves_like 'result is as expected'
         | 
| 39 | 
            +
                end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                context 'with string transformation' do
         | 
| 42 | 
            +
                  let(:expected) { { 'a' => 1, 'b' => 2 } }
         | 
| 43 | 
            +
                  it_behaves_like 'result is as expected'
         | 
| 44 | 
            +
                end
         | 
| 45 | 
            +
              end
         | 
| 46 | 
            +
             | 
| 47 | 
            +
              context 'with recursive hash' do
         | 
| 48 | 
            +
                let(:hash) { { 'a' => 1, b:  { c: 3, 'd' => 4 } } }
         | 
| 49 | 
            +
                let(:expected) do
         | 
| 50 | 
            +
                  { 'a' => 1, 'b' =>  { 'c' => 3, 'd' => 4 } }
         | 
| 51 | 
            +
                end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                context 'when no options are given' do
         | 
| 54 | 
            +
                  it_behaves_like 'result is as expected'
         | 
| 55 | 
            +
                end
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                context 'when options are given' do
         | 
| 58 | 
            +
                  let(:options) { { recursive: recursive } }
         | 
| 59 | 
            +
             | 
| 60 | 
            +
                  context 'with recursion' do
         | 
| 61 | 
            +
                    let(:recursive) { true }
         | 
| 62 | 
            +
                    it_behaves_like 'result is as expected'
         | 
| 63 | 
            +
                  end
         | 
| 64 | 
            +
             | 
| 65 | 
            +
                  context 'without recursion' do
         | 
| 66 | 
            +
                    let(:recursive) { false }
         | 
| 67 | 
            +
                    let(:expected) { { 'a' => 1, 'b' =>  { c: 3, 'd' => 4 } } }
         | 
| 68 | 
            +
                    it_behaves_like 'result is as expected'
         | 
| 69 | 
            +
                  end
         | 
| 70 | 
            +
                end
         | 
| 71 | 
            +
              end
         | 
| 72 | 
            +
             | 
| 73 | 
            +
              context 'with many many levels' do
         | 
| 74 | 
            +
                let(:hash) { { a: 1, b: { c: 2, d: { e: 3, f: 4 } } } }
         | 
| 75 | 
            +
                let(:expected) do
         | 
| 76 | 
            +
                  { 'a' => 1, 'b' => { 'c' => 2, 'd' => { 'e' => 3, 'f' => 4 } } }
         | 
| 77 | 
            +
                end
         | 
| 78 | 
            +
                it_behaves_like 'result is as expected'
         | 
| 79 | 
            +
              end
         | 
| 80 | 
            +
             | 
| 81 | 
            +
              context 'calling with chained transformations' do
         | 
| 82 | 
            +
                let(:transformations) { [ :to_s, :upcase, :to_sym ] }
         | 
| 83 | 
            +
             | 
| 84 | 
            +
                let(:hexpected) do
         | 
| 85 | 
            +
                  { A: 1, B: 2, C: { D: 3, E: 4 }, F: [{ G: 5 }, { H: 6 }] }
         | 
| 86 | 
            +
                end
         | 
| 87 | 
            +
              end
         | 
| 88 | 
            +
            end
         | 
| @@ -4,7 +4,6 @@ shared_examples 'a class with change_key method' do | |
| 4 4 | 
             
              end
         | 
| 5 5 |  | 
| 6 6 | 
             
              describe :change_keys do
         | 
| 7 | 
            -
             | 
| 8 7 | 
             
                it_behaves_like 'a method that is able to change keys', :change_keys
         | 
| 9 8 | 
             
                it 'does not affects the original hash' do
         | 
| 10 9 | 
             
                  expect do
         | 
| @@ -24,12 +23,6 @@ shared_examples 'a class with change_key method' do | |
| 24 23 | 
             
              end
         | 
| 25 24 | 
             
            end
         | 
| 26 25 |  | 
| 27 | 
            -
            shared_examples 'result is as expected' do
         | 
| 28 | 
            -
              it 'is as expected' do
         | 
| 29 | 
            -
                expect(result).to eq(expected)
         | 
| 30 | 
            -
              end
         | 
| 31 | 
            -
            end
         | 
| 32 | 
            -
             | 
| 33 26 | 
             
            shared_examples 'a method that is able to change keys' do |method|
         | 
| 34 27 | 
             
              let(:foo_sym_transformation) do
         | 
| 35 28 | 
             
                hash.public_send(method) { |k| "foo_#{k}".to_sym }
         | 
    
        metadata
    CHANGED
    
    | @@ -1,29 +1,29 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: bidu-core_ext
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.2. | 
| 4 | 
            +
              version: 1.2.4
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Bidu Developers
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2017-06-04 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activesupport
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 | 
            -
                - - " | 
| 17 | 
            +
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version:  | 
| 19 | 
            +
                    version: 5.1.1
         | 
| 20 20 | 
             
              type: :runtime
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 | 
            -
                - - " | 
| 24 | 
            +
                - - "~>"
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version:  | 
| 26 | 
            +
                    version: 5.1.1
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: bundler
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -42,16 +42,16 @@ dependencies: | |
| 42 42 | 
             
              name: rake
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 44 | 
             
                requirements:
         | 
| 45 | 
            -
                - - " | 
| 45 | 
            +
                - - "~>"
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version:  | 
| 47 | 
            +
                    version: 11.3.0
         | 
| 48 48 | 
             
              type: :development
         | 
| 49 49 | 
             
              prerelease: false
         | 
| 50 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 | 
            -
                - - " | 
| 52 | 
            +
                - - "~>"
         | 
| 53 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version:  | 
| 54 | 
            +
                    version: 11.3.0
         | 
| 55 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 56 | 
             
              name: rspec
         | 
| 57 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -70,44 +70,58 @@ dependencies: | |
| 70 70 | 
             
              name: rspec-mocks
         | 
| 71 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 72 | 
             
                requirements:
         | 
| 73 | 
            -
                - - " | 
| 73 | 
            +
                - - "~>"
         | 
| 74 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            -
                    version:  | 
| 75 | 
            +
                    version: 2.99.4
         | 
| 76 76 | 
             
              type: :development
         | 
| 77 77 | 
             
              prerelease: false
         | 
| 78 78 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 79 | 
             
                requirements:
         | 
| 80 | 
            -
                - - " | 
| 80 | 
            +
                - - "~>"
         | 
| 81 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            -
                    version:  | 
| 82 | 
            +
                    version: 2.99.4
         | 
| 83 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 84 | 
            +
              name: pry
         | 
| 85 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 86 | 
            +
                requirements:
         | 
| 87 | 
            +
                - - "~>"
         | 
| 88 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 89 | 
            +
                    version: 0.10.4
         | 
| 90 | 
            +
              type: :development
         | 
| 91 | 
            +
              prerelease: false
         | 
| 92 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 93 | 
            +
                requirements:
         | 
| 94 | 
            +
                - - "~>"
         | 
| 95 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 96 | 
            +
                    version: 0.10.4
         | 
| 83 97 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 84 98 | 
             
              name: pry-nav
         | 
| 85 99 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 86 100 | 
             
                requirements:
         | 
| 87 | 
            -
                - - " | 
| 101 | 
            +
                - - "~>"
         | 
| 88 102 | 
             
                  - !ruby/object:Gem::Version
         | 
| 89 | 
            -
                    version:  | 
| 103 | 
            +
                    version: 0.2.4
         | 
| 90 104 | 
             
              type: :development
         | 
| 91 105 | 
             
              prerelease: false
         | 
| 92 106 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 93 107 | 
             
                requirements:
         | 
| 94 | 
            -
                - - " | 
| 108 | 
            +
                - - "~>"
         | 
| 95 109 | 
             
                  - !ruby/object:Gem::Version
         | 
| 96 | 
            -
                    version:  | 
| 110 | 
            +
                    version: 0.2.4
         | 
| 97 111 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 98 112 | 
             
              name: simplecov
         | 
| 99 113 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 100 114 | 
             
                requirements:
         | 
| 101 | 
            -
                - - " | 
| 115 | 
            +
                - - "~>"
         | 
| 102 116 | 
             
                  - !ruby/object:Gem::Version
         | 
| 103 | 
            -
                    version:  | 
| 117 | 
            +
                    version: 0.14.1
         | 
| 104 118 | 
             
              type: :development
         | 
| 105 119 | 
             
              prerelease: false
         | 
| 106 120 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 107 121 | 
             
                requirements:
         | 
| 108 | 
            -
                - - " | 
| 122 | 
            +
                - - "~>"
         | 
| 109 123 | 
             
                  - !ruby/object:Gem::Version
         | 
| 110 | 
            -
                    version:  | 
| 124 | 
            +
                    version: 0.14.1
         | 
| 111 125 | 
             
            description: 
         | 
| 112 126 | 
             
            email:
         | 
| 113 127 | 
             
            - dev@bidu.com.br
         | 
| @@ -145,7 +159,9 @@ files: | |
| 145 159 | 
             
            - spec/spec_helper.rb
         | 
| 146 160 | 
             
            - spec/support/shared_examples/array_random.rb
         | 
| 147 161 | 
             
            - spec/support/shared_examples/chain_fetch.rb
         | 
| 162 | 
            +
            - spec/support/shared_examples/chain_hash_keys_changer.rb
         | 
| 148 163 | 
             
            - spec/support/shared_examples/clean.rb
         | 
| 164 | 
            +
            - spec/support/shared_examples/expected.rb
         | 
| 149 165 | 
             
            - spec/support/shared_examples/hash_keys_changer.rb
         | 
| 150 166 | 
             
            - spec/support/shared_examples/keys_appender.rb
         | 
| 151 167 | 
             
            - spec/support/shared_examples/keys_camelizer.rb
         | 
| @@ -171,7 +187,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 171 187 | 
             
                  version: '0'
         | 
| 172 188 | 
             
            requirements: []
         | 
| 173 189 | 
             
            rubyforge_project: 
         | 
| 174 | 
            -
            rubygems_version: 2. | 
| 190 | 
            +
            rubygems_version: 2.6.8
         | 
| 175 191 | 
             
            signing_key: 
         | 
| 176 192 | 
             
            specification_version: 4
         | 
| 177 193 | 
             
            summary: Core Extensions
         | 
| @@ -186,7 +202,9 @@ test_files: | |
| 186 202 | 
             
            - spec/spec_helper.rb
         | 
| 187 203 | 
             
            - spec/support/shared_examples/array_random.rb
         | 
| 188 204 | 
             
            - spec/support/shared_examples/chain_fetch.rb
         | 
| 205 | 
            +
            - spec/support/shared_examples/chain_hash_keys_changer.rb
         | 
| 189 206 | 
             
            - spec/support/shared_examples/clean.rb
         | 
| 207 | 
            +
            - spec/support/shared_examples/expected.rb
         | 
| 190 208 | 
             
            - spec/support/shared_examples/hash_keys_changer.rb
         | 
| 191 209 | 
             
            - spec/support/shared_examples/keys_appender.rb
         | 
| 192 210 | 
             
            - spec/support/shared_examples/keys_camelizer.rb
         |