money-rails 1.13.2 → 1.13.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGELOG.md +7 -0
- data/lib/generators/templates/money.rb +23 -0
- data/lib/money-rails/active_record/migration_extensions/schema_statements_pg_rails4.rb +2 -2
- data/lib/money-rails/money.rb +5 -0
- data/lib/money-rails/version.rb +1 -1
- data/money-rails.gemspec +6 -0
- data/spec/dummy/app/assets/config/manifest.js +0 -0
- data/spec/money_spec.rb +40 -0
- data/spec/mongoid/mongoid_spec.rb +2 -2
- data/spec/mongoid/two_spec.rb +2 -2
- metadata +11 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 94253df4c6ac9ec75bfc1b569d6d05a96082846df1c7e2ab61d65cc56cf10183
|
4
|
+
data.tar.gz: 8fbcf7e06595b836c03d12d77bba6db42fbf40abc5b1de44e7c6311ffca4f01f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a3f73a3833288cc529da04343d58ce82dabaa3563c61281712a8e5d975f3c60cacce5ff37b9b5422bacbf6f6c0606468643145376521925b9db26281748150fb
|
7
|
+
data.tar.gz: 035af0f28d1aae1e28a970938f402a32c5de2eb1abd62bc2d36808f366dfe60f92f06aa4c5dddf9f940f85b20776deb9707def03b65544aedb6c9883dd8c67ac
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 1.13.3
|
4
|
+
|
5
|
+
- Add Money#to_hash for JSON serialization
|
6
|
+
- Update initializer template with #locale_backend config
|
7
|
+
- Rollback support for remove_monetize / remove_money DB helpers
|
8
|
+
- Rails 6 support
|
9
|
+
|
3
10
|
## 1.13.2
|
4
11
|
|
5
12
|
- Make validation compatible with Money.locale_backend
|
@@ -83,6 +83,29 @@ MoneyRails.configure do |config|
|
|
83
83
|
# sign_before_symbol: nil
|
84
84
|
# }
|
85
85
|
|
86
|
+
# If you would like to use I18n localization (formatting depends on the
|
87
|
+
# locale):
|
88
|
+
# config.locale_backend = :i18n
|
89
|
+
#
|
90
|
+
# Example (using default localization from rails-i18n):
|
91
|
+
#
|
92
|
+
# I18n.locale = :en
|
93
|
+
# Money.new(10_000_00, 'USD').format # => $10,000.00
|
94
|
+
# I18n.locale = :es
|
95
|
+
# Money.new(10_000_00, 'USD').format # => $10.000,00
|
96
|
+
#
|
97
|
+
# For the legacy behaviour of "per currency" localization (formatting depends
|
98
|
+
# only on currency):
|
99
|
+
# config.locale_backend = :currency
|
100
|
+
#
|
101
|
+
# Example:
|
102
|
+
# Money.new(10_000_00, 'USD').format # => $10,000.00
|
103
|
+
# Money.new(10_000_00, 'EUR').format # => €10.000,00
|
104
|
+
#
|
105
|
+
# In case you don't need localization and would like to use default values
|
106
|
+
# (can be redefined using config.default_format):
|
107
|
+
# config.locale_backend = nil
|
108
|
+
|
86
109
|
# Set default raise_error_on_money_parsing option
|
87
110
|
# It will be raise error if assigned different currency
|
88
111
|
# The default value is false
|
@@ -11,8 +11,8 @@ module MoneyRails
|
|
11
11
|
|
12
12
|
def remove_monetize(table_name, accessor, options={})
|
13
13
|
[:amount, :currency].each do |attribute|
|
14
|
-
column_present, table_name, column_name,
|
15
|
-
remove_column table_name, column_name if column_present
|
14
|
+
column_present, table_name, column_name, type, _ = OptionsExtractor.extract attribute, table_name, accessor, options
|
15
|
+
remove_column table_name, column_name, type if column_present
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
data/lib/money-rails/money.rb
CHANGED
data/lib/money-rails/version.rb
CHANGED
data/money-rails.gemspec
CHANGED
@@ -36,4 +36,10 @@ Gem::Specification.new do |s|
|
|
36
36
|
s.add_development_dependency "rspec-rails", "~> 3.0"
|
37
37
|
s.add_development_dependency 'database_cleaner', '~> 1.6.1'
|
38
38
|
s.add_development_dependency 'test-unit', '~> 3.0' if RUBY_VERSION >= '2.2'
|
39
|
+
|
40
|
+
if s.respond_to?(:metadata)
|
41
|
+
s.metadata['changelog_uri'] = 'https://github.com/RubyMoney/money-rails/blob/master/CHANGELOG.md'
|
42
|
+
s.metadata['source_code_uri'] = 'https://github.com/RubyMoney/money-rails/'
|
43
|
+
s.metadata['bug_tracker_uri'] = 'https://github.com/RubyMoney/money-rails/issues'
|
44
|
+
end
|
39
45
|
end
|
File without changes
|
data/spec/money_spec.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'Money overrides' do
|
6
|
+
describe '.default_formatting_rules' do
|
7
|
+
it 'uses defauts set as individual options' do
|
8
|
+
allow(MoneyRails::Configuration).to receive(:symbol).and_return('£')
|
9
|
+
|
10
|
+
expect(Money.default_formatting_rules).to include(symbol: '£')
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'ignores individual options that are nil' do
|
14
|
+
allow(MoneyRails::Configuration).to receive(:symbol).and_return(nil)
|
15
|
+
|
16
|
+
expect(Money.default_formatting_rules.keys).not_to include(:symbol)
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'includes default_format options' do
|
20
|
+
allow(MoneyRails::Configuration).to receive(:default_format).and_return(symbol: '£')
|
21
|
+
|
22
|
+
expect(Money.default_formatting_rules).to include(symbol: '£')
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'gives priority to original defaults' do
|
26
|
+
allow(Money).to receive(:orig_default_formatting_rules).and_return(symbol: '£')
|
27
|
+
allow(MoneyRails::Configuration).to receive(:symbol).and_return('€')
|
28
|
+
allow(MoneyRails::Configuration).to receive(:default_format).and_return(symbol: '€')
|
29
|
+
|
30
|
+
expect(Money.default_formatting_rules).to include(symbol: '£')
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe '#to_hash' do
|
35
|
+
it 'returns a hash with JSON representation' do
|
36
|
+
expect(Money.new(9_99, 'EUR').to_hash).to eq(cents: 9_99, currency_iso: 'EUR')
|
37
|
+
expect(Money.zero('USD').to_hash).to eq(cents: 0, currency_iso: 'USD')
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -16,7 +16,7 @@ if defined?(Mongoid) && ::Mongoid::VERSION.split('.').first.to_i > 2
|
|
16
16
|
}
|
17
17
|
let(:priceable_from_string_with_hyphen) { Priceable.create(price: '1-2 EUR' )}
|
18
18
|
let(:priceable_from_string_with_unknown_currency) { Priceable.create(price: '1 TLDR') }
|
19
|
-
let(:priceable_with_infinite_precision) { Priceable.create(price: Money.new(BigDecimal
|
19
|
+
let(:priceable_with_infinite_precision) { Priceable.create(price: Money.new(BigDecimal('100.1'), 'EUR')) }
|
20
20
|
let(:priceable_with_hash_field) {
|
21
21
|
Priceable.create(price_hash: {
|
22
22
|
key1: Money.new(100, "EUR"),
|
@@ -91,7 +91,7 @@ if defined?(Mongoid) && ::Mongoid::VERSION.split('.').first.to_i > 2
|
|
91
91
|
end
|
92
92
|
|
93
93
|
it "correctly mongoizes a Money object to a hash of cents and currency" do
|
94
|
-
expect(priceable_with_infinite_precision.price.cents).to eq(BigDecimal
|
94
|
+
expect(priceable_with_infinite_precision.price.cents).to eq(BigDecimal('100.1'))
|
95
95
|
expect(priceable_with_infinite_precision.price.currency).to eq(Money::Currency.find('EUR'))
|
96
96
|
end
|
97
97
|
end
|
data/spec/mongoid/two_spec.rb
CHANGED
@@ -7,7 +7,7 @@ if defined?(Mongoid) && ::Mongoid::VERSION =~ /^2(.*)/
|
|
7
7
|
let(:priceable_from_nil) { Priceable.create(price: nil) }
|
8
8
|
let(:priceable_from_num) { Priceable.create(price: 1) }
|
9
9
|
let(:priceable_from_string) { Priceable.create(price: '1 EUR' )}
|
10
|
-
let(:priceable_with_infinite_precision) { Priceable.create(price: Money.new(BigDecimal
|
10
|
+
let(:priceable_with_infinite_precision) { Priceable.create(price: Money.new(BigDecimal('100.1'), 'EUR')) }
|
11
11
|
let(:priceable_from_string_with_hyphen) { Priceable.create(price: '1-2 EUR' )}
|
12
12
|
|
13
13
|
context "serialize" do
|
@@ -40,7 +40,7 @@ if defined?(Mongoid) && ::Mongoid::VERSION =~ /^2(.*)/
|
|
40
40
|
end
|
41
41
|
|
42
42
|
it "mongoizes correctly a Money object to a hash of cents and currency" do
|
43
|
-
expect(priceable_with_infinite_precision.price.cents).to eq(BigDecimal
|
43
|
+
expect(priceable_with_infinite_precision.price.cents).to eq(BigDecimal('100.1'))
|
44
44
|
expect(priceable_with_infinite_precision.price.currency).to eq(Money::Currency.find('EUR'))
|
45
45
|
end
|
46
46
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: money-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.13.
|
4
|
+
version: 1.13.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andreas Loupasakis
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2019-
|
13
|
+
date: 2019-10-16 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: money
|
@@ -165,6 +165,7 @@ files:
|
|
165
165
|
- spec/configuration_spec.rb
|
166
166
|
- spec/dummy/README.rdoc
|
167
167
|
- spec/dummy/Rakefile
|
168
|
+
- spec/dummy/app/assets/config/manifest.js
|
168
169
|
- spec/dummy/app/assets/javascripts/application.js
|
169
170
|
- spec/dummy/app/assets/stylesheets/application.css
|
170
171
|
- spec/dummy/app/controllers/application_controller.rb
|
@@ -221,6 +222,7 @@ files:
|
|
221
222
|
- spec/dummy/script/rails
|
222
223
|
- spec/helpers/action_view_extension_spec.rb
|
223
224
|
- spec/helpers/form_helper_spec.rb
|
225
|
+
- spec/money_spec.rb
|
224
226
|
- spec/mongoid/mongoid_spec.rb
|
225
227
|
- spec/mongoid/two_spec.rb
|
226
228
|
- spec/spec_helper.rb
|
@@ -229,7 +231,10 @@ files:
|
|
229
231
|
homepage: https://github.com/RubyMoney/money-rails
|
230
232
|
licenses:
|
231
233
|
- MIT
|
232
|
-
metadata:
|
234
|
+
metadata:
|
235
|
+
changelog_uri: https://github.com/RubyMoney/money-rails/blob/master/CHANGELOG.md
|
236
|
+
source_code_uri: https://github.com/RubyMoney/money-rails/
|
237
|
+
bug_tracker_uri: https://github.com/RubyMoney/money-rails/issues
|
233
238
|
post_install_message:
|
234
239
|
rdoc_options: []
|
235
240
|
require_paths:
|
@@ -245,8 +250,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
245
250
|
- !ruby/object:Gem::Version
|
246
251
|
version: '0'
|
247
252
|
requirements: []
|
248
|
-
|
249
|
-
rubygems_version: 2.6.8
|
253
|
+
rubygems_version: 3.0.3
|
250
254
|
signing_key:
|
251
255
|
specification_version: 4
|
252
256
|
summary: Money gem integration with Rails
|
@@ -257,6 +261,7 @@ test_files:
|
|
257
261
|
- spec/configuration_spec.rb
|
258
262
|
- spec/dummy/README.rdoc
|
259
263
|
- spec/dummy/Rakefile
|
264
|
+
- spec/dummy/app/assets/config/manifest.js
|
260
265
|
- spec/dummy/app/assets/javascripts/application.js
|
261
266
|
- spec/dummy/app/assets/stylesheets/application.css
|
262
267
|
- spec/dummy/app/controllers/application_controller.rb
|
@@ -313,6 +318,7 @@ test_files:
|
|
313
318
|
- spec/dummy/script/rails
|
314
319
|
- spec/helpers/action_view_extension_spec.rb
|
315
320
|
- spec/helpers/form_helper_spec.rb
|
321
|
+
- spec/money_spec.rb
|
316
322
|
- spec/mongoid/mongoid_spec.rb
|
317
323
|
- spec/mongoid/two_spec.rb
|
318
324
|
- spec/spec_helper.rb
|