https://github.com/solnic/coercible
Powerful, flexible and configurable coercion library. And nothing more.
https://github.com/solnic/coercible
Last synced: about 1 month ago
JSON representation
Powerful, flexible and configurable coercion library. And nothing more.
- Host: GitHub
- URL: https://github.com/solnic/coercible
- Owner: solnic
- License: mit
- Created: 2012-12-22T09:18:46.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2017-09-01T21:14:40.000Z (over 7 years ago)
- Last Synced: 2025-04-09T21:40:25.637Z (about 2 months ago)
- Language: Ruby
- Homepage:
- Size: 385 KB
- Stars: 137
- Watchers: 9
- Forks: 15
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Changelog: Changelog.md
- License: LICENSE.txt
Awesome Lists containing this project
README
[gem]: https://rubygems.org/gems/coercible
[travis]: https://travis-ci.org/solnic/coercible
[gemnasium]: https://gemnasium.com/solnic/coercible
[codeclimate]: https://codeclimate.com/github/solnic/coercible
[coveralls]: https://coveralls.io/r/solnic/coercible
[inchpages]: http://inch-ci.org/github/solnic/coercible/# Coercible
[][gem]
[][travis]
[][gemnasium]
[][codeclimate]
[][codeclimate]
[][inchpages]## Installation
Add this line to your application's Gemfile:
gem 'coercible'
And then execute:
$ bundle
Or install it yourself as:
$ gem install coercible
## Usage
Coercible gives you access to coercer objects where each object is responsible
for coercing only one type into other types. For example a string coercer knows
only how to coerce string objects, integer coercer knows only how to coerce integers
etc.Here's the most basic example:
```ruby
coercer = Coercible::Coercer.new# coerce a string to a date
coercer[String].to_date('2012/12/25') # => ## coerce a string to a boolean value
coercer[String].to_boolean('yes') # => true# you got the idea :)
```For more control you can configure your coercer like that:
``` ruby
# build coercer instance
coercer = Coercible::Coercer.new do |config|
config.string.boolean_map = { 'yup' => true, 'nope' => false }
end# coerce a string to boolean
coercer[String].to_boolean('yup') # => true
coercer[String].to_boolean('nope') # => false
```Note that at the moment only Integer and String are configurable. More configurable
coercers will be added later whenever we find good usecases.## Contributing
1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request