https://github.com/twilightcoders/thaw
https://github.com/twilightcoders/thaw
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/twilightcoders/thaw
- Owner: TwilightCoders
- License: mit
- Created: 2019-12-30T21:41:35.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-01-07T20:52:20.000Z (over 6 years ago)
- Last Synced: 2025-06-10T21:59:06.134Z (about 1 year ago)
- Language: Ruby
- Size: 4.88 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://rubygems.org/gems/thaw)
[](https://travis-ci.org/TwilightCoders/thaw)
[](https://codeclimate.com/github/TwilightCoders/thaw/maintainability)
[](https://codeclimate.com/github/TwilightCoders/thaw/test_coverage)
## Thaw
Flip the frozen bit on ruby objects, to unfreeze (thaw) them.
Note: You probably don't need to use this gem, you probably want to [`.dup`](https://www.rubyguides.com/2018/11/dup-vs-clone/) your objects instead.
### Compatibility
To-date, `thaw` works in Ruby `2.0` through `2.6`1.
Check the [build status](https://travis-ci.org/TwilightCoders/thaw) for the most current compatibility.
1There seems to be a segmentation fault in Ruby `2.7` that I haven't had time to investigate.
### Installation
The best way to install is with RubyGems:
$ [sudo] gem install thaw
Or better still, just add it to your Gemfile:
gem 'thaw'
### Example
string = "hello"
string.frozen?
=> false
string.thawed?
=> true
string.freeze
string.frozen?
=> true
string.thawed?
=> false
string.thaw
string.frozen?
=> false
string.thawed?
=> true
## Development
After checking out the repo, run `bundle` to install dependencies. Then, run `bundle exec rspec` to run the tests.
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/TwilightCoders/active_record-framing. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
## Credits
Shamelessly ripped from [ndnenkov](https://stackoverflow.com/users/2423164/ndnenkov)'s answer on [StackOverflow](https://stackoverflow.com/questions/35633367/how-to-unfreeze-an-object-in-ruby).
## License
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).