Sha256: f0de6acee286d4c4a9467549457ac7137afe704e6b884128ccfe78803ba9dba7

Contents?: true

Size: 1.05 KB

Versions: 62

Compression:

Stored size: 1.05 KB

Contents

module Workarea
  module Navigation
    class SearchResults
      include GlobalID::Identification

      attr_reader :params

      def self.find(id)
        new(JSON.parse(id))
      end

      def initialize(params = {})
        @params = params
          .to_h
          .with_indifferent_access
          .except(*Workarea.config.exclude_from_search_results_breadcrumbs)

        stub_navigable_since_this_isnt_mongoid!
      end

      def id
        params.sort_by { |key, _| key }.to_h.to_json
      end

      def query_string
        @query_string ||= QueryString.new(params[:q])
      end

      def taxon
        @taxon ||= Taxon.new(
          parent_id: Taxon.root.id,
          parent_ids: [Taxon.root.id],
          name: I18n.t('workarea.breadcrumbs.search_results', query: params[:q])
        )
      end

      def ==(o)
        o.class == self.class && o.id == id
      end

      private

      def stub_navigable_since_this_isnt_mongoid!
        results = self
        taxon.define_singleton_method(:navigable) { results }
      end
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
workarea-core-3.5.27 app/models/workarea/navigation/search_results.rb
workarea-core-3.5.26 app/models/workarea/navigation/search_results.rb
workarea-core-3.4.45 app/models/workarea/navigation/search_results.rb
workarea-core-3.5.25 app/models/workarea/navigation/search_results.rb
workarea-core-3.5.23 app/models/workarea/navigation/search_results.rb
workarea-core-3.4.44 app/models/workarea/navigation/search_results.rb
workarea-core-3.5.22 app/models/workarea/navigation/search_results.rb
workarea-core-3.4.43 app/models/workarea/navigation/search_results.rb
workarea-core-3.5.21 app/models/workarea/navigation/search_results.rb
workarea-core-3.4.42 app/models/workarea/navigation/search_results.rb
workarea-core-3.5.20 app/models/workarea/navigation/search_results.rb
workarea-core-3.4.41 app/models/workarea/navigation/search_results.rb
workarea-core-3.5.19 app/models/workarea/navigation/search_results.rb
workarea-core-3.4.40 app/models/workarea/navigation/search_results.rb
workarea-core-3.5.18 app/models/workarea/navigation/search_results.rb
workarea-core-3.4.39 app/models/workarea/navigation/search_results.rb
workarea-core-3.5.17 app/models/workarea/navigation/search_results.rb
workarea-core-3.4.38 app/models/workarea/navigation/search_results.rb
workarea-core-3.5.16 app/models/workarea/navigation/search_results.rb
workarea-core-3.4.37 app/models/workarea/navigation/search_results.rb