money 6.13.6 → 6.13.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f41d31f75d5bff854667ff0d38d23b7ffa7e40f4cc4be7732aed48303bf3c3e4
4
- data.tar.gz: 9291b358b1ed9cf0fd5add31910735fcc4ce32d320068e8b3607c2e95e7dd108
3
+ metadata.gz: 7423c34018e037ae7989b60e9cf22972afb7fa8f02037c253b0d3fd30e635fd0
4
+ data.tar.gz: fedcca4c2a3d6918e930526e3a207c419853852604bee8268e2d8046f59ce4cc
5
5
  SHA512:
6
- metadata.gz: 4f3132b6ee0c2f4a4a49128a60316598da0e33f2fcfe9d123feac5f89f2498ffe2a166876ddfb9c628431e727fc2b88d40dc8f6660621a6ba269a36745f4ee92
7
- data.tar.gz: a0ae9e326bea5273d4cb05849cf0efa30c7b210914bdca9a37ed56e5f4aece8d04f22715d326a751e5a9631d671e9bc4e6c04b1726b9b83d6c75feba9d0e094e
6
+ metadata.gz: 53eeeb609a252d244e9d497fd3f480c317561a8b5a1889b297f96d2298bac3c2b87b5ed1af6e5c6dfbbc0264039960f4287bd6752c7090adb7923befca9ba52e
7
+ data.tar.gz: 45cf7fd6f42d16a3924e515e779c283316ca204bba5dade5773f89b44118615a69736bd5231db254fb9857dc8dc5b4938343c9982cc4279d88d586f327b492e1
@@ -1,5 +1,8 @@
1
1
  # Changelog
2
2
 
3
+ ## 6.13.7
4
+ - Improve deprecation warnings for the upcoming major release
5
+
3
6
  ## 6.13.6
4
7
  - Fix a regression introduced in 6.13.5 that broken RatesStore::Memory subclasses
5
8
 
@@ -57,7 +60,7 @@
57
60
  - Wrap all amount parts when `:html_wrap` option is used
58
61
  - Deprecate `#currency_as_string` and `#currency_as_string=` (in favour of `#with_currency`)
59
62
  - Add `#with_currency` for swapping the currency
60
- - Rewrite allocate/split (fixing some penny loosing issues)
63
+ - Rewrite allocate/split (fixing some penny losing issues)
61
64
 
62
65
  ## 6.11.3
63
66
  - Fix regression: if enabled use i18n locales in Money#to_s
@@ -76,7 +79,7 @@
76
79
  - Added new symbol for bitcoin denomination
77
80
  - Specify custom rounding precision when using `infinite_precision`
78
81
  - Allow splits with sums greater than 1
79
- - Prevent arithmetic methods from loosing reference to the bank
82
+ - Prevent arithmetic methods from losing reference to the bank
80
83
  - Fix coerced zero numeric subtraction
81
84
  - Fix south asian formatting to support whole numbers
82
85
  - Refactor formatting logic
data/README.md CHANGED
@@ -423,6 +423,13 @@ Money.new(2.34567).round.format #=> "$0.02"
423
423
  Money.new(2.34567).round(BigDecimal::ROUND_HALF_UP, 2).format #=> "$0.0235"
424
424
  ```
425
425
 
426
+ You can set the default rounding mode by passing one of the `BigDecimal` mode enumerables like so:
427
+ ```ruby
428
+ Money.rounding_mode = BigDecimal::ROUND_HALF_EVEN
429
+ ```
430
+ See [BigDecimal::ROUND_MODE](https://ruby-doc.org/stdlib-2.5.1/libdoc/bigdecimal/rdoc/BigDecimal.html#ROUND_MODE) for more information
431
+
432
+
426
433
  ## Ruby on Rails
427
434
 
428
435
  To integrate money in a Rails application use [money-rails](https://github.com/RubyMoney/money-rails).
@@ -91,35 +91,45 @@ class Money
91
91
  class << self
92
92
 
93
93
  # @!attribute [rw] default_bank
94
- # @return [Money::Bank::Base] Each Money object is associated to a bank
95
- # object, which is responsible for currency exchange. This property
96
- # allows you to specify the default bank object. The default value for
97
- # this property is an instance of +Bank::VariableExchange.+ It allows
98
- # one to specify custom exchange rates.
94
+ # Used to set a default bank for currency exchange.
95
+ #
96
+ # Each Money object is associated with a bank
97
+ # object, which is responsible for currency exchange. This property
98
+ # allows you to specify the default bank object. The default value for
99
+ # this property is an instance of +Bank::VariableExchange.+ It allows
100
+ # one to specify custom exchange rates.
101
+ #
102
+ # @return [Money::Bank::Base]
99
103
  #
100
104
  # @!attribute default_formatting_rules
101
- # @return [Hash] Use this to define a default hash of rules for every time
102
- # +Money#format+ is called. Rules provided on method call will be
103
- # merged with the default ones. To overwrite a rule, just provide the
104
- # intended value while calling +format+.
105
+ # Used to define a default hash of rules for every time
106
+ # +Money#format+ is called. Rules provided on method call will be
107
+ # merged with the default ones. To overwrite a rule, just provide the
108
+ # intended value while calling +format+.
105
109
  #
106
- # @see +Money::Formatting#format+ for more details.
110
+ # @see Money::Formatter#initialize Money::Formatter for more details
107
111
  #
108
112
  # @example
109
113
  # Money.default_formatting_rules = { display_free: true }
110
114
  # Money.new(0, "USD").format # => "free"
111
115
  # Money.new(0, "USD").format(display_free: false) # => "$0.00"
112
116
  #
117
+ # @return [Hash]
118
+ #
113
119
  # @!attribute [rw] use_i18n
114
- # @return [Boolean] Use this to disable i18n even if it's used by other
115
- # objects in your app.
120
+ # Used to disable i18n even if it's used by other components of your app.
121
+ #
122
+ # @return [Boolean]
116
123
  #
117
124
  # @!attribute [rw] infinite_precision
118
- # @return [Boolean] Use this to enable infinite precision cents
125
+ # Used to enable infinite precision cents
126
+ #
127
+ # @return [Boolean]
119
128
  #
120
129
  # @!attribute [rw] conversion_precision
121
- # @return [Integer] Use this to specify precision for converting Rational
122
- # to BigDecimal
130
+ # Used to specify precision for converting Rational to BigDecimal
131
+ #
132
+ # @return [Integer]
123
133
  attr_accessor :default_bank, :default_formatting_rules,
124
134
  :use_i18n, :infinite_precision, :conversion_precision,
125
135
  :locale_backend
@@ -132,8 +142,9 @@ class Money
132
142
  # +Money::Currency+ instance.
133
143
  def self.default_currency
134
144
  if @using_deprecated_default_currency
135
- warn '[WARNING] The default currency will change to `nil` in the next major release. Make ' \
145
+ warn '[WARNING] The default currency will change from `USD` to `nil` in the next major release. Make ' \
136
146
  'sure to set it explicitly using `Money.default_currency=` to avoid potential issues'
147
+ @using_deprecated_default_currency = false
137
148
  end
138
149
 
139
150
  if @default_currency.respond_to?(:call)
@@ -213,19 +224,22 @@ class Money
213
224
  return Thread.current[:money_rounding_mode] if Thread.current[:money_rounding_mode]
214
225
 
215
226
  if @using_deprecated_default_rounding_mode
216
- warn '[WARNING] The default rounding mode will change to `ROUND_HALF_UP` in the next major ' \
217
- 'release. Set it explicitly using `Money.rounding_mode=` to avoid potential problems.'
227
+ warn '[WARNING] The default rounding mode will change from `ROUND_HALF_EVEN` to `ROUND_HALF_UP` in the ' \
228
+ 'next major release. Set it explicitly using `Money.rounding_mode=` to avoid potential problems.'
229
+ @using_deprecated_default_rounding_mode = false
218
230
  end
219
231
 
220
232
  @rounding_mode
221
233
  end
222
234
 
223
- # This method temporarily changes the rounding mode. It will then return the
224
- # results of the block instead.
235
+ # Temporarily changes the rounding mode in a given block.
225
236
  #
226
237
  # @param [BigDecimal::ROUND_MODE] mode
227
238
  #
228
- # @return [BigDecimal::ROUND_MODE,Yield] block results
239
+ # @yield The block within which rounding mode will be changed. Its return
240
+ # value will also be the return value of the whole method.
241
+ #
242
+ # @return [Object] block results
229
243
  #
230
244
  # @example
231
245
  # fee = Money.with_rounding_mode(BigDecimal::ROUND_HALF_UP) do
@@ -531,13 +545,15 @@ class Money
531
545
  exchange_to("EUR")
532
546
  end
533
547
 
534
- # Splits a given amount in parts without loosing pennies. The left-over pennies will be
535
- # distributed round-robin amongst the parties. This means that parties listed first will likely
536
- # receive more pennies than ones that are listed later.
548
+ # Splits a given amount in parts without losing pennies. The left-over pennies will be
549
+ # distributed round-robin amongst the parties. This means that parts listed first will likely
550
+ # receive more pennies than ones listed later.
551
+ #
552
+ # Pass [2, 1, 1] as input to give twice as much to part1 as part2 or
553
+ # part3 which results in 50% of the cash to party1, 25% to part2, and 25% to part3. Passing a
554
+ # number instead of an array will split the amount evenly (without losing pennies when rounding).
537
555
  #
538
- # @param [Array<Numeric>, Numeric] pass [2, 1, 1] to give twice as much to party1 as party2 or
539
- # party3 which results in 50% of the cash to party1, 25% to party2, and 25% to party3. Passing a
540
- # number instead of an array will split the amount evenly (without loosing pennies when rounding).
556
+ # @param [Array<Numeric>, Numeric] parts how amount should be distributed to parts
541
557
  #
542
558
  # @return [Array<Money>]
543
559
  #
@@ -575,7 +591,7 @@ class Money
575
591
 
576
592
  # Creates a formatted price string according to several rules.
577
593
  #
578
- # @param [Hash] See Money::Formatter for the list of formatting options
594
+ # @param [Hash] rules See {Money::Formatter Money::Formatter} for the list of formatting options
579
595
  #
580
596
  # @return [String]
581
597
  #
@@ -2,9 +2,9 @@
2
2
 
3
3
  class Money
4
4
  class Allocation
5
- # Splits a given amount in parts without loosing pennies.
6
- # The left-over pennies will be distributed round-robin amongst the parties. This means that
7
- # parties listed first will likely receive more pennies than ones that are listed later.
5
+ # Splits a given amount in parts without losing pennies.
6
+ # The left-over pennies will be distributed round-robin amongst the parts. This means that
7
+ # parts listed first will likely receive more pennies than the ones listed later.
8
8
  #
9
9
  # The results should always add up to the original amount.
10
10
  #
@@ -1,3 +1,3 @@
1
1
  class Money
2
- VERSION = '6.13.6'
2
+ VERSION = '6.13.7'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: money
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.13.6
4
+ version: 6.13.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shane Emmons
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-12-04 00:00:00.000000000 Z
12
+ date: 2020-01-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: i18n