Sha256: 4840218f3daee6e9d61711a003050fbbe49903a8bada0f835407e3fb2de6ddc8

Contents?: true

Size: 1.32 KB

Versions: 20

Compression:

Stored size: 1.32 KB

Contents

# encoding: utf-8

require 'money'

module Spree
  class Money
    attr_reader :money

    delegate :cents, to: :money

    def initialize(amount, options={})
      @money = Monetize.parse([amount, (options[:currency] || Spree::Config[:currency])].join)
      @options = {}
      @options[:with_currency] = Spree::Config[:display_currency]
      @options[:symbol_position] = Spree::Config[:currency_symbol_position].to_sym
      @options[:no_cents] = Spree::Config[:hide_cents]
      @options[:decimal_mark] = Spree::Config[:currency_decimal_mark]
      @options[:thousands_separator] = Spree::Config[:currency_thousands_separator]
      @options[:sign_before_symbol] = Spree::Config[:currency_sign_before_symbol]
      @options.merge!(options)
      # Must be a symbol because the Money gem doesn't do the conversion
      @options[:symbol_position] = @options[:symbol_position].to_sym
    end

    def to_s
      @money.format(@options)
    end

    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

    def as_json(*)
      to_s
    end

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

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
spree_core-2.4.10 lib/spree/money.rb
spree_core-2.3.13 lib/spree/money.rb
spree_core-2.4.9 lib/spree/money.rb
spree_core-2.3.12 lib/spree/money.rb
spree_core-2.4.8 lib/spree/money.rb
spree_core-2.3.11 lib/spree/money.rb
spree_core-2.4.7 lib/spree/money.rb
spree_core-2.3.10 lib/spree/money.rb
spree_core-2.4.6 lib/spree/money.rb
spree_core-2.3.9 lib/spree/money.rb
spree_core-2.3.8 lib/spree/money.rb
spree_core-2.4.5 lib/spree/money.rb
spree_core-2.4.4 lib/spree/money.rb
spree_core-2.3.7 lib/spree/money.rb
spree_core-2.4.3 lib/spree/money.rb
spree_core-2.4.2 lib/spree/money.rb
spree_core-2.3.6 lib/spree/money.rb
spree_core-2.4.1 lib/spree/money.rb
spree_core-2.4.0 lib/spree/money.rb
spree_core-2.3.5 lib/spree/money.rb