0.0
No commit activity in last 3 years
No release in over 3 years
Performs type conversion from anything to true:TrueClass / false:FalseClass
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 1.2
>= 0
~> 2.2
~> 2.13
~> 0.7
~> 0.8
 Project Readme

BooleanClass

Gem Version Build Status Dependency Status Code Climate Coverage Status githalytics.com alpha

Warning

Looking for typecasting boolean values?

Just use the "bang bang" technique, there is no need for an external gem to achieve that.

!!(0.0) #=> true
!!1     #=> true
!!0     #=> true
!!""    #=> true
!!nil   #=> false
!!false #=> false

Matz, the creator of Ruby, has a strong opinion against a Boolean class:

There's nothing true and false commonly share, thus no Boolean class. Besides that, in Ruby, everything behave as Boolean value, as Xavier mentioned in [ruby-talk:406208]. matz.

That said, this is just a proof-of-concept gem for some of my experiments.

Description

Performs type conversion from anything to true:TrueClass / false:FalseClass

Boolean(0.0)         #=> true
FalseClass < Boolean #=> true

Anti-Features

Similar to boolean gem but:

  • Without parse_bool()
  • Without raising exceptions
  • Without to_bool() to_b() methods
  • Does not pollute Object or Kernel; polite monkey patching with include BooleanClass::Conversion

Installation

$ gem install boolean_class or add to your Gemfile this line: gem 'boolean_class' then run bundle install

Usage

Just require 'boolean_class' and then use it as:

As a conversion method Boolean()

require 'boolean_class'

# Example true values
Boolean(true)  #=> true
Boolean(999)   #=> true
Boolean(0)     #=> true

# Example false values
Boolean(false) #=> false
Boolean(nil)   #=> false

As data type checking / validation

require 'boolean_class'

# Instance type checking
true.is_a?(Boolean)   #=> true
false.is_a?(Boolean)  #=> true
0.is_a?(Boolean)      #=> false
nil.is_a?(Boolean)    #=> false
(0==1).is_a?(Boolean) #=> true

# Class type checking
Object < Boolean      #=> nil (false)
NilClass < Boolean    #=> nil (false)
Class < Boolean       #=> nil (false)
TrueClass < Boolean   #=> true
FalseClass < Boolean  #=> true

Contributing

  1. Fork it.
  2. Make your feature addition or bug fix and create your feature branch.
  3. Update the Change Log.
  4. Add specs/tests for it. This is important so I don't break it in a future version unintentionally.
  5. Commit, create a new Pull Request.
  6. Check that your pull request passes the build.

License

Released under the MIT License. See the LICENSE file for further details.

Links

RubyGems | Documentation | Source | Bugtracker | Build Status | Dependency Status | Code Climate