Project

coercible

2.62
No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
Powerful, flexible and configurable coercion library. And nothing more.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
 Dependencies

Runtime

 Project Readme

Coercible

Gem Version Build Status Dependency Status Code Climate Test Coverage Inline docs

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:

coercer = Coercible::Coercer.new

# coerce a string to a date
coercer[String].to_date('2012/12/25') # => #<Date: 4912573/2,0,2299161>

# 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:

# 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