Class: JsonbOperations::ActiveRecord::JsonbExpression

Inherits:
Object
  • Object
show all
Defined in:
lib/jsonb_operations/active_record/jsonb_expression.rb

Overview

typed: strict frozen_string_literal: true

Instance Method Summary collapse

Constructor Details

#initialize(scope, node) ⇒ JsonbExpression

: (untyped, untyped) -> void



6
7
8
9
# File 'lib/jsonb_operations/active_record/jsonb_expression.rb', line 6

def initialize(scope, node)
  @scope = scope #: untyped
  @node = node #: untyped
end

Instance Method Details

#between(range) ⇒ Object

: (untyped) -> untyped



44
45
46
# File 'lib/jsonb_operations/active_record/jsonb_expression.rb', line 44

def between(range)
  finalize(@node.between(range))
end

#contained_by(value) ⇒ Object

: (untyped) -> untyped



74
75
76
# File 'lib/jsonb_operations/active_record/jsonb_expression.rb', line 74

def contained_by(value)
  finalize(::Arel::Nodes::Jsonb::ContainedBy.new(@node, ::JsonbOperations::Arel::NodeMethods.coerce_rhs(value)))
end

#contains(value) ⇒ Object

: (untyped) -> untyped



69
70
71
# File 'lib/jsonb_operations/active_record/jsonb_expression.rb', line 69

def contains(value)
  finalize(::Arel::Nodes::Jsonb::Contains.new(@node, ::JsonbOperations::Arel::NodeMethods.coerce_rhs(value)))
end

#contains_all_keys(*keys) ⇒ Object

: (*untyped) -> untyped



91
92
93
# File 'lib/jsonb_operations/active_record/jsonb_expression.rb', line 91

def contains_all_keys(*keys)
  finalize(::Arel::Nodes::Jsonb::HasAllKeys.new(@node, ::Arel::Nodes::Jsonb::TextArray.new(keys.flatten)))
end

#contains_any_key(*keys) ⇒ Object

: (*untyped) -> untyped



86
87
88
# File 'lib/jsonb_operations/active_record/jsonb_expression.rb', line 86

def contains_any_key(*keys)
  finalize(::Arel::Nodes::Jsonb::HasAnyKey.new(@node, ::Arel::Nodes::Jsonb::TextArray.new(keys.flatten)))
end

#contains_key(key) ⇒ Object

: (untyped) -> untyped



81
82
83
# File 'lib/jsonb_operations/active_record/jsonb_expression.rb', line 81

def contains_key(key)
  finalize(::Arel::Nodes::Jsonb::HasKey.new(@node, ::Arel::Nodes::Quoted.new(key)))
end

#does_not_match(pattern) ⇒ Object

: (untyped) -> untyped



64
65
66
# File 'lib/jsonb_operations/active_record/jsonb_expression.rb', line 64

def does_not_match(pattern) # rubocop:disable Naming/PredicatePrefix -- reads naturally; mirrors Arel's matcher name
  finalize(@node.does_not_match(pattern))
end

#equals(value) ⇒ Object

: (untyped) -> untyped



14
15
16
# File 'lib/jsonb_operations/active_record/jsonb_expression.rb', line 14

def equals(value)
  finalize(@node.eq(value))
end

#greater_than(value) ⇒ Object

: (untyped) -> untyped



24
25
26
# File 'lib/jsonb_operations/active_record/jsonb_expression.rb', line 24

def greater_than(value)
  finalize(@node.gt(value))
end

#greater_than_or_equal_to(value) ⇒ Object

: (untyped) -> untyped



29
30
31
# File 'lib/jsonb_operations/active_record/jsonb_expression.rb', line 29

def greater_than_or_equal_to(value)
  finalize(@node.gteq(value))
end

#included_in(values) ⇒ Object

: (untyped) -> untyped



49
50
51
# File 'lib/jsonb_operations/active_record/jsonb_expression.rb', line 49

def included_in(values)
  finalize(@node.in(values))
end

#less_than(value) ⇒ Object

: (untyped) -> untyped



34
35
36
# File 'lib/jsonb_operations/active_record/jsonb_expression.rb', line 34

def less_than(value)
  finalize(@node.lt(value))
end

#less_than_or_equal_to(value) ⇒ Object

: (untyped) -> untyped



39
40
41
# File 'lib/jsonb_operations/active_record/jsonb_expression.rb', line 39

def less_than_or_equal_to(value)
  finalize(@node.lteq(value))
end

#matches(pattern) ⇒ Object

: (untyped) -> untyped



59
60
61
# File 'lib/jsonb_operations/active_record/jsonb_expression.rb', line 59

def matches(pattern)
  finalize(@node.matches(pattern))
end

#not_equals(value) ⇒ Object

: (untyped) -> untyped



19
20
21
# File 'lib/jsonb_operations/active_record/jsonb_expression.rb', line 19

def not_equals(value)
  finalize(@node.not_eq(value))
end

#not_included_in(values) ⇒ Object

: (untyped) -> untyped



54
55
56
# File 'lib/jsonb_operations/active_record/jsonb_expression.rb', line 54

def not_included_in(values)
  finalize(@node.not_in(values))
end

#path_exists(jsonpath) ⇒ Object

: (untyped) -> untyped



96
97
98
# File 'lib/jsonb_operations/active_record/jsonb_expression.rb', line 96

def path_exists(jsonpath)
  finalize(::Arel::Nodes::Jsonb::PathExists.new(@node, ::Arel::Nodes::Quoted.new(jsonpath.to_s)))
end

#path_match(jsonpath) ⇒ Object

: (untyped) -> untyped



101
102
103
# File 'lib/jsonb_operations/active_record/jsonb_expression.rb', line 101

def path_match(jsonpath)
  finalize(::Arel::Nodes::Jsonb::PathMatch.new(@node, ::Arel::Nodes::Quoted.new(jsonpath.to_s)))
end