Class: Spree::Money

Inherits:
Object
  • Object
show all
Defined in:
lib/spree/money.rb

Class Attribute Summary collapse

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(amount, options = {}) ⇒ Money


20
21
22
23
# File 'lib/spree/money.rb', line 20

def initialize(amount, options = {})
  @money = Monetize.parse([amount, (options[:currency] || Spree::Config[:currency])].join)
  @options = Spree::Money.default_formatting_rules.merge(options)
end

Class Attribute Details

.default_formatting_rulesObject

Returns the value of attribute default_formatting_rules


8
9
10
# File 'lib/spree/money.rb', line 8

def default_formatting_rules
  @default_formatting_rules
end

Instance Attribute Details

#moneyObject (readonly)

Returns the value of attribute money


16
17
18
# File 'lib/spree/money.rb', line 16

def money
  @money
end

Instance Method Details

#==(obj) ⇒ Object


53
54
55
# File 'lib/spree/money.rb', line 53

def ==(obj)
  @money == obj.money
end

#as_jsonObject


39
40
41
# File 'lib/spree/money.rb', line 39

def as_json(*)
  to_s
end

#decimal_markObject


43
44
45
46
# File 'lib/spree/money.rb', line 43

def decimal_mark
  return @money.decimal_mark if @options[:decimal_mark].nil?
  @options[:decimal_mark]
end

#thousands_separatorObject


48
49
50
51
# File 'lib/spree/money.rb', line 48

def thousands_separator
  return @money.thousands_separator if @options[:thousands_separator].nil?
  @options[:thousands_separator]
end

#to_html(options = { html: true }) ⇒ Object


29
30
31
32
33
34
35
36
37
# File 'lib/spree/money.rb', line 29

def to_html(options = { html: true })
  output = @money.format(@options.merge(options))
  if options[:html]
    # 1) prevent blank, breaking spaces
    # 2) prevent escaping of HTML character entities
    output = output.sub(' ', ' ').html_safe
  end
  output
end

#to_sObject


25
26
27
# File 'lib/spree/money.rb', line 25

def to_s
  @money.format(@options)
end