Module: BlindIndex::Extensions::TableMetadata
- Defined in:
- lib/blind_index/extensions.rb
Instance Method Summary collapse
-
#has_blind_indexes? ⇒ Boolean
memoize for performance.
- #resolve_column_aliases(hash) ⇒ Object
Instance Method Details
#has_blind_indexes? ⇒ Boolean
memoize for performance
23 24 25 26 27 28 |
# File 'lib/blind_index/extensions.rb', line 23 def has_blind_indexes? unless defined?(@has_blind_indexes) @has_blind_indexes = klass.respond_to?(:blind_indexes) end @has_blind_indexes end |
#resolve_column_aliases(hash) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/blind_index/extensions.rb', line 4 def resolve_column_aliases(hash) new_hash = super if has_blind_indexes? hash.each do |key, _| if key.respond_to?(:to_sym) && (bi = klass.blind_indexes[key.to_sym]) && !new_hash[key].is_a?(ActiveRecord::StatementCache::Substitute) value = new_hash.delete(key) new_hash[bi[:bidx_attribute]] = if value.is_a?(Array) value.map { |v| BlindIndex.generate_bidx(v, **bi) } else BlindIndex.generate_bidx(value, **bi) end end end end new_hash end |