diff --git a/Gemfile b/Gemfile index 534d80235c..8c32e738ac 100644 --- a/Gemfile +++ b/Gemfile @@ -27,7 +27,7 @@ gem 'cancan', '~> 1.6.10' gem 'ffaker' gem 'highline', '2.0.3' # Necessary for the install generator gem 'json' -gem 'money', '< 6.1.0' +gem 'monetize', '~> 1.1' gem 'paranoia', '~> 2.4' gem 'ransack', '~> 1.8.10' gem 'state_machines-activerecord' diff --git a/Gemfile.lock b/Gemfile.lock index f678ef3e57..9a921e9fe8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -457,9 +457,10 @@ GEM mini_racer (0.2.15) libv8 (> 7.3) minitest (5.14.3) - money (5.0.0) - i18n (~> 0.4) - json + monetize (1.9.4) + money (~> 6.12) + money (6.13.8) + i18n (>= 0.6.4, <= 2) msgpack (1.3.3) multi_json (1.15.0) multi_xml (0.6.0) @@ -789,7 +790,7 @@ DEPENDENCIES knapsack letter_opener (>= 1.4.1) mini_racer (= 0.2.15) - money (< 6.1.0) + monetize (~> 1.1) oauth2 (~> 1.4.4) ofn-qz! order_management! diff --git a/app/helpers/spree/reports_helper.rb b/app/helpers/spree/reports_helper.rb index 3f299c8250..eb1c60cd3c 100644 --- a/app/helpers/spree/reports_helper.rb +++ b/app/helpers/spree/reports_helper.rb @@ -1,4 +1,4 @@ -require 'spree/money_decorator' +require 'spree/money' module Spree module ReportsHelper diff --git a/lib/spree/money.rb b/lib/spree/money.rb index 413c2f0e8c..8ff14ce203 100644 --- a/lib/spree/money.rb +++ b/lib/spree/money.rb @@ -9,7 +9,7 @@ module Spree delegate :cents, to: :money def initialize(amount, options = {}) - @money = ::Money.parse([amount, (options[:currency] || Spree::Config[:currency])].join) + @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 @@ -21,6 +21,11 @@ module Spree @options[:symbol_position] = @options[:symbol_position].to_sym end + # Return the currency symbol (on its own) for the current default currency + def self.currency_symbol + ::Money.new(0, Spree::Config[:currency]).symbol + end + def to_s @money.format(@options) end @@ -30,11 +35,15 @@ module Spree if options[:html] # 1) prevent blank, breaking spaces # 2) prevent escaping of HTML character entities - output = output.gsub(" ", " ").html_safe + output = output.sub(" ", " ").html_safe end output end + def format(options = {}) + @money.format(@options.merge!(options)) + end + def ==(other) @money == other.money end diff --git a/lib/spree/money_decorator.rb b/lib/spree/money_decorator.rb deleted file mode 100644 index 10ecce8034..0000000000 --- a/lib/spree/money_decorator.rb +++ /dev/null @@ -1,25 +0,0 @@ -Spree::Money.class_eval do - # return the currency symbol (on its own) for the current default currency - def self.currency_symbol - Money.new(0, Spree::Config[:currency]).symbol - end - - def rounded - @options[:no_cents] = true if @money.dollars % 1 == 0 - to_s - 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 format(options = {}) - @money.format(@options.merge!(options)) - end -end