module Mobility::Plugins::ActiveRecord::Query::QueryExtension
Public Instance Methods
backend_node(name, locale = Mobility.locale)
click to toggle source
Return backend node for attribute name. @param [Symbol,String] name Name of attribute @param [Symbol] locale Locale @return [Arel::Node] Arel
node for this attribute in given locale
# File lib/mobility/plugins/active_record/query.rb, line 192 def backend_node(name, locale = Mobility.locale) @klass.mobility_backend_class(name)[name, locale] end
order(opts, *rest)
click to toggle source
Calls superclass method
# File lib/mobility/plugins/active_record/query.rb, line 139 def order(opts, *rest) return super unless @klass.respond_to?(:mobility_attribute?) case opts when Symbol, String @klass.mobility_attribute?(opts) ? order({ opts => :asc }, *rest) : super when ::Hash i18n_keys, keys = opts.keys.partition(&@klass.method(:mobility_attribute?)) return super if i18n_keys.empty? base = keys.empty? ? self : super(opts.slice(keys)) i18n_keys.inject(base) do |query, key| backend_class = @klass.mobility_backend_class(key) dir, node = opts[key], backend_node(key) backend_class.apply_scope(query, node).order(node.send(dir.downcase)) end else super end end
where(opts = :chain, *rest)
click to toggle source
Calls superclass method
# File lib/mobility/plugins/active_record/query.rb, line 135 def where(opts = :chain, *rest) opts == :chain ? WhereChain.new(spawn) : super end
where!(opts, *rest)
click to toggle source
Calls superclass method
# File lib/mobility/plugins/active_record/query.rb, line 129 def where!(opts, *rest) QueryBuilder.build(self, opts) do |untranslated_opts| untranslated_opts ? super(untranslated_opts, *rest) : super end end