Module: ProductsHelper

Defined in:
app/helpers/products_helper.rb

Instance Method Summary collapse

Instance Method Details

#product_description(product) ⇒ Object

converts line breaks in product description into <p> tags (for html display purposes)



26
27
28
# File 'app/helpers/products_helper.rb', line 26

def product_description(product)
  raw(product.description.gsub(/^(.*)$/, '<p>\1</p>'))
end

#product_price(product_or_variant, options = {}) ⇒ Object

returns the price of the product to show for display purposes



16
17
18
19
20
21
22
23
# File 'app/helpers/products_helper.rb', line 16

def product_price(product_or_variant, options={})
  options.assert_valid_keys(:format_as_currency, :show_vat_text)
  options.reverse_merge! :format_as_currency => true, :show_vat_text => Spree::Config[:show_price_inc_vat]

  amount = product_or_variant.price
  amount += Calculator::Vat.calculate_tax_on(product_or_variant) if Spree::Config[:show_price_inc_vat]
  options.delete(:format_as_currency) ? format_price(amount, options) : amount
end

#variant_price_diff(variant) ⇒ Object

returns the formatted change in price (from the master price) for the specified variant (or simply return the variant price if no master price was supplied)



4
5
6
7
8
9
10
11
12
13
# File 'app/helpers/products_helper.rb', line 4

def variant_price_diff(variant)
  return product_price(variant) unless variant.product.master.price
  diff = product_price(variant, :format_as_currency => false) - product_price(variant.product, :format_as_currency => false)
  return nil if diff == 0
  if diff > 0
    "(#{t("add")}: #{format_price diff.abs})"
  else
    "(#{t("subtract")}: #{format_price diff.abs})"
  end
end