module Stall::Sellable
Public Instance Methods
currency()
click to toggle source
# File lib/stall/sellable.rb, line 24 def currency Money.default_currency end
to_line_item()
click to toggle source
# File lib/stall/sellable.rb, line 11 def to_line_item line_items.build( name: (try(:name) || try(:title)), unit_price: try(:price), unit_eot_price: eot_price, vat_rate: vat_rate ) end
vat_ratio()
click to toggle source
# File lib/stall/sellable.rb, line 20 def vat_ratio (vat_rate / 100.0) + 1 end
Private Instance Methods
default_eot_price()
click to toggle source
# File lib/stall/sellable.rb, line 30 def default_eot_price if (price = try(:price)) price / vat_ratio end end
default_vat_rate()
click to toggle source
# File lib/stall/sellable.rb, line 36 def default_vat_rate @default_vat_rate ||= Stall.config.vat_rate end
method_missing(name, *args, &block)
click to toggle source
Create default handlers for the `#eot_price` and `#vat_rate` methods that don't need to be explictly defined if the whole shop has a single VAT rate for all products
Calls superclass method
# File lib/stall/sellable.rb, line 44 def method_missing(name, *args, &block) if [:eot_price, :vat_rate].include?(name) send(:"default_#{ name }") else super end end