Sha256: 9e2387559bbc125d0448f9a137148a579d755837043b678b164659c476cef00e

Contents?: true

Size: 692 Bytes

Versions: 4

Compression:

Stored size: 692 Bytes

Contents

class SubscriptionFu::Plan
  include ActionView::Helpers::NumberHelper  # for number_to_currency
  include Comparable

  TAX = 0.05

  attr_accessor :key
  attr_accessor :price

  def initialize(key, price, data = {})
    self.key = key
    self.price = price
    data.each {|k,v| self.send("#{k}=", v) }
  end

  def human_name
    I18n.t(key, :scope => [:subscription_fu, :plan, :options])
  end

  def human_price
    number_to_currency(price_with_tax)
  end

  def free_plan?
    price == 0
  end

  def price_with_tax
    (price * (1.0 + TAX)).to_i
  end

  def price_tax
    (price * TAX).to_i
  end

  def currency
    "JPY"
  end

  def <=>(other)
    price <=> other.price
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
subscription_fu-0.4.0 app/models/subscription_fu/plan.rb
subscription_fu-0.3.1 app/models/subscription_fu/plan.rb
subscription_fu-0.3.0 app/models/subscription_fu/plan.rb
subscription_fu-0.2.1 app/models/subscription_fu/plan.rb