Enables infinite precision on Money attributes based on column type #1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uses work on
money
gem (ShippingEasy/money#2) and themonetize
gem (ShippingEasy/monetize#1) to add infinite_precision support at the instance level. Leveraging that work these changes set the precision on the Money instance for a model attribute based on that attributes backing column type. If it is backed by a:decimal
column an infinite precision Money instance is created. Otherwise a normal precision instance is created.I considered allowing the precision to be passed as an option on
monetize
, but it seemed awkward to have the precision not match the backing column type. If you suddenly want more / less precision, you can simply change the column. Perhaps that was overly prescriptive though. Similarly, the current approach does not respect the global setting for precisionMoney.default_infinite_precision
and instead favors the precision implied by the backing column type.