Class: Internationalize::Adapters::PostgreSQL
- Defined in:
- lib/internationalize/adapters/postgresql.rb
Overview
PostgreSQL-specific SQL generation for JSON/JSONB queries
Uses ->> operator for text extraction from JSON/JSONB columns ILIKE for case-insensitive matching LIKE for case-sensitive matching
Instance Method Summary collapse
-
#json_extract(column, locale) ⇒ String
Extract a value from a JSON/JSONB column using ->> operator.
-
#like_insensitive(column, locale) ⇒ Array<String, Symbol>
Case-insensitive search using ILIKE.
-
#like_sensitive(column, locale) ⇒ Array<String, Symbol>
Case-sensitive search using LIKE.
Methods inherited from Base
#glob_pattern, #like_pattern, #sanitize_locale
Instance Method Details
#json_extract(column, locale) ⇒ String
Extract a value from a JSON/JSONB column using ->> operator
18 19 20 |
# File 'lib/internationalize/adapters/postgresql.rb', line 18 def json_extract(column, locale) "#{column}->>'#{sanitize_locale(locale)}'" end |
#like_insensitive(column, locale) ⇒ Array<String, Symbol>
Case-insensitive search using ILIKE
25 26 27 |
# File 'lib/internationalize/adapters/postgresql.rb', line 25 def like_insensitive(column, locale) ["#{json_extract(column, locale)} ILIKE ?", :like] end |
#like_sensitive(column, locale) ⇒ Array<String, Symbol>
Case-sensitive search using LIKE
32 33 34 |
# File 'lib/internationalize/adapters/postgresql.rb', line 32 def like_sensitive(column, locale) ["#{json_extract(column, locale)} LIKE ?", :like] end |