| Class | Hash |
| In: |
lib/sequel/extensions/pg_json.rb
lib/sequel/extensions/pg_hstore.rb lib/sequel/extensions/core_extensions.rb |
| Parent: | Object |
Return a Sequel::SQL::BooleanExpression created from this hash, matching all of the conditions in this hash and the condition specified by the given argument.
{a: 1} & :b # SQL: ((a = 1) AND b)
{a: true} & ~:b # SQL: ((a IS TRUE) AND NOT b)
# File lib/sequel/extensions/core_extensions.rb, line 105
105: def &(ce)
106: ::Sequel::SQL::BooleanExpression.new(:AND, self, ce)
107: end
Return a Sequel::SQL::CaseExpression with this hash as the conditions and the given default value.
{{a: [2,3]}=>1}.case(0) # SQL: CASE WHEN (a IN (2, 3)) THEN 1 ELSE 0 END
{a: 1, b: 2}.case(:d, :c) # SQL: CASE c WHEN a THEN 1 WHEN b THEN 2 ELSE d END
# File lib/sequel/extensions/core_extensions.rb, line 133
133: def case(*args)
134: ::Sequel::SQL::CaseExpression.new(to_a, *args)
135: end
Create a new HStore using the receiver as the input hash. Note that the HStore created will not use the receiver as the backing store, since it has to modify the hash. To get the new backing store, use:
hash.hstore.to_hash
# File lib/sequel/extensions/pg_hstore.rb, line 327
327: def hstore
328: Sequel::Postgres::HStore.new(self)
329: end
Return a Sequel::Postgres::JSONHash proxy to the receiver. This is mostly useful as a short cut for creating JSONHash objects that didn‘t come from the database.
# File lib/sequel/extensions/pg_json.rb, line 346
346: def pg_json
347: Sequel::Postgres::JSONHash.new(self)
348: end
Return a Sequel::Postgres::JSONHash proxy to the receiver. This is mostly useful as a short cut for creating JSONHash objects that didn‘t come from the database.
# File lib/sequel/extensions/pg_json.rb, line 353
353: def pg_jsonb
354: Sequel::Postgres::JSONBHash.new(self)
355: end
Return a Sequel::SQL::BooleanExpression created from this hash, matching all of the conditions. Rarely do you need to call this explicitly, as Sequel generally assumes that hashes specify this type of condition.
{a: true}.sql_expr # SQL: (a IS TRUE)
{a: 1, b: [2, 3]}.sql_expr # SQL: ((a = 1) AND (b IN (2, 3)))
# File lib/sequel/extensions/core_extensions.rb, line 143
143: def sql_expr
144: ::Sequel::SQL::BooleanExpression.from_value_pairs(self)
145: end
Return a Sequel::SQL::BooleanExpression created from this hash, matching none of the conditions.
{a: true}.sql_negate # SQL: (a IS NOT TRUE)
{a: 1, b: [2, 3]}.sql_negate # SQL: ((a != 1) AND (b NOT IN (2, 3)))
# File lib/sequel/extensions/core_extensions.rb, line 152
152: def sql_negate
153: ::Sequel::SQL::BooleanExpression.from_value_pairs(self, :AND, true)
154: end
Return a Sequel::SQL::BooleanExpression created from this hash, matching any of the conditions.
{a: true}.sql_or # SQL: (a IS TRUE)
{a: 1, b: [2, 3]}.sql_or # SQL: ((a = 1) OR (b IN (2, 3)))
# File lib/sequel/extensions/core_extensions.rb, line 161
161: def sql_or
162: ::Sequel::SQL::BooleanExpression.from_value_pairs(self, :OR)
163: end
Return a Sequel::SQL::BooleanExpression created from this hash, matching all of the conditions in this hash or the condition specified by the given argument.
{a: 1} | :b # SQL: ((a = 1) OR b)
{a: true} | ~:b # SQL: ((a IS TRUE) OR NOT b)
# File lib/sequel/extensions/core_extensions.rb, line 115
115: def |(ce)
116: ::Sequel::SQL::BooleanExpression.new(:OR, self, ce)
117: end
Return a Sequel::SQL::BooleanExpression created from this hash, not matching all of the conditions.
~{a: true} # SQL: (a IS NOT TRUE)
~{a: 1, b: [2, 3]} # SQL: ((a != 1) OR (b NOT IN (2, 3)))
# File lib/sequel/extensions/core_extensions.rb, line 124
124: def ~
125: ::Sequel::SQL::BooleanExpression.from_value_pairs(self, :OR, true)
126: end