module Mobility::Ransack::Search

Public Instance Methods

result(opts = {}) click to toggle source
Calls superclass method
# File lib/mobility/ransack.rb, line 31
def result(opts = {})
  sorted = sorts.inject(super) do |relation, sort|
    predicate = ::Ransack::Visitor.new.visit_Ransack_Nodes_Sort(sort)
    apply_mobility_scope(relation, predicate, [sort.attr_name])
  end
  conditions.inject(sorted) do |relation, condition|
    apply_mobility_scope(relation, condition.arel_predicate, condition.attributes.compact.flat_map(&:name))
  end
end

Private Instance Methods

apply_mobility_scope(relation, predicate, attributes) click to toggle source
# File lib/mobility/ransack.rb, line 43
def apply_mobility_scope(relation, predicate, attributes)
  visitor.accept(predicate).inject(relation) do |i18n_rel, (backend_class, locale)|
    backend_class.apply_scope(i18n_rel, predicate, locale)
  end
end
visitor() click to toggle source
# File lib/mobility/ransack.rb, line 49
def visitor
  @visitor ||= Visitor.new
end