truthy
Version, currently 1.2.09 versions
github.com/sam0x17/truthy
Adds intelligent to_b (to_boolen) to all objects in crystal
Nothing has been indexed for 1.2.0 yet. The tag is recorded, its shard.yml has not been read, so the manifest and dependency list below are empty because they are unknown rather than because they are absent.
Installation
# Add this to your shard.yml
dependencies:
truthy:
github: sam0x17/truthy
version: ~> 1.2.0Then run:
shards installshard.yml
No shard.yml has been indexed for 1.2.0. You can read it on the repository.
Dependencies
Unknown: the shard.yml for this version has not been read yet.
README
This README is the one indexed from the repository at its latest ref, not from the tag for this version.
truthy
Truthy patches all objects in crystal with a to_b (to boolean) method that will intelligently return
a boolean based on the value of the object. This will differ from !!(expr) in a number of cases
including the handling of "" and '\0' as false, and proper handling of class instances and arrays (an empty array => false, an array with elements => true).
expr.to_b will always return true or false no matter what you pass to it. !!(expr) is used
as a fallback for any language features that are not explictly covered.
An alias is provided so that you can also use *.truthy? if you think this makes more sense than
to_b. Both methods function in exactly the same way and are interchangable.
Installation
Add this to your application's shard.yml:
dependencies:
truthy:
github: sam0x17/truthy
Usage
require "truthy"
# Booleans
true.to_b # => true
false.to_b # => false
# Objects
nil.to_b # => false
SomeClass.new.to_b # => true
# Strings / Characters
"".to_b # => false
"hey".to_b # => true
'\0'.to_b # => false
'c'.to_b # => true
"0".to_b # => false
"1".to_b # => true
"200".to_b # => true
"1.0".to_b # => true
"-1.0".to_b # => false
"true".to_b # => true
"false".to_b # => false
"yes".to_b # => true
"no".to_b # => false
"nil".to_b # => false
"null".to_b # => false
"none".to_b # => false
"True".to_b # => true
"[]".to_b # => false
"{}".to_b # => false
# Integers
0.to_b # => false
-1.to_b # => false
1.to_b # => true
10.to_b # => true
0_i64.to_b # => false
1_i8.to_b # => true
-1_i16.to_b # => false
0_u64.to_b # => false
3_u16.to_b # => true
# Floats
0.0.to_b # => false
1.0.to_b # => true
0.001.to_b # => true
-0.001.to_b # => false
-1.0.to_b # => false
23.342.to_b # => true
# Arrays
[1, 2, 3].to_b # => true
([] of Int32).to_b # => false
# truthy? alias
true.truthy? # => true
false.truthy? # => false
0.truthy? # => false
1.truthy? # => true
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
1.2.0- Tagged
- Feb 2, 2019
- Commit
ec7557fc6fe5- Indexed
- not yet
Dependents
No indexed shard depends on this one yet.
Repository
github.com/sam0x17/truthy
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 15, 2026
- Synced
- Aug 15, 2026
- Versions
- 9