money-rails 1.15.0 → 2.0.0

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.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -6
  3. data/LICENSE +1 -1
  4. data/README.md +121 -102
  5. data/config/locales/money.pt.yml +4 -0
  6. data/lib/money-rails/active_job/money_serializer.rb +19 -0
  7. data/lib/money-rails/active_record/monetizable.rb +17 -7
  8. data/lib/money-rails/configuration.rb +2 -2
  9. data/lib/money-rails/helpers/action_view_extension.rb +1 -1
  10. data/lib/money-rails/hooks.rb +11 -0
  11. data/lib/money-rails/version.rb +3 -1
  12. data/money-rails.gemspec +13 -26
  13. metadata +16 -225
  14. data/Rakefile +0 -84
  15. data/spec/active_record/migration_extensions/schema_statements_spec.rb +0 -101
  16. data/spec/active_record/migration_extensions/table_spec.rb +0 -104
  17. data/spec/active_record/monetizable_spec.rb +0 -1062
  18. data/spec/configuration_spec.rb +0 -147
  19. data/spec/dummy/README.rdoc +0 -261
  20. data/spec/dummy/Rakefile +0 -7
  21. data/spec/dummy/app/assets/config/manifest.js +0 -0
  22. data/spec/dummy/app/assets/javascripts/application.js +0 -15
  23. data/spec/dummy/app/assets/stylesheets/application.css +0 -13
  24. data/spec/dummy/app/controllers/application_controller.rb +0 -3
  25. data/spec/dummy/app/helpers/application_helper.rb +0 -2
  26. data/spec/dummy/app/models/dummy_product.rb +0 -8
  27. data/spec/dummy/app/models/priceable.rb +0 -8
  28. data/spec/dummy/app/models/product.rb +0 -59
  29. data/spec/dummy/app/models/service.rb +0 -5
  30. data/spec/dummy/app/models/transaction.rb +0 -13
  31. data/spec/dummy/app/views/layouts/application.html.erb +0 -14
  32. data/spec/dummy/config/application.rb +0 -66
  33. data/spec/dummy/config/boot.rb +0 -13
  34. data/spec/dummy/config/database.yml +0 -25
  35. data/spec/dummy/config/environment.rb +0 -5
  36. data/spec/dummy/config/environments/development.rb +0 -30
  37. data/spec/dummy/config/environments/production.rb +0 -69
  38. data/spec/dummy/config/environments/test.rb +0 -36
  39. data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
  40. data/spec/dummy/config/initializers/inflections.rb +0 -15
  41. data/spec/dummy/config/initializers/mime_types.rb +0 -5
  42. data/spec/dummy/config/initializers/money.rb +0 -31
  43. data/spec/dummy/config/initializers/secret_token.rb +0 -7
  44. data/spec/dummy/config/initializers/session_store.rb +0 -8
  45. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
  46. data/spec/dummy/config/locales/en-GB.yml +0 -11
  47. data/spec/dummy/config/locales/en-US.yml +0 -5
  48. data/spec/dummy/config/locales/en.yml +0 -5
  49. data/spec/dummy/config/locales/it.yml +0 -11
  50. data/spec/dummy/config/mongoid.yml +0 -29
  51. data/spec/dummy/config/routes.rb +0 -3
  52. data/spec/dummy/config.ru +0 -4
  53. data/spec/dummy/db/migrate/20120331190108_create_products.rb +0 -10
  54. data/spec/dummy/db/migrate/20120402080348_add_bonus_cents_to_product.rb +0 -6
  55. data/spec/dummy/db/migrate/20120524052716_create_services.rb +0 -10
  56. data/spec/dummy/db/migrate/20120528181002_create_transactions.rb +0 -11
  57. data/spec/dummy/db/migrate/20120528210103_create_dummy_products.rb +0 -10
  58. data/spec/dummy/db/migrate/20120607210247_add_column_that_allows_nil.rb +0 -5
  59. data/spec/dummy/db/migrate/20120712202655_add_sale_price_cents_to_product.rb +0 -7
  60. data/spec/dummy/db/migrate/20130124023419_add_price_in_a_range_cents_to_products.rb +0 -5
  61. data/spec/dummy/db/migrate/20140110194016_add_validates_method_amount_cents_to_products.rb +0 -5
  62. data/spec/dummy/db/migrate/20141005075025_add_aliased_attr_to_products.rb +0 -5
  63. data/spec/dummy/db/migrate/20150107061030_add_delivery_fee_cents_and_restock_fee_cents_to_product.rb +0 -6
  64. data/spec/dummy/db/migrate/20150126231442_add_reduced_price_to_products.rb +0 -6
  65. data/spec/dummy/db/migrate/20150213234410_add_special_price_to_products.rb +0 -5
  66. data/spec/dummy/db/migrate/20150217222612_add_lambda_price_to_products.rb +0 -5
  67. data/spec/dummy/db/migrate/20150303222230_add_skip_validation_price_cents_to_products.rb +0 -5
  68. data/spec/dummy/db/migrate/20151026220420_add_optional_amount_to_transactions.rb +0 -5
  69. data/spec/dummy/db/schema.rb +0 -59
  70. data/spec/dummy/db/structure.sql +0 -21
  71. data/spec/dummy/public/404.html +0 -26
  72. data/spec/dummy/public/422.html +0 -26
  73. data/spec/dummy/public/500.html +0 -25
  74. data/spec/dummy/public/favicon.ico +0 -0
  75. data/spec/dummy/script/rails +0 -6
  76. data/spec/helpers/action_view_extension_spec.rb +0 -189
  77. data/spec/helpers/form_helper_spec.rb +0 -19
  78. data/spec/money_spec.rb +0 -40
  79. data/spec/mongoid/mongoid_spec.rb +0 -130
  80. data/spec/mongoid/two_spec.rb +0 -80
  81. data/spec/spec_helper.rb +0 -23
  82. data/spec/support/database_cleaner.rb +0 -14
  83. data/spec/test_helpers_spec.rb +0 -72
@@ -20,7 +20,7 @@ module MoneyRails
20
20
  # Configuration parameters
21
21
 
22
22
  def default_currency
23
- Money::Currency.new(Money.default_currency)
23
+ Money::Currency.new(Money.default_currency) if Money.default_currency
24
24
  end
25
25
 
26
26
  # Set default currency of money library
@@ -35,7 +35,7 @@ module MoneyRails
35
35
  end
36
36
 
37
37
  def set_currency_column_for_default_currency!
38
- iso_code = default_currency.iso_code
38
+ iso_code = default_currency && default_currency.iso_code
39
39
  currency_column.merge! default: iso_code
40
40
  end
41
41
 
@@ -53,7 +53,7 @@ module MoneyRails
53
53
 
54
54
  value = value.to_money
55
55
 
56
- format "%0#{value.currency.exponent}d", (value % value.currency.subunit_to_unit).cents
56
+ format "%0#{value.currency.exponent}d", (value.abs % value.currency.subunit_to_unit).cents
57
57
  end
58
58
  end
59
59
  end
@@ -56,6 +56,17 @@ module MoneyRails
56
56
  require 'money-rails/helpers/action_view_extension'
57
57
  ::ActionView::Base.send :include, MoneyRails::ActionViewExtension
58
58
  end
59
+
60
+ # For ActiveSupport
61
+ ActiveSupport.on_load(:active_job) do |v|
62
+ if defined?(::ActiveJob::Serializers)
63
+ require 'money-rails/active_job/money_serializer'
64
+ Rails.application.config.active_job.tap do |config|
65
+ config.custom_serializers ||= []
66
+ config.custom_serializers << MoneyRails::ActiveJob::MoneySerializer
67
+ end
68
+ end
69
+ end
59
70
  end
60
71
  end
61
72
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module MoneyRails
2
- VERSION = '1.15.0'
4
+ VERSION = "2.0.0"
3
5
  end
data/money-rails.gemspec CHANGED
@@ -1,5 +1,6 @@
1
- # -*- encoding: utf-8 -*-
2
- require File.expand_path('../lib/money-rails/version', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ require File.expand_path("lib/money-rails/version", __dir__)
3
4
 
4
5
  Gem::Specification.new do |s|
5
6
  s.name = "money-rails"
@@ -12,35 +13,21 @@ Gem::Specification.new do |s|
12
13
  s.summary = "Money gem integration with Rails"
13
14
  s.homepage = "https://github.com/RubyMoney/money-rails"
14
15
 
15
- s.files = Dir.glob("{lib,spec,config}/**/*")
16
- s.files += %w(CHANGELOG.md LICENSE README.md)
17
- s.files += %w(Rakefile money-rails.gemspec)
18
-
19
- s.files.delete("spec/dummy/log")
20
- s.files.delete("spec/dummy/log/development.log")
21
- s.files.delete("spec/dummy/log/test.log")
22
- s.files.delete("spec/dummy/db/development.sqlite3")
23
- s.files.delete("spec/dummy/db/test.sqlite3")
24
-
25
- s.test_files = s.files.grep(/^spec\//)
16
+ s.files = `git ls-files -z -- lib/ config/ CHANGELOG.md LICENSE *.gemspec README.md`.split("\x0")
26
17
 
27
18
  s.require_path = "lib"
28
19
 
29
- s.add_dependency "money", "~> 6.13"
30
- s.add_dependency "monetize", "~> 1.9"
31
- s.add_dependency "activesupport", ">= 3.0"
32
- s.add_dependency "railties", ">= 3.0"
33
- s.add_dependency "mime-types", "< 3" if RUBY_VERSION < '2.0' # mime-types > 3 depends on mime-types-data, which doesn't support ruby 1.9
20
+ s.required_ruby_version = ">= 3.1"
34
21
 
35
- s.add_development_dependency "rails", ">= 3.0"
36
- s.add_development_dependency "rspec-rails", "~> 3.0"
37
- s.add_development_dependency 'database_cleaner', '~> 1.6.1'
38
- s.add_development_dependency 'test-unit', '~> 3.0' if RUBY_VERSION >= '2.2'
39
- s.add_development_dependency 'bundler'
22
+ s.add_dependency "money", "~> 7.0"
23
+ s.add_dependency "monetize", "~> 2.0"
24
+ s.add_dependency "activesupport", ">= 6.1"
25
+ s.add_dependency "railties", ">= 6.1"
40
26
 
41
27
  if s.respond_to?(:metadata)
42
- s.metadata['changelog_uri'] = 'https://github.com/RubyMoney/money-rails/blob/master/CHANGELOG.md'
43
- s.metadata['source_code_uri'] = 'https://github.com/RubyMoney/money-rails/'
44
- s.metadata['bug_tracker_uri'] = 'https://github.com/RubyMoney/money-rails/issues'
28
+ s.metadata["changelog_uri"] = "https://github.com/RubyMoney/money-rails/blob/master/CHANGELOG.md"
29
+ s.metadata["source_code_uri"] = "https://github.com/RubyMoney/money-rails/"
30
+ s.metadata["bug_tracker_uri"] = "https://github.com/RubyMoney/money-rails/issues"
31
+ s.metadata["rubygems_mfa_required"] = "true"
45
32
  end
46
33
  end
metadata CHANGED
@@ -1,16 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: money-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.15.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andreas Loupasakis
8
8
  - Shane Emmons
9
9
  - Simone Carletti
10
- autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2021-09-27 00:00:00.000000000 Z
12
+ date: 2025-12-11 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: money
@@ -18,126 +17,56 @@ dependencies:
18
17
  requirements:
19
18
  - - "~>"
20
19
  - !ruby/object:Gem::Version
21
- version: '6.13'
20
+ version: '7.0'
22
21
  type: :runtime
23
22
  prerelease: false
24
23
  version_requirements: !ruby/object:Gem::Requirement
25
24
  requirements:
26
25
  - - "~>"
27
26
  - !ruby/object:Gem::Version
28
- version: '6.13'
27
+ version: '7.0'
29
28
  - !ruby/object:Gem::Dependency
30
29
  name: monetize
31
30
  requirement: !ruby/object:Gem::Requirement
32
31
  requirements:
33
32
  - - "~>"
34
33
  - !ruby/object:Gem::Version
35
- version: '1.9'
34
+ version: '2.0'
36
35
  type: :runtime
37
36
  prerelease: false
38
37
  version_requirements: !ruby/object:Gem::Requirement
39
38
  requirements:
40
39
  - - "~>"
41
40
  - !ruby/object:Gem::Version
42
- version: '1.9'
41
+ version: '2.0'
43
42
  - !ruby/object:Gem::Dependency
44
43
  name: activesupport
45
44
  requirement: !ruby/object:Gem::Requirement
46
45
  requirements:
47
46
  - - ">="
48
47
  - !ruby/object:Gem::Version
49
- version: '3.0'
48
+ version: '6.1'
50
49
  type: :runtime
51
50
  prerelease: false
52
51
  version_requirements: !ruby/object:Gem::Requirement
53
52
  requirements:
54
53
  - - ">="
55
54
  - !ruby/object:Gem::Version
56
- version: '3.0'
55
+ version: '6.1'
57
56
  - !ruby/object:Gem::Dependency
58
57
  name: railties
59
58
  requirement: !ruby/object:Gem::Requirement
60
59
  requirements:
61
60
  - - ">="
62
61
  - !ruby/object:Gem::Version
63
- version: '3.0'
62
+ version: '6.1'
64
63
  type: :runtime
65
64
  prerelease: false
66
65
  version_requirements: !ruby/object:Gem::Requirement
67
66
  requirements:
68
67
  - - ">="
69
68
  - !ruby/object:Gem::Version
70
- version: '3.0'
71
- - !ruby/object:Gem::Dependency
72
- name: rails
73
- requirement: !ruby/object:Gem::Requirement
74
- requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- version: '3.0'
78
- type: :development
79
- prerelease: false
80
- version_requirements: !ruby/object:Gem::Requirement
81
- requirements:
82
- - - ">="
83
- - !ruby/object:Gem::Version
84
- version: '3.0'
85
- - !ruby/object:Gem::Dependency
86
- name: rspec-rails
87
- requirement: !ruby/object:Gem::Requirement
88
- requirements:
89
- - - "~>"
90
- - !ruby/object:Gem::Version
91
- version: '3.0'
92
- type: :development
93
- prerelease: false
94
- version_requirements: !ruby/object:Gem::Requirement
95
- requirements:
96
- - - "~>"
97
- - !ruby/object:Gem::Version
98
- version: '3.0'
99
- - !ruby/object:Gem::Dependency
100
- name: database_cleaner
101
- requirement: !ruby/object:Gem::Requirement
102
- requirements:
103
- - - "~>"
104
- - !ruby/object:Gem::Version
105
- version: 1.6.1
106
- type: :development
107
- prerelease: false
108
- version_requirements: !ruby/object:Gem::Requirement
109
- requirements:
110
- - - "~>"
111
- - !ruby/object:Gem::Version
112
- version: 1.6.1
113
- - !ruby/object:Gem::Dependency
114
- name: test-unit
115
- requirement: !ruby/object:Gem::Requirement
116
- requirements:
117
- - - "~>"
118
- - !ruby/object:Gem::Version
119
- version: '3.0'
120
- type: :development
121
- prerelease: false
122
- version_requirements: !ruby/object:Gem::Requirement
123
- requirements:
124
- - - "~>"
125
- - !ruby/object:Gem::Version
126
- version: '3.0'
127
- - !ruby/object:Gem::Dependency
128
- name: bundler
129
- requirement: !ruby/object:Gem::Requirement
130
- requirements:
131
- - - ">="
132
- - !ruby/object:Gem::Version
133
- version: '0'
134
- type: :development
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- requirements:
138
- - - ">="
139
- - !ruby/object:Gem::Version
140
- version: '0'
69
+ version: '6.1'
141
70
  description: This library provides integration of RubyMoney - Money gem with Rails
142
71
  email:
143
72
  - alup.rubymoney@gmail.com
@@ -148,13 +77,14 @@ files:
148
77
  - CHANGELOG.md
149
78
  - LICENSE
150
79
  - README.md
151
- - Rakefile
152
80
  - config/locales/money.da.yml
153
81
  - config/locales/money.en.yml
82
+ - config/locales/money.pt.yml
154
83
  - config/locales/money.ru.yml
155
84
  - lib/generators/money_rails/initializer_generator.rb
156
85
  - lib/generators/templates/money.rb
157
86
  - lib/money-rails.rb
87
+ - lib/money-rails/active_job/money_serializer.rb
158
88
  - lib/money-rails/active_model/validator.rb
159
89
  - lib/money-rails/active_record/migration_extensions/options_extractor.rb
160
90
  - lib/money-rails/active_record/migration_extensions/schema_statements.rb
@@ -175,75 +105,6 @@ files:
175
105
  - lib/money-rails/test_helpers.rb
176
106
  - lib/money-rails/version.rb
177
107
  - money-rails.gemspec
178
- - spec/active_record/migration_extensions/schema_statements_spec.rb
179
- - spec/active_record/migration_extensions/table_spec.rb
180
- - spec/active_record/monetizable_spec.rb
181
- - spec/configuration_spec.rb
182
- - spec/dummy/README.rdoc
183
- - spec/dummy/Rakefile
184
- - spec/dummy/app/assets/config/manifest.js
185
- - spec/dummy/app/assets/javascripts/application.js
186
- - spec/dummy/app/assets/stylesheets/application.css
187
- - spec/dummy/app/controllers/application_controller.rb
188
- - spec/dummy/app/helpers/application_helper.rb
189
- - spec/dummy/app/models/dummy_product.rb
190
- - spec/dummy/app/models/priceable.rb
191
- - spec/dummy/app/models/product.rb
192
- - spec/dummy/app/models/service.rb
193
- - spec/dummy/app/models/transaction.rb
194
- - spec/dummy/app/views/layouts/application.html.erb
195
- - spec/dummy/config.ru
196
- - spec/dummy/config/application.rb
197
- - spec/dummy/config/boot.rb
198
- - spec/dummy/config/database.yml
199
- - spec/dummy/config/environment.rb
200
- - spec/dummy/config/environments/development.rb
201
- - spec/dummy/config/environments/production.rb
202
- - spec/dummy/config/environments/test.rb
203
- - spec/dummy/config/initializers/backtrace_silencers.rb
204
- - spec/dummy/config/initializers/inflections.rb
205
- - spec/dummy/config/initializers/mime_types.rb
206
- - spec/dummy/config/initializers/money.rb
207
- - spec/dummy/config/initializers/secret_token.rb
208
- - spec/dummy/config/initializers/session_store.rb
209
- - spec/dummy/config/initializers/wrap_parameters.rb
210
- - spec/dummy/config/locales/en-GB.yml
211
- - spec/dummy/config/locales/en-US.yml
212
- - spec/dummy/config/locales/en.yml
213
- - spec/dummy/config/locales/it.yml
214
- - spec/dummy/config/mongoid.yml
215
- - spec/dummy/config/routes.rb
216
- - spec/dummy/db/migrate/20120331190108_create_products.rb
217
- - spec/dummy/db/migrate/20120402080348_add_bonus_cents_to_product.rb
218
- - spec/dummy/db/migrate/20120524052716_create_services.rb
219
- - spec/dummy/db/migrate/20120528181002_create_transactions.rb
220
- - spec/dummy/db/migrate/20120528210103_create_dummy_products.rb
221
- - spec/dummy/db/migrate/20120607210247_add_column_that_allows_nil.rb
222
- - spec/dummy/db/migrate/20120712202655_add_sale_price_cents_to_product.rb
223
- - spec/dummy/db/migrate/20130124023419_add_price_in_a_range_cents_to_products.rb
224
- - spec/dummy/db/migrate/20140110194016_add_validates_method_amount_cents_to_products.rb
225
- - spec/dummy/db/migrate/20141005075025_add_aliased_attr_to_products.rb
226
- - spec/dummy/db/migrate/20150107061030_add_delivery_fee_cents_and_restock_fee_cents_to_product.rb
227
- - spec/dummy/db/migrate/20150126231442_add_reduced_price_to_products.rb
228
- - spec/dummy/db/migrate/20150213234410_add_special_price_to_products.rb
229
- - spec/dummy/db/migrate/20150217222612_add_lambda_price_to_products.rb
230
- - spec/dummy/db/migrate/20150303222230_add_skip_validation_price_cents_to_products.rb
231
- - spec/dummy/db/migrate/20151026220420_add_optional_amount_to_transactions.rb
232
- - spec/dummy/db/schema.rb
233
- - spec/dummy/db/structure.sql
234
- - spec/dummy/public/404.html
235
- - spec/dummy/public/422.html
236
- - spec/dummy/public/500.html
237
- - spec/dummy/public/favicon.ico
238
- - spec/dummy/script/rails
239
- - spec/helpers/action_view_extension_spec.rb
240
- - spec/helpers/form_helper_spec.rb
241
- - spec/money_spec.rb
242
- - spec/mongoid/mongoid_spec.rb
243
- - spec/mongoid/two_spec.rb
244
- - spec/spec_helper.rb
245
- - spec/support/database_cleaner.rb
246
- - spec/test_helpers_spec.rb
247
108
  homepage: https://github.com/RubyMoney/money-rails
248
109
  licenses:
249
110
  - MIT
@@ -251,7 +112,7 @@ metadata:
251
112
  changelog_uri: https://github.com/RubyMoney/money-rails/blob/master/CHANGELOG.md
252
113
  source_code_uri: https://github.com/RubyMoney/money-rails/
253
114
  bug_tracker_uri: https://github.com/RubyMoney/money-rails/issues
254
- post_install_message:
115
+ rubygems_mfa_required: 'true'
255
116
  rdoc_options: []
256
117
  require_paths:
257
118
  - lib
@@ -259,84 +120,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
259
120
  requirements:
260
121
  - - ">="
261
122
  - !ruby/object:Gem::Version
262
- version: '0'
123
+ version: '3.1'
263
124
  required_rubygems_version: !ruby/object:Gem::Requirement
264
125
  requirements:
265
126
  - - ">="
266
127
  - !ruby/object:Gem::Version
267
128
  version: '0'
268
129
  requirements: []
269
- rubygems_version: 3.2.22
270
- signing_key:
130
+ rubygems_version: 3.6.5
271
131
  specification_version: 4
272
132
  summary: Money gem integration with Rails
273
- test_files:
274
- - spec/active_record/migration_extensions/schema_statements_spec.rb
275
- - spec/active_record/migration_extensions/table_spec.rb
276
- - spec/active_record/monetizable_spec.rb
277
- - spec/configuration_spec.rb
278
- - spec/dummy/README.rdoc
279
- - spec/dummy/Rakefile
280
- - spec/dummy/app/assets/config/manifest.js
281
- - spec/dummy/app/assets/javascripts/application.js
282
- - spec/dummy/app/assets/stylesheets/application.css
283
- - spec/dummy/app/controllers/application_controller.rb
284
- - spec/dummy/app/helpers/application_helper.rb
285
- - spec/dummy/app/models/dummy_product.rb
286
- - spec/dummy/app/models/priceable.rb
287
- - spec/dummy/app/models/product.rb
288
- - spec/dummy/app/models/service.rb
289
- - spec/dummy/app/models/transaction.rb
290
- - spec/dummy/app/views/layouts/application.html.erb
291
- - spec/dummy/config.ru
292
- - spec/dummy/config/application.rb
293
- - spec/dummy/config/boot.rb
294
- - spec/dummy/config/database.yml
295
- - spec/dummy/config/environment.rb
296
- - spec/dummy/config/environments/development.rb
297
- - spec/dummy/config/environments/production.rb
298
- - spec/dummy/config/environments/test.rb
299
- - spec/dummy/config/initializers/backtrace_silencers.rb
300
- - spec/dummy/config/initializers/inflections.rb
301
- - spec/dummy/config/initializers/mime_types.rb
302
- - spec/dummy/config/initializers/money.rb
303
- - spec/dummy/config/initializers/secret_token.rb
304
- - spec/dummy/config/initializers/session_store.rb
305
- - spec/dummy/config/initializers/wrap_parameters.rb
306
- - spec/dummy/config/locales/en-GB.yml
307
- - spec/dummy/config/locales/en-US.yml
308
- - spec/dummy/config/locales/en.yml
309
- - spec/dummy/config/locales/it.yml
310
- - spec/dummy/config/mongoid.yml
311
- - spec/dummy/config/routes.rb
312
- - spec/dummy/db/migrate/20120331190108_create_products.rb
313
- - spec/dummy/db/migrate/20120402080348_add_bonus_cents_to_product.rb
314
- - spec/dummy/db/migrate/20120524052716_create_services.rb
315
- - spec/dummy/db/migrate/20120528181002_create_transactions.rb
316
- - spec/dummy/db/migrate/20120528210103_create_dummy_products.rb
317
- - spec/dummy/db/migrate/20120607210247_add_column_that_allows_nil.rb
318
- - spec/dummy/db/migrate/20120712202655_add_sale_price_cents_to_product.rb
319
- - spec/dummy/db/migrate/20130124023419_add_price_in_a_range_cents_to_products.rb
320
- - spec/dummy/db/migrate/20140110194016_add_validates_method_amount_cents_to_products.rb
321
- - spec/dummy/db/migrate/20141005075025_add_aliased_attr_to_products.rb
322
- - spec/dummy/db/migrate/20150107061030_add_delivery_fee_cents_and_restock_fee_cents_to_product.rb
323
- - spec/dummy/db/migrate/20150126231442_add_reduced_price_to_products.rb
324
- - spec/dummy/db/migrate/20150213234410_add_special_price_to_products.rb
325
- - spec/dummy/db/migrate/20150217222612_add_lambda_price_to_products.rb
326
- - spec/dummy/db/migrate/20150303222230_add_skip_validation_price_cents_to_products.rb
327
- - spec/dummy/db/migrate/20151026220420_add_optional_amount_to_transactions.rb
328
- - spec/dummy/db/schema.rb
329
- - spec/dummy/db/structure.sql
330
- - spec/dummy/public/404.html
331
- - spec/dummy/public/422.html
332
- - spec/dummy/public/500.html
333
- - spec/dummy/public/favicon.ico
334
- - spec/dummy/script/rails
335
- - spec/helpers/action_view_extension_spec.rb
336
- - spec/helpers/form_helper_spec.rb
337
- - spec/money_spec.rb
338
- - spec/mongoid/mongoid_spec.rb
339
- - spec/mongoid/two_spec.rb
340
- - spec/spec_helper.rb
341
- - spec/support/database_cleaner.rb
342
- - spec/test_helpers_spec.rb
133
+ test_files: []
data/Rakefile DELETED
@@ -1,84 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'rubygems'
4
- require 'bundler'
5
- require 'bundler/gem_tasks'
6
-
7
- begin
8
- Bundler.setup(:default, :development)
9
- rescue Bundler::BundlerError => e
10
- $stderr.puts e.message
11
- $stderr.puts "Run `bundle install` to install missing gems"
12
- exit e.status_code
13
- end
14
-
15
- APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
16
- GEMFILES_PATH = 'gemfiles/*.gemfile'.freeze
17
-
18
- load 'rails/tasks/engine.rake' if File.exist?(APP_RAKEFILE)
19
-
20
- require 'rake'
21
- require 'rspec/core/rake_task'
22
-
23
- RSpec::Core::RakeTask.new
24
-
25
- task default: "spec:all"
26
- task test: :spec
27
- task spec: :prepare_test_env
28
-
29
- desc "Prepare money-rails engine test environment"
30
- task :prepare_test_env do
31
- Rake.application['app:db:drop:all'].invoke
32
- Rake.application['app:db:create'].invoke if Rails::VERSION::MAJOR >= 5
33
- Rake.application['app:db:migrate'].invoke
34
- Rake.application['app:db:test:prepare'].invoke
35
- end
36
-
37
- def run_with_gemfile(gemfile)
38
- Bundler.with_clean_env do
39
- begin
40
- sh "BUNDLE_GEMFILE='#{gemfile}' bundle install --quiet"
41
- Rake.application['app:db:create'].invoke
42
- Rake.application['app:db:test:prepare'].invoke
43
- sh "BUNDLE_GEMFILE='#{gemfile}' bundle exec rake spec"
44
- ensure
45
- Rake.application['app:db:drop:all'].execute
46
- end
47
- end
48
- end
49
-
50
- namespace :spec do
51
- frameworks_versions = {}
52
-
53
- Dir[GEMFILES_PATH].each do |gemfile|
54
- file_name = File.basename(gemfile, '.gemfile')
55
- framework, version = file_name.split(/(\d+)/)
56
- major, minor = version.split(//)
57
-
58
- # Ruby 3 exclusions
59
- if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.0.0')
60
- # Rails 5 does not support ruby-3.0.0 https://github.com/rails/rails/issues/40938#issuecomment-751569171
61
- # Mongoid gem does not yet support ruby-3.0.0 https://github.com/mongodb/mongoid#compatibility
62
- next if framework == 'mongoid' || (framework == 'rails' && version == "5")
63
- end
64
-
65
- frameworks_versions[framework] ||= []
66
- frameworks_versions[framework] << file_name
67
-
68
- desc "Run Tests against #{framework} #{[major, minor].compact.join('.')}"
69
- task(file_name) { run_with_gemfile gemfile }
70
- end
71
-
72
- frameworks_versions.each do |framework, versions|
73
- desc "Run Tests against all supported #{framework} versions"
74
- task framework => versions
75
- end
76
-
77
- desc 'Run Tests against all ORMs'
78
- task all: frameworks_versions.keys
79
- end
80
-
81
- desc "Update CONTRIBUTORS file"
82
- task :contributors do
83
- sh "git shortlog -s | awk '{ print $2 \" \" $3 }' > CONTRIBUTORS"
84
- end
@@ -1,101 +0,0 @@
1
- require 'spec_helper'
2
-
3
- class Item < ActiveRecord::Base; end
4
-
5
- if defined? ActiveRecord
6
- describe MoneyRails::ActiveRecord::MigrationExtensions::SchemaStatements do
7
- before :all do
8
- @connection = ActiveRecord::Base.connection
9
- @connection.drop_table :items if @connection.table_exists? :items
10
- @connection.create_table :items
11
- @connection.send :extend, MoneyRails::ActiveRecord::MigrationExtensions::SchemaStatements
12
- end
13
-
14
- describe 'add_money' do
15
- before do
16
- @connection.add_money :items, :price
17
- @connection.add_money :items, :price_without_currency, currency: { present: false }
18
- @connection.add_money :items, :price_with_full_options, amount: {
19
- prefix: :prefix_,
20
- postfix: :_postfix,
21
- type: :decimal,
22
- precision: 4,
23
- scale: 2,
24
- default: 1,
25
- null: true
26
- }, currency: {
27
- prefix: :currency_prefix,
28
- postfix: :currency_postfix,
29
- column_name: :currency
30
- }
31
-
32
- Item.reset_column_information
33
- end
34
-
35
- context 'default options' do
36
- describe 'amount' do
37
- subject { Item.columns_hash['price_cents'] }
38
-
39
- it { expect(subject.default.to_i).to eq(0) }
40
- it { expect(Item.new.public_send(subject.name)).to eq(0) }
41
- it { expect(subject.null).to be(false) }
42
- it { expect(subject.type).to eq(:integer) }
43
- end
44
-
45
- describe 'currency' do
46
- subject { Item.columns_hash['price_currency'] }
47
-
48
- # set in spec/dummy/config/initializers/money.rb
49
- it { expect(subject.default).to eq('EUR') }
50
-
51
- it { expect(subject.null).to be(false) }
52
- it { expect(subject.type).to eq(:string) }
53
- end
54
- end
55
-
56
- context 'without currency column' do
57
- it { expect(Item.columns_hash['price_without_currency_cents']).not_to be nil }
58
- it { expect(Item.columns_hash['price_without_currency_currency']).to be nil }
59
- end
60
-
61
- context 'full options' do
62
- describe 'amount' do
63
- subject { Item.columns_hash['prefix_price_with_full_options_postfix'] }
64
-
65
- it { expect(subject.default.to_i).to eq(1) }
66
- it { expect(Item.new.public_send(subject.name)).to eq(1) }
67
- it { expect(subject.null).to be(true) }
68
- it { expect(subject.type).to eq(:decimal) }
69
- it { expect(subject.precision).to eq(4) }
70
- it { expect(subject.scale).to eq(2) }
71
- end
72
-
73
- describe 'currency' do
74
- it { expect(Item.columns_hash['currency']).not_to be nil }
75
- end
76
- end
77
- end
78
-
79
- describe 'remove_money' do
80
- before do
81
- @connection.add_money :items, :price
82
- @connection.add_money :items, :price_without_currency, currency: { present: false }
83
- @connection.add_money :items, :price_with_full_options, amount: { prefix: :prefix_, postfix: :_postfix }, currency: { column_name: :currency }
84
-
85
- @connection.remove_money :items, :price
86
- @connection.remove_money :items, :price_without_currency, currency: { present: false }
87
- @connection.remove_money :items, :price_with_full_options, amount: { prefix: :prefix_, postfix: :_postfix }, currency: { column_name: :currency }
88
-
89
- Item.reset_column_information
90
- end
91
-
92
- it { expect(Item.columns_hash['price_cents']).to be nil }
93
- it { expect(Item.columns_hash['price_currency']).to be nil }
94
-
95
- it { expect(Item.columns_hash['price_without_currency_cents']).to be nil }
96
-
97
- it { expect(Item.columns_hash['prefix_price_with_full_options_postfix']).to be nil }
98
- it { expect(Item.columns_hash['currency']).to be nil }
99
- end
100
- end
101
- end