Skip to content

Commit 80bfef3

Browse files
committed
Allow nil to be set as default currency
1 parent df7a030 commit 80bfef3

File tree

4 files changed

+25
-3
lines changed

4 files changed

+25
-3
lines changed

Diff for: Gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ platforms :jruby do
99
end
1010

1111
platforms :ruby do
12-
gem "sqlite3"
12+
gem "sqlite3", '~> 1.4'
1313
end
1414

1515
platform :mri do

Diff for: lib/money-rails/configuration.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def configure
2020
# Configuration parameters
2121

2222
def default_currency
23-
Money::Currency.new(Money.default_currency)
23+
Money::Currency.new(Money.default_currency) if Money.default_currency
2424
end
2525

2626
# Set default currency of money library
@@ -35,7 +35,7 @@ def register_currency=(currency_options)
3535
end
3636

3737
def set_currency_column_for_default_currency!
38-
iso_code = default_currency.iso_code
38+
iso_code = default_currency&.iso_code
3939
currency_column.merge! default: iso_code
4040
end
4141

Diff for: spec/active_record/monetizable_spec.rb

+19
Original file line numberDiff line numberDiff line change
@@ -949,6 +949,25 @@ class SubProduct < Product
949949
expect(price.amount).not_to eq(value.amount)
950950
end
951951

952+
context 'without a default currency' do
953+
let(:product) { OtherProduct.new }
954+
955+
around do |example|
956+
default_currency = Money.default_currency
957+
Money.default_currency = nil
958+
959+
example.run
960+
961+
Money.default_currency = default_currency
962+
end
963+
964+
it "errors when" do
965+
expect do
966+
product.write_monetized :price, :price_cents, 10.5, false, nil, {}
967+
end.to raise_error(Money::Currency::NoCurrency)
968+
end
969+
end
970+
952971
describe "instance_currency_name" do
953972
it "updates instance_currency_name attribute" do
954973
product.write_monetized :sale_price, :sale_price_amount, value, false, :sale_price_currency_code, {}

Diff for: spec/dummy/app/models/other_product.rb

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
class OtherProduct < ActiveRecord::Base
2+
monetize :price_cents
3+
end

0 commit comments

Comments
 (0)