mr_freeze 0.0.1 → 0.0.2
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 +7 -0
 - data/.gitignore +10 -0
 - data/.travis.yml +9 -0
 - data/Gemfile +4 -0
 - data/LICENSE.txt +21 -0
 - data/README.markdown +37 -0
 - data/Rakefile +10 -0
 - data/lib/mr_freeze/version.rb +1 -1
 - data/mr_freeze.gemspec +26 -0
 - metadata +86 -60
 - data/test/mr_freeze_test.rb +0 -76
 - data/test/test_helper.rb +0 -5
 
    
        checksums.yaml
    ADDED
    
    | 
         @@ -0,0 +1,7 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ---
         
     | 
| 
      
 2 
     | 
    
         
            +
            SHA1:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 30c36b4e5a7e02f6197956f20da12214f4aa2c9d
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 3edcadb714f94b3c58df3fa602c26cd7ce8784a0
         
     | 
| 
      
 5 
     | 
    
         
            +
            SHA512:
         
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: f95da4352de8193ef59b41f4094d587f0eae1131b12a951b2407a921656f6b937fe1ba627a7f56219f390577b81421d088a0a2239adfda7c6a2f3b7b4e4f1a1e
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 2a663e790571feb184e16c481ce94c43e556f2439575eabd69155a9bd6cd5be4d4c00efe0029b50ac851496e67d46cbf04e3f062b6186f76915a03ff42db3931
         
     | 
    
        data/.gitignore
    ADDED
    
    
    
        data/.travis.yml
    ADDED
    
    
    
        data/Gemfile
    ADDED
    
    
    
        data/LICENSE.txt
    ADDED
    
    | 
         @@ -0,0 +1,21 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            The MIT License (MIT)
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            Copyright (c) 2011-2015 Matthew Rudy Jacobs
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            Permission is hereby granted, free of charge, to any person obtaining a copy
         
     | 
| 
      
 6 
     | 
    
         
            +
            of this software and associated documentation files (the "Software"), to deal
         
     | 
| 
      
 7 
     | 
    
         
            +
            in the Software without restriction, including without limitation the rights
         
     | 
| 
      
 8 
     | 
    
         
            +
            to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
         
     | 
| 
      
 9 
     | 
    
         
            +
            copies of the Software, and to permit persons to whom the Software is
         
     | 
| 
      
 10 
     | 
    
         
            +
            furnished to do so, subject to the following conditions:
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            The above copyright notice and this permission notice shall be included in
         
     | 
| 
      
 13 
     | 
    
         
            +
            all copies or substantial portions of the Software.
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
         
     | 
| 
      
 16 
     | 
    
         
            +
            IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
         
     | 
| 
      
 17 
     | 
    
         
            +
            FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
         
     | 
| 
      
 18 
     | 
    
         
            +
            AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
         
     | 
| 
      
 19 
     | 
    
         
            +
            LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
         
     | 
| 
      
 20 
     | 
    
         
            +
            OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
         
     | 
| 
      
 21 
     | 
    
         
            +
            THE SOFTWARE.
         
     | 
    
        data/README.markdown
    ADDED
    
    | 
         @@ -0,0 +1,37 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            mr_freeze
         
     | 
| 
      
 2 
     | 
    
         
            +
            =========
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            [](https://travis-ci.org/matthewrudy/mr_freeze)
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            Real name: Dr Victor Fries
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            Description
         
     | 
| 
      
 9 
     | 
    
         
            +
            ===========
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            Freeze arrays, hashes, and their contents
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            Example
         
     | 
| 
      
 14 
     | 
    
         
            +
            =======
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                gem install mr_freeze
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                # without mr_freeze
         
     | 
| 
      
 19 
     | 
    
         
            +
                hash = {"some" => "hash"}.freeze
         
     | 
| 
      
 20 
     | 
    
         
            +
                hash["some"].sub!(/h/, "b")
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                # => uh oh... we've changed the string in place
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                # load mr_freeze
         
     | 
| 
      
 25 
     | 
    
         
            +
                require 'rubygems'
         
     | 
| 
      
 26 
     | 
    
         
            +
                require 'mr_freeze'
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                # with mr_freeze
         
     | 
| 
      
 29 
     | 
    
         
            +
                hash = {"victor" => "fries"}.freeze!
         
     | 
| 
      
 30 
     | 
    
         
            +
                hash["victor"].sub!(/f/, "c")
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                # => TypeError: can't modify frozen string
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
            License
         
     | 
| 
      
 35 
     | 
    
         
            +
            =======
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            mr_freeze is released under the [MIT License](http://www.opensource.org/licenses/MIT).
         
     | 
    
        data/Rakefile
    ADDED
    
    
    
        data/lib/mr_freeze/version.rb
    CHANGED
    
    
    
        data/mr_freeze.gemspec
    ADDED
    
    | 
         @@ -0,0 +1,26 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # coding: utf-8
         
     | 
| 
      
 2 
     | 
    
         
            +
            lib = File.expand_path('../lib', __FILE__)
         
     | 
| 
      
 3 
     | 
    
         
            +
            $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'mr_freeze/version'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            Gem::Specification.new do |spec|
         
     | 
| 
      
 7 
     | 
    
         
            +
              spec.name          = "mr_freeze"
         
     | 
| 
      
 8 
     | 
    
         
            +
              spec.version       = MrFreeze::VERSION
         
     | 
| 
      
 9 
     | 
    
         
            +
              spec.authors       = ["Matthew Rudy Jacobs"]
         
     | 
| 
      
 10 
     | 
    
         
            +
              spec.email         = ["matthewrudyjacobs@gmail.com"]
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
              spec.summary       = %q{freeze objects nestedly}
         
     | 
| 
      
 13 
     | 
    
         
            +
              spec.description   = %q{Object#freeze! freezes the contents of arrays and hashes}
         
     | 
| 
      
 14 
     | 
    
         
            +
              spec.homepage      = "https://github.com/matthewrudy/mr_freeze"
         
     | 
| 
      
 15 
     | 
    
         
            +
              spec.license       = "MIT"
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
              spec.files         = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
         
     | 
| 
      
 18 
     | 
    
         
            +
              spec.bindir        = "exe"
         
     | 
| 
      
 19 
     | 
    
         
            +
              spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
         
     | 
| 
      
 20 
     | 
    
         
            +
              spec.require_paths = ["lib"]
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
              spec.add_development_dependency "bundler", "~> 1"
         
     | 
| 
      
 23 
     | 
    
         
            +
              spec.add_development_dependency "rake", "~> 10.0"
         
     | 
| 
      
 24 
     | 
    
         
            +
              spec.add_development_dependency "activesupport"
         
     | 
| 
      
 25 
     | 
    
         
            +
              spec.add_development_dependency "test-unit"
         
     | 
| 
      
 26 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,84 +1,110 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            --- !ruby/object:Gem::Specification 
     | 
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: mr_freeze
         
     | 
| 
       3 
     | 
    
         
            -
            version: !ruby/object:Gem::Version 
     | 
| 
       4 
     | 
    
         
            -
               
     | 
| 
       5 
     | 
    
         
            -
              prerelease: 
         
     | 
| 
       6 
     | 
    
         
            -
              segments: 
         
     | 
| 
       7 
     | 
    
         
            -
              - 0
         
     | 
| 
       8 
     | 
    
         
            -
              - 0
         
     | 
| 
       9 
     | 
    
         
            -
              - 1
         
     | 
| 
       10 
     | 
    
         
            -
              version: 0.0.1
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.2
         
     | 
| 
       11 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       12 
     | 
    
         
            -
            authors: 
     | 
| 
      
 6 
     | 
    
         
            +
            authors:
         
     | 
| 
       13 
7 
     | 
    
         
             
            - Matthew Rudy Jacobs
         
     | 
| 
       14 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       15 
     | 
    
         
            -
            bindir:  
     | 
| 
      
 9 
     | 
    
         
            +
            bindir: exe
         
     | 
| 
       16 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2015-05-21 00:00:00.000000000 Z
         
     | 
| 
      
 12 
     | 
    
         
            +
            dependencies:
         
     | 
| 
      
 13 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 14 
     | 
    
         
            +
              name: bundler
         
     | 
| 
      
 15 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 16 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 17 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 18 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 19 
     | 
    
         
            +
                    version: '1'
         
     | 
| 
      
 20 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 21 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 22 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 23 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 24 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 25 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 26 
     | 
    
         
            +
                    version: '1'
         
     | 
| 
      
 27 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 28 
     | 
    
         
            +
              name: rake
         
     | 
| 
      
 29 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 30 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 31 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 32 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 33 
     | 
    
         
            +
                    version: '10.0'
         
     | 
| 
      
 34 
     | 
    
         
            +
              type: :development
         
     | 
| 
       23 
35 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       24 
     | 
    
         
            -
               
     | 
| 
       25 
     | 
    
         
            -
                 
     | 
| 
       26 
     | 
    
         
            -
                 
     | 
| 
      
 36 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 37 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 38 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 39 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 40 
     | 
    
         
            +
                    version: '10.0'
         
     | 
| 
      
 41 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 42 
     | 
    
         
            +
              name: activesupport
         
     | 
| 
      
 43 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 44 
     | 
    
         
            +
                requirements:
         
     | 
| 
       27 
45 
     | 
    
         
             
                - - ">="
         
     | 
| 
       28 
     | 
    
         
            -
                  - !ruby/object:Gem::Version 
     | 
| 
       29 
     | 
    
         
            -
                     
     | 
| 
       30 
     | 
    
         
            -
                    segments: 
         
     | 
| 
       31 
     | 
    
         
            -
                    - 0
         
     | 
| 
       32 
     | 
    
         
            -
                    version: "0"
         
     | 
| 
      
 46 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 47 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       33 
48 
     | 
    
         
             
              type: :development
         
     | 
| 
       34 
     | 
    
         
            -
               
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
      
 49 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 50 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 51 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 52 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 53 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 54 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 55 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 56 
     | 
    
         
            +
              name: test-unit
         
     | 
| 
      
 57 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 58 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 59 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 60 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 61 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 62 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 63 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 64 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 65 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 66 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 67 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 68 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 69 
     | 
    
         
            +
            description: Object#freeze! freezes the contents of arrays and hashes
         
     | 
| 
      
 70 
     | 
    
         
            +
            email:
         
     | 
| 
      
 71 
     | 
    
         
            +
            - matthewrudyjacobs@gmail.com
         
     | 
| 
       37 
72 
     | 
    
         
             
            executables: []
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
73 
     | 
    
         
             
            extensions: []
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
74 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
            -  
     | 
| 
       45 
     | 
    
         
            -
            -  
     | 
| 
      
 75 
     | 
    
         
            +
            files:
         
     | 
| 
      
 76 
     | 
    
         
            +
            - ".gitignore"
         
     | 
| 
      
 77 
     | 
    
         
            +
            - ".travis.yml"
         
     | 
| 
      
 78 
     | 
    
         
            +
            - Gemfile
         
     | 
| 
      
 79 
     | 
    
         
            +
            - LICENSE.txt
         
     | 
| 
      
 80 
     | 
    
         
            +
            - README.markdown
         
     | 
| 
      
 81 
     | 
    
         
            +
            - Rakefile
         
     | 
| 
      
 82 
     | 
    
         
            +
            - lib/mr_freeze.rb
         
     | 
| 
       46 
83 
     | 
    
         
             
            - lib/mr_freeze/core_extensions.rb
         
     | 
| 
       47 
84 
     | 
    
         
             
            - lib/mr_freeze/version.rb
         
     | 
| 
       48 
     | 
    
         
            -
            -  
     | 
| 
       49 
     | 
    
         
            -
            has_rdoc: true
         
     | 
| 
      
 85 
     | 
    
         
            +
            - mr_freeze.gemspec
         
     | 
| 
       50 
86 
     | 
    
         
             
            homepage: https://github.com/matthewrudy/mr_freeze
         
     | 
| 
       51 
     | 
    
         
            -
            licenses: 
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
      
 87 
     | 
    
         
            +
            licenses:
         
     | 
| 
      
 88 
     | 
    
         
            +
            - MIT
         
     | 
| 
      
 89 
     | 
    
         
            +
            metadata: {}
         
     | 
| 
       53 
90 
     | 
    
         
             
            post_install_message: 
         
     | 
| 
       54 
91 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
       55 
     | 
    
         
            -
             
     | 
| 
       56 
     | 
    
         
            -
            require_paths: 
         
     | 
| 
      
 92 
     | 
    
         
            +
            require_paths:
         
     | 
| 
       57 
93 
     | 
    
         
             
            - lib
         
     | 
| 
       58 
     | 
    
         
            -
            required_ruby_version: !ruby/object:Gem::Requirement 
     | 
| 
       59 
     | 
    
         
            -
               
     | 
| 
       60 
     | 
    
         
            -
              requirements: 
         
     | 
| 
      
 94 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 95 
     | 
    
         
            +
              requirements:
         
     | 
| 
       61 
96 
     | 
    
         
             
              - - ">="
         
     | 
| 
       62 
     | 
    
         
            -
                - !ruby/object:Gem::Version 
     | 
| 
       63 
     | 
    
         
            -
                   
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
       66 
     | 
    
         
            -
                  version: "0"
         
     | 
| 
       67 
     | 
    
         
            -
            required_rubygems_version: !ruby/object:Gem::Requirement 
         
     | 
| 
       68 
     | 
    
         
            -
              none: false
         
     | 
| 
       69 
     | 
    
         
            -
              requirements: 
         
     | 
| 
      
 97 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 98 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 99 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 100 
     | 
    
         
            +
              requirements:
         
     | 
| 
       70 
101 
     | 
    
         
             
              - - ">="
         
     | 
| 
       71 
     | 
    
         
            -
                - !ruby/object:Gem::Version 
     | 
| 
       72 
     | 
    
         
            -
                   
     | 
| 
       73 
     | 
    
         
            -
                  segments: 
         
     | 
| 
       74 
     | 
    
         
            -
                  - 0
         
     | 
| 
       75 
     | 
    
         
            -
                  version: "0"
         
     | 
| 
      
 102 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 103 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
       76 
104 
     | 
    
         
             
            requirements: []
         
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
105 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       79 
     | 
    
         
            -
            rubygems_version:  
     | 
| 
      
 106 
     | 
    
         
            +
            rubygems_version: 2.4.6
         
     | 
| 
       80 
107 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       81 
     | 
    
         
            -
            specification_version:  
     | 
| 
      
 108 
     | 
    
         
            +
            specification_version: 4
         
     | 
| 
       82 
109 
     | 
    
         
             
            summary: freeze objects nestedly
         
     | 
| 
       83 
110 
     | 
    
         
             
            test_files: []
         
     | 
| 
       84 
     | 
    
         
            -
             
     | 
    
        data/test/mr_freeze_test.rb
    DELETED
    
    | 
         @@ -1,76 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'test_helper'
         
     | 
| 
       2 
     | 
    
         
            -
            require 'mr_freeze'
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            class MrFreezeTest < ActiveSupport::TestCase
         
     | 
| 
       5 
     | 
    
         
            -
                test "freeze! freezes members of arrays" do
         
     | 
| 
       6 
     | 
    
         
            -
                  array = ["I", "am", "an", "array", "of", "strings"]
         
     | 
| 
       7 
     | 
    
         
            -
                  array.each do |string|
         
     | 
| 
       8 
     | 
    
         
            -
                    assert_not_frozen string
         
     | 
| 
       9 
     | 
    
         
            -
                  end
         
     | 
| 
       10 
     | 
    
         
            -
                  assert_not_frozen array
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
                  array.freeze!
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
                  array.each do |string|
         
     | 
| 
       15 
     | 
    
         
            -
                    assert_frozen string
         
     | 
| 
       16 
     | 
    
         
            -
                  end
         
     | 
| 
       17 
     | 
    
         
            -
                  assert_frozen array
         
     | 
| 
       18 
     | 
    
         
            -
                end
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
                test "freeze! freezes arrays of arrays" do
         
     | 
| 
       21 
     | 
    
         
            -
                  array = [[[["an array of arrays"]]]]
         
     | 
| 
       22 
     | 
    
         
            -
                  assert_not_frozen array
         
     | 
| 
       23 
     | 
    
         
            -
                  assert_not_frozen array[0]
         
     | 
| 
       24 
     | 
    
         
            -
                  assert_not_frozen array[0][0]
         
     | 
| 
       25 
     | 
    
         
            -
                  assert_not_frozen array[0][0][0]
         
     | 
| 
       26 
     | 
    
         
            -
                  assert_not_frozen array[0][0][0][0]
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
                  array.freeze!
         
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
                  assert_frozen array
         
     | 
| 
       31 
     | 
    
         
            -
                  assert_frozen array[0]
         
     | 
| 
       32 
     | 
    
         
            -
                  assert_frozen array[0][0]
         
     | 
| 
       33 
     | 
    
         
            -
                  assert_frozen array[0][0][0]
         
     | 
| 
       34 
     | 
    
         
            -
                  assert_frozen array[0][0][0][0]
         
     | 
| 
       35 
     | 
    
         
            -
                end
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
                test "freeze! freezes hashes keys and values" do
         
     | 
| 
       38 
     | 
    
         
            -
                  hash = {"hello" => "world"}
         
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
                  assert_not_frozen(hash)
         
     | 
| 
       41 
     | 
    
         
            -
                  assert_frozen(hash.keys.first) # hash keys already are frozen
         
     | 
| 
       42 
     | 
    
         
            -
                  assert_not_frozen(hash.values.first)
         
     | 
| 
       43 
     | 
    
         
            -
                  assert_not_frozen(hash["hello"])
         
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
                  hash.freeze!
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
                  assert_frozen(hash)
         
     | 
| 
       48 
     | 
    
         
            -
                  assert_frozen(hash.keys.first)
         
     | 
| 
       49 
     | 
    
         
            -
                  assert_frozen(hash.values.first)
         
     | 
| 
       50 
     | 
    
         
            -
                  assert_frozen(hash["hello"])
         
     | 
| 
       51 
     | 
    
         
            -
                end
         
     | 
| 
       52 
     | 
    
         
            -
                
         
     | 
| 
       53 
     | 
    
         
            -
                test "freeze! big momma" do
         
     | 
| 
       54 
     | 
    
         
            -
                  big_momma = {:a => ["hash", {"of" => {"hashes" => ["and arrays"]}}, ["and", "other"], "stuff"],
         
     | 
| 
       55 
     | 
    
         
            -
                    "like" => {"numbers" => 123, :and => /aregexp/}}
         
     | 
| 
       56 
     | 
    
         
            -
                  
         
     | 
| 
       57 
     | 
    
         
            -
                  big_momma.freeze!
         
     | 
| 
       58 
     | 
    
         
            -
                  
         
     | 
| 
       59 
     | 
    
         
            -
                  assert_frozen big_momma
         
     | 
| 
       60 
     | 
    
         
            -
                  assert_frozen big_momma[:a][1]
         
     | 
| 
       61 
     | 
    
         
            -
                  assert_frozen big_momma[:a][2]
         
     | 
| 
       62 
     | 
    
         
            -
                  assert_frozen big_momma[:a][2][1]
         
     | 
| 
       63 
     | 
    
         
            -
                  assert_frozen big_momma["like"][:and]
         
     | 
| 
       64 
     | 
    
         
            -
                end
         
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
       66 
     | 
    
         
            -
                protected
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
                def assert_frozen(object)
         
     | 
| 
       69 
     | 
    
         
            -
                  assert object.frozen?, "expected #{object.inspect} to be frozen"
         
     | 
| 
       70 
     | 
    
         
            -
                end
         
     | 
| 
       71 
     | 
    
         
            -
             
     | 
| 
       72 
     | 
    
         
            -
                def assert_not_frozen(object)
         
     | 
| 
       73 
     | 
    
         
            -
                  assert !object.frozen?, "expected #{object.inspect} not to be frozen"
         
     | 
| 
       74 
     | 
    
         
            -
                end
         
     | 
| 
       75 
     | 
    
         
            -
              end
         
     | 
| 
       76 
     | 
    
         
            -
              
         
     |