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.15 app/models/workarea/navigation/search_results.rb
workarea-core-3.4.36 app/models/workarea/navigation/search_results.rb
workarea-core-3.5.14 app/models/workarea/navigation/search_results.rb
workarea-core-3.4.35 app/models/workarea/navigation/search_results.rb
workarea-core-3.5.13 app/models/workarea/navigation/search_results.rb
workarea-core-3.4.34 app/models/workarea/navigation/search_results.rb
workarea-core-3.5.12 app/models/workarea/navigation/search_results.rb
workarea-core-3.4.33 app/models/workarea/navigation/search_results.rb
workarea-core-3.5.11 app/models/workarea/navigation/search_results.rb
workarea-core-3.5.10 app/models/workarea/navigation/search_results.rb
workarea-core-3.4.32 app/models/workarea/navigation/search_results.rb
workarea-core-3.5.9 app/models/workarea/navigation/search_results.rb
workarea-core-3.4.31 app/models/workarea/navigation/search_results.rb
workarea-core-3.5.8 app/models/workarea/navigation/search_results.rb
workarea-core-3.4.30 app/models/workarea/navigation/search_results.rb
workarea-core-3.5.7 app/models/workarea/navigation/search_results.rb
workarea-core-3.4.29 app/models/workarea/navigation/search_results.rb
workarea-core-3.5.6 app/models/workarea/navigation/search_results.rb
workarea-core-3.4.28 app/models/workarea/navigation/search_results.rb
workarea-core-3.5.5 app/models/workarea/navigation/search_results.rb