Popularity
4.1
Declining
Activity
0.0
Stable
12
1
3
Programming language: Crystal
License: MIT License
Tags:
Search
Latest version: v0.2.5
query.cr alternatives and similar shards
Based on the "Search" category.
Alternatively, view query.cr alternatives based on common mentions on social networks and blogs.
Do you think we are missing an alternative of query.cr or a related project?
README
query
Query abstraction.
Installation
Add this to your application's shard.yml
:
dependencies:
query:
github: waterlink/query.cr
version: ~> 0.2
Usage
require "query"
include Query::CriteriaHelper
criteria(name)
criteria("first_name")
Comparison (==
, !=
, <
, <=
, >
, >=
)
criteria("first_name") == "John" # => Equals<first_name, John>
criteria("second_name") != "Smith" # => NotEquals<second_name, Smith>
criteria("age") < 24 # => LessThan<age, 24>
criteria("age") <= 24 # => LessThanOrEqual<age, 24>
criteria("age") > 24 # => MoreThan<age, 24>
criteria("age") >= 24 # => MoreThanOrEqual<age, 24>
Inclusion (in
)
criteria("first_name").in(["John", "Bob"]) # => In<first_name, ["John", "Bob"]>
Special (is_true
, is_not_true
, is_false
, is_not_false
, is_unknown
, is_not_unknown
, is_null
, is_not_null
)
criteria("verified").is_true # => IsTrue<verified>
criteria("verified").is_not_true # => IsNotTrue<verified>
criteria("verified").is_false # => IsFalse<verified>
criteria("verified").is_not_false # => IsNotFalse<verified>
criteria("age").is_unknown # => IsUnknown<age>
criteria("age").is_not_unknown # => IsNotUnknown<age>
criteria("email").is_null # => IsNull<email>
criteria("email").is_not_null # => IsNotNull<email>
Logic (not
, and
, &
, or
, |
, xor
, ^
)
(criteria("age") > 21).not # => Not<MoreThan<age, 21>>
(criteria("age") > 27).and (criteria("age") < 35)
# => And<MoreThan<age, 27>, LessThan<age, 35>>
(criteria("age") > 27) & (criteria("age") < 35)
# => And<MoreThan<age, 27>, LessThan<age, 35>>
(criteria("age") < 27).or (criteria("age") > 35)
# => Or<LessThan<age, 27>, MoreThan<age, 35>>
(criteria("age") < 27) | (criteria("age") > 35)
# => Or<LessThan<age, 27>, MoreThan<age, 35>>
(criteria("age") > 27).xor (criteria("age") < 35)
# => Xor<MoreThan<age, 27>, LessThan<age, 35>>
(criteria("age") > 27) ^ (criteria("age") < 35)
# => Xor<MoreThan<age, 27>, LessThan<age, 35>>
Contributing
- Fork it ( https://github.com/waterlink/query.cr/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Contributors
- waterlink Oleksii Fedorov - creator, maintainer