Sha256: b3baea754e6d39455536accee2d8099ae9086e42c3a634c8db476c8a8c3fbea3

Contents?: true

Size: 1.13 KB

Versions: 11

Compression:

Stored size: 1.13 KB

Contents

module Spree
  module DisplayLink
    def link
      case linked_resource_type
      when 'Spree::Taxon'
        return if linked_resource&.permalink.blank?

        if spree_routes.method_defined?(:nested_taxons_path)
          spree_routes.nested_taxons_path(linked_resource.permalink)
        else
          "/#{Spree::Config[:storefront_taxons_path]}/#{linked_resource.permalink}"
        end
      when 'Spree::Product'
        return if linked_resource&.slug.blank?

        if spree_routes.method_defined?(:products_path)
          spree_routes.product_path(linked_resource)
        else
          "/#{Spree::Config[:storefront_products_path]}/#{linked_resource.slug}"
        end
      when 'Spree::CmsPage'
        return if linked_resource&.slug.blank?

        if spree_routes.method_defined?(:page_path)
          spree_routes.page_path(linked_resource.slug)
        else
          "/#{Spree::Config[:storefront_pages_path]}/#{linked_resource.slug}"
        end
      when 'Home Page'
        '/'
      when 'URL'
        destination
      end
    end

    private

    def spree_routes
      Spree::Core::Engine.routes.url_helpers
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
spree_core-4.3.3 app/models/concerns/spree/display_link.rb
spree_core-4.4.1 app/models/concerns/spree/display_link.rb
spree_core-4.3.2 app/models/concerns/spree/display_link.rb
spree_core-4.4.0 app/models/concerns/spree/display_link.rb
spree_core-4.4.0.rc2 app/models/concerns/spree/display_link.rb
spree_core-4.3.1 app/models/concerns/spree/display_link.rb
spree_core-4.4.0.rc1 app/models/concerns/spree/display_link.rb
spree_core-4.3.0 app/models/concerns/spree/display_link.rb
spree_core-4.3.0.rc3 app/models/concerns/spree/display_link.rb
spree_core-4.3.0.rc2 app/models/concerns/spree/display_link.rb
spree_core-4.3.0.rc1 app/models/concerns/spree/display_link.rb