Module: Spree::StorefrontHelper
- Includes:
- BaseHelper, ImagesHelper, ShipmentHelper
- Included in:
- SeoController, StoreController, TaxonsController
- Defined in:
- app/helpers/spree/storefront_helper.rb
Instance Method Summary collapse
- #as_aspect_ratio(attachment) ⇒ Object
-
#page_description ⇒ String
Returns the page description for the current page.
-
#page_image ⇒ String
Returns the page image for the current page.
- #paths_equal?(path1, path2) ⇒ Boolean
-
#render_storefront_partials(section, options = {}) ⇒ String
Renders the storefront partials for the given section.
- #show_account_pane? ⇒ Boolean
-
#spree_storefront_base_cache_key ⇒ Array
Returns the cache key for the storefront including the current wishlist and order.
-
#spree_storefront_base_cache_scope ⇒ Proc
Returns the cache scope for the storefront including the current wishlist and order.
- #svg_country_icon(country_code) ⇒ Object
- #tailwind_classes_for(flash_type) ⇒ Object
Instance Method Details
#as_aspect_ratio(attachment) ⇒ Object
82 83 84 85 |
# File 'app/helpers/spree/storefront_helper.rb', line 82 def as_aspect_ratio() Spree::Deprecation.warn('as_aspect_ratio is deprecated. Please use spree_asset_aspect_ratio instead.') spree_asset_aspect_ratio() end |
#page_description ⇒ String
Returns the page description for the current page.
41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'app/helpers/spree/storefront_helper.rb', line 41 def page_description return @page_description if @page_description.present? @page_description = object. if object.respond_to?(:meta_description) if @page_description.blank? && [Spree::Product, Spree::Taxon, Spree::Post].include?(object.class) @page_description = truncate((object.description.to_s).strip, length: 160, separator: ' ', escape: false) end @page_description = current_store. if @page_description.blank? @page_description end |
#page_image ⇒ String
Returns the page image for the current page. This is used for SEO, social media and Open Graph tags.
59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'app/helpers/spree/storefront_helper.rb', line 59 def page_image return @page_image if @page_image.present? if object.is_a? Spree::Product @page_image = object.default_image&. elsif object.respond_to?(:image) @page_image = object.image end @page_image ||= current_store. @page_image end |
#paths_equal?(path1, path2) ⇒ Boolean
108 109 110 111 112 113 |
# File 'app/helpers/spree/storefront_helper.rb', line 108 def paths_equal?(path1, path2) path1 = URI.parse(path1).path.chomp('/') path2 = URI.parse(path2).path.chomp('/') path1 == path2 end |
#render_storefront_partials(section, options = {}) ⇒ String
Renders the storefront partials for the given section.
32 33 34 35 36 |
# File 'app/helpers/spree/storefront_helper.rb', line 32 def render_storefront_partials(section, = {}) Spree.storefront.partials.send(section.to_s.gsub('_partials', '').to_sym).map do |partial| render partial, end.join.html_safe end |
#show_account_pane? ⇒ Boolean
101 102 103 104 105 106 |
# File 'app/helpers/spree/storefront_helper.rb', line 101 def show_account_pane? !try_spree_current_user && defined?(spree_login_path) && !paths_equal?(canonical_path, spree_login_path) && defined?(spree_signup_path) && !paths_equal?(canonical_path, spree_signup_path) && defined?(spree_forgot_password_path) && !paths_equal?(canonical_path, spree_forgot_password_path) end |
#spree_storefront_base_cache_key ⇒ Array
Returns the cache key for the storefront including the current wishlist and order.
11 12 13 14 15 16 17 18 |
# File 'app/helpers/spree/storefront_helper.rb', line 11 def spree_storefront_base_cache_key @spree_storefront_base_cache_key ||= [ spree_base_cache_key, current_wishlist, current_order, Spree::Current.price_lists.cache_key_with_version ].compact end |
#spree_storefront_base_cache_scope ⇒ Proc
Returns the cache scope for the storefront including the current wishlist and order.
23 24 25 |
# File 'app/helpers/spree/storefront_helper.rb', line 23 def spree_storefront_base_cache_scope ->(record = nil) { [*spree_storefront_base_cache_key, record].compact_blank } end |
#svg_country_icon(country_code) ⇒ Object
87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'app/helpers/spree/storefront_helper.rb', line 87 def svg_country_icon(country_code) language_to_country = { 'el' => 'gr', 'en' => 'us', 'ja' => 'jp', 'uk' => 'ua' } normalized_code = country_code.to_s.downcase final_country_code = language_to_country.fetch(normalized_code, normalized_code) tag.span(class: "fi fi-#{final_country_code}") end |
#tailwind_classes_for(flash_type) ⇒ Object
73 74 75 76 77 78 79 80 |
# File 'app/helpers/spree/storefront_helper.rb', line 73 def tailwind_classes_for(flash_type) { notice: 'alert-notice', success: 'alert-success', error: 'alert-error', alert: 'alert-warning', }.stringify_keys[flash_type.to_s] || flash_type.to_s end |