money-rails 1.13.2 → 1.13.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|