Popularity
4.3
Stable
Activity
0.0
Stable
13
3
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?

Add another 'Search' Shard

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

  1. Fork it ( https://github.com/waterlink/query.cr/fork )
  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 a new Pull Request

Contributors

  • waterlink Oleksii Fedorov - creator, maintainer