Module: JsonbOperations::Arel::NodeMethods
- Defined in:
- lib/jsonb_operations/arel/node_methods.rb
Overview
typed: strict frozen_string_literal: true
Class Method Summary collapse
-
.coerce_rhs(value) ⇒ Object
: (untyped) -> untyped.
Instance Method Summary collapse
-
#concat(other) ⇒ Object
: (untyped) -> Arel::Nodes::Jsonb::Concat.
-
#contained_by(other) ⇒ Object
: (untyped) -> Arel::Nodes::Jsonb::ContainedBy.
-
#contains(other) ⇒ Object
: (untyped) -> Arel::Nodes::Jsonb::Contains.
-
#contains_all_keys(*keys) ⇒ Object
: (*String) -> Arel::Nodes::Jsonb::HasAllKeys.
-
#contains_any_key(*keys) ⇒ Object
: (*String) -> Arel::Nodes::Jsonb::HasAnyKey.
-
#contains_key(key) ⇒ Object
: (String) -> Arel::Nodes::Jsonb::HasKey.
-
#delete_element(index) ⇒ Object
: (Integer) -> Arel::Nodes::Jsonb::DeleteElement.
-
#delete_key(key) ⇒ Object
: (String) -> Arel::Nodes::Jsonb::DeleteKey.
-
#delete_keys(*keys) ⇒ Object
: (*String) -> Arel::Nodes::Jsonb::DeleteKeys.
-
#delete_path(*path) ⇒ Object
: (*String) -> Arel::Nodes::Jsonb::DeletePath.
-
#json_element(index) ⇒ Object
: (Integer) -> Arel::Nodes::Jsonb::FetchElement.
-
#json_element_text(index) ⇒ Object
: (Integer) -> Arel::Nodes::Jsonb::FetchElementText.
-
#json_field(key) ⇒ Object
: (String) -> Arel::Nodes::Jsonb::FetchField.
-
#json_field_text(key) ⇒ Object
: (String) -> Arel::Nodes::Jsonb::FetchFieldText.
-
#json_path(*path) ⇒ Object
: (*String) -> Arel::Nodes::Jsonb::FetchPath.
-
#json_path_text(*path) ⇒ Object
: (*String) -> Arel::Nodes::Jsonb::FetchPathText.
-
#path_exists(jsonpath) ⇒ Object
: (untyped) -> Arel::Nodes::Jsonb::PathExists.
-
#path_match(jsonpath) ⇒ Object
: (untyped) -> Arel::Nodes::Jsonb::PathMatch.
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 |