Module: JsonbOperations::Arel::NodeMethods

Defined in:
lib/jsonb_operations/arel/node_methods.rb

Overview

typed: strict frozen_string_literal: true

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.coerce_rhs(value) ⇒ Object

: (untyped) -> untyped



103
104
105
106
107
108
109
110
111
112
# File 'lib/jsonb_operations/arel/node_methods.rb', line 103

def coerce_rhs(value)
  case value
  when Arel::Nodes::Node
    value
  when Hash, Array
    Arel::Nodes::Quoted.new(value.to_json)
  else
    Arel::Nodes::Quoted.new(value)
  end
end

Instance Method Details

#concat(other) ⇒ Object

: (untyped) -> Arel::Nodes::Jsonb::Concat



67
68
69
# File 'lib/jsonb_operations/arel/node_methods.rb', line 67

def concat(other)
  Arel::Nodes::Jsonb::Concat.new(self, jsonb_rhs(other))
end

#contained_by(other) ⇒ Object

: (untyped) -> Arel::Nodes::Jsonb::ContainedBy



45
46
47
# File 'lib/jsonb_operations/arel/node_methods.rb', line 45

def contained_by(other)
  Arel::Nodes::Jsonb::ContainedBy.new(self, jsonb_rhs(other))
end

#contains(other) ⇒ Object

: (untyped) -> Arel::Nodes::Jsonb::Contains



40
41
42
# File 'lib/jsonb_operations/arel/node_methods.rb', line 40

def contains(other)
  Arel::Nodes::Jsonb::Contains.new(self, jsonb_rhs(other))
end

#contains_all_keys(*keys) ⇒ Object

: (*String) -> Arel::Nodes::Jsonb::HasAllKeys



62
63
64
# File 'lib/jsonb_operations/arel/node_methods.rb', line 62

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

#contains_any_key(*keys) ⇒ Object

: (*String) -> Arel::Nodes::Jsonb::HasAnyKey



57
58
59
# File 'lib/jsonb_operations/arel/node_methods.rb', line 57

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

#contains_key(key) ⇒ Object

: (String) -> Arel::Nodes::Jsonb::HasKey



52
53
54
# File 'lib/jsonb_operations/arel/node_methods.rb', line 52

def contains_key(key)
  Arel::Nodes::Jsonb::HasKey.new(self, Arel::Nodes::Quoted.new(key))
end

#delete_element(index) ⇒ Object

: (Integer) -> Arel::Nodes::Jsonb::DeleteElement



82
83
84
# File 'lib/jsonb_operations/arel/node_methods.rb', line 82

def delete_element(index)
  Arel::Nodes::Jsonb::DeleteElement.new(self, Arel::Nodes::Quoted.new(index))
end

#delete_key(key) ⇒ Object

: (String) -> Arel::Nodes::Jsonb::DeleteKey



72
73
74
# File 'lib/jsonb_operations/arel/node_methods.rb', line 72

def delete_key(key)
  Arel::Nodes::Jsonb::DeleteKey.new(self, Arel::Nodes::Quoted.new(key))
end

#delete_keys(*keys) ⇒ Object

: (*String) -> Arel::Nodes::Jsonb::DeleteKeys



77
78
79
# File 'lib/jsonb_operations/arel/node_methods.rb', line 77

def delete_keys(*keys)
  Arel::Nodes::Jsonb::DeleteKeys.new(self, Arel::Nodes::Jsonb::TextArray.new(keys.flatten))
end

#delete_path(*path) ⇒ Object

: (*String) -> Arel::Nodes::Jsonb::DeletePath



87
88
89
# File 'lib/jsonb_operations/arel/node_methods.rb', line 87

def delete_path(*path)
  Arel::Nodes::Jsonb::DeletePath.new(self, Arel::Nodes::Jsonb::TextArray.new(path.flatten))
end

#json_element(index) ⇒ Object

: (Integer) -> Arel::Nodes::Jsonb::FetchElement



8
9
10
# File 'lib/jsonb_operations/arel/node_methods.rb', line 8

def json_element(index)
  Arel::Nodes::Jsonb::FetchElement.new(self, Arel::Nodes::Quoted.new(index))
end

#json_element_text(index) ⇒ Object

: (Integer) -> Arel::Nodes::Jsonb::FetchElementText



18
19
20
# File 'lib/jsonb_operations/arel/node_methods.rb', line 18

def json_element_text(index)
  Arel::Nodes::Jsonb::FetchElementText.new(self, Arel::Nodes::Quoted.new(index))
end

#json_field(key) ⇒ Object

: (String) -> Arel::Nodes::Jsonb::FetchField



13
14
15
# File 'lib/jsonb_operations/arel/node_methods.rb', line 13

def json_field(key)
  Arel::Nodes::Jsonb::FetchField.new(self, Arel::Nodes::Quoted.new(key))
end

#json_field_text(key) ⇒ Object

: (String) -> Arel::Nodes::Jsonb::FetchFieldText



23
24
25
# File 'lib/jsonb_operations/arel/node_methods.rb', line 23

def json_field_text(key)
  Arel::Nodes::Jsonb::FetchFieldText.new(self, Arel::Nodes::Quoted.new(key))
end

#json_path(*path) ⇒ Object

: (*String) -> Arel::Nodes::Jsonb::FetchPath



28
29
30
# File 'lib/jsonb_operations/arel/node_methods.rb', line 28

def json_path(*path)
  Arel::Nodes::Jsonb::FetchPath.new(self, Arel::Nodes::Jsonb::TextArray.new(path.flatten))
end

#json_path_text(*path) ⇒ Object

: (*String) -> Arel::Nodes::Jsonb::FetchPathText



33
34
35
# File 'lib/jsonb_operations/arel/node_methods.rb', line 33

def json_path_text(*path)
  Arel::Nodes::Jsonb::FetchPathText.new(self, Arel::Nodes::Jsonb::TextArray.new(path.flatten))
end

#path_exists(jsonpath) ⇒ Object

: (untyped) -> Arel::Nodes::Jsonb::PathExists



92
93
94
# File 'lib/jsonb_operations/arel/node_methods.rb', line 92

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

#path_match(jsonpath) ⇒ Object

: (untyped) -> Arel::Nodes::Jsonb::PathMatch



97
98
99
# File 'lib/jsonb_operations/arel/node_methods.rb', line 97

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