Sha256: ac24cda394f8ec5a4195b7501ccf5e0d7163e69a96500b3014de126eec7d184c

Contents?: true

Size: 1.05 KB

Versions: 11

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

module BaseEditingBootstrap::Searches
  ##
  # PORO per la gestione dei metodi associati alla ricerca.
  class Base
    include ActiveModel::Naming
    include ActiveModel::Conversion

    attr_reader :model_klass, :user, :params, :scope

    # @param [User] user
    # @param [ActiveRecord::Associations::CollectionProxy] scope
    def initialize(scope, user, params: {page: nil})
      @model_klass = scope.klass
      @user = user
      @scope = scope
      @params = params
    end

    ##
    # Risultato della ricerca, fa da pipeline verso ransack
    def results
      ransack_query
        .result(distinct: true)
        .order(:id)
        .page(params[:page])
    end

    def ransack_query
      scope
        .ransack(params[:q], auth_object: user)
    end

    def search_fields
      Pundit.policy(@user, @model_klass).search_fields.collect { |f| Field.new(self, f) }
    end

    def search_result_fields
      Pundit.policy(@user, @model_klass).search_result_fields
    end

    def persisted?
      false
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
base_editing_bootstrap-0.9.1 lib/base_editing_bootstrap/searches/base.rb
base_editing_bootstrap-0.9.0 lib/base_editing_bootstrap/searches/base.rb
base_editing_bootstrap-0.8.0 lib/base_editing_bootstrap/searches/base.rb
base_editing_bootstrap-0.7.0 lib/base_editing_bootstrap/searches/base.rb
base_editing_bootstrap-0.6.0 lib/base_editing_bootstrap/searches/base.rb
base_editing_bootstrap-0.4.1 lib/base_editing_bootstrap/searches/base.rb
base_editing_bootstrap-0.4.0 lib/base_editing_bootstrap/searches/base.rb
base_editing_bootstrap-0.3.0 lib/base_editing_bootstrap/searches/base.rb
base_editing_bootstrap-0.2.0 lib/base_editing_bootstrap/searches/base.rb
base_editing_bootstrap-0.1.4 lib/base_editing_bootstrap/searches/base.rb
base_editing_bootstrap-0.1.2 lib/base_editing_bootstrap/searches/base.rb