Module: Predicate::Sugar
- Included in:
- Predicate
- Defined in:
- lib/predicate/sugar.rb
Instance Method Summary collapse
- #between(middle, lower_bound, upper_bound) ⇒ Object
- #is_null(operand) ⇒ Object
- #match(left, right, options = nil) ⇒ Object
- #max_size(left, right) ⇒ Object
- #min_size(left, right) ⇒ Object
Instance Method Details
#between(middle, lower_bound, upper_bound) ⇒ Object
11 12 13 14 |
# File 'lib/predicate/sugar.rb', line 11 def between(middle, lower_bound, upper_bound) _factor_predicate [:and, [:gte, sexpr(middle), sexpr(lower_bound)], [:lte, sexpr(middle), sexpr(upper_bound)]] end |
#is_null(operand) ⇒ Object
38 39 40 |
# File 'lib/predicate/sugar.rb', line 38 def is_null(operand) eq(operand, nil) end |
#match(left, right, options = nil) ⇒ Object
16 17 18 |
# File 'lib/predicate/sugar.rb', line 16 def match(left, right, = nil) super(left, right, ) end |
#max_size(left, right) ⇒ Object
31 32 33 34 35 36 |
# File 'lib/predicate/sugar.rb', line 31 def max_size(left, right) unless right.is_a?(Integer) raise ArgumentError, "Integer expected, got #{right}" end has_size(left, 0..right) end |
#min_size(left, right) ⇒ Object
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/predicate/sugar.rb', line 20 def min_size(left, right) unless right.is_a?(Integer) raise ArgumentError, "Integer expected, got #{right}" end if RUBY_VERSION >= "2.6" has_size(left, Range.new(right,nil)) else has_size(left, Range.new(right,(2**32-1))) end end |