money_helper 3.0.1 → 3.0.2

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: 655460145cd04f3561bb2e212287b760bb0dd93c4eb97c5533a2d40b4aff8482
4
- data.tar.gz: 904a30dd0a437daf2f93d411a3d65e456e41420af74943d716729594905df180
3
+ metadata.gz: bb985ae46b6f1d331cdb546b36399e4fc2feb0c8124386c8caf6d928cb219d85
4
+ data.tar.gz: a76132d24051dcd2a01e56562f85062fa1a1d7f2e90478c99ae2ed84d755f243
5
5
  SHA512:
6
- metadata.gz: b3cd552b0e52f2d0ff8fc2456598aa19931932609f46eaa89e896e08e5744f00279627cd58531c9113fc236bc457af6fa5101a38ea55206168e1a33e58f8c684
7
- data.tar.gz: 4c1298bd61b4121c8e652afda3c4f4a7247bcd790a1450927b96d7cbe3c82aee73bcb4f971647be98e7aa83f15e842b4b3dccc0ac936dd6d49f61e54705cedc6
6
+ metadata.gz: 65875f337079054720b379eb8201b6c2a37168aafa60034f76e9dbf43e062cacb43c1bdf4a4e174a03a44692a64c73c676a11359f4b54766d48f15d835216301
7
+ data.tar.gz: 3f9168ad1f54e3d3b4ad333596b79de2a875cd2d1aa039ea1c2a185971b8636ff8446ba2223958104f3b4846927e928be627f4134e48c3f828f91b13c4c16998
data/CHANGELOG.md CHANGED
@@ -1,7 +1,12 @@
1
- ### 3.0.1 (Next)
1
+ ### X.X.X (Next)
2
2
 
3
- * [#29](https://github.com/artsy/money_helper/pull/29): Update `money_range_to_text` to receive `with_currency` parameter for optional ISO code printing - [@leamotta](https://github.com/leamotta).
4
3
  * Your contribution here.
4
+ ### 3.0.2 (2023-03-22)
5
+
6
+ * [#30](https://github.com/artsy/money_helper/pull/30): Update `money_range_to_text` to receive `format` parameter for optional formatting - [@leamotta](https://github.com/leamotta).
7
+ ### 3.0.1 (2023-03-21)
8
+
9
+ * [#29](https://github.com/artsy/money_helper/pull/29): Update `money_range_to_text` to receive `with_currency` parameter for optional ISO code printing - [@leamotta](https://github.com/leamotta).
5
10
 
6
11
  ### 3.0.0 (2022-02-16)
7
12
 
data/lib/money_helper.rb CHANGED
@@ -71,18 +71,21 @@ module MoneyHelper
71
71
  # currency: (String) optional ISO currency code, defaulting to USD
72
72
  # delimiter: (String) optional
73
73
  # with_currency: (Boolean) optional flag to include ISO currency code, defaulting to true
74
- def self.money_range_to_text(low, high, currency: 'USD', delimiter: ' - ', with_currency: true)
74
+ #  format: (Hash) optional formatting options to pass to `Money#format` e.g.:
75
+ # no_cents: (Boolean) optional flag to exclude cents, defaulting to false
76
+ # symbol: (Boolean) optional flag to include currency symbol, defaulting to true
77
+ def self.money_range_to_text(low, high, currency: 'USD', delimiter: ' - ', with_currency: true, format: {})
75
78
  if low.blank? && high.blank?
76
79
  ''
77
80
  elsif low.blank?
78
- "Under #{money_to_text(high, currency: currency, with_currency: with_currency)}"
81
+ "Under #{money_to_text(high, currency: currency, with_currency: with_currency, format: format)}"
79
82
  elsif high.blank?
80
- "#{money_to_text(low, currency: currency, with_currency: with_currency)} and up"
83
+ "#{money_to_text(low, currency: currency, with_currency: with_currency, format: format)} and up"
81
84
  elsif low == high
82
- money_to_text(low, currency: currency, with_currency: with_currency)
85
+ money_to_text(low, currency: currency, with_currency: with_currency, format: format)
83
86
  else
84
- formatted_low = money_to_text(low, currency: currency, with_currency: with_currency)
85
- formatted_high = money_to_text(high, currency: currency, with_currency: false, format: { symbol: false })
87
+ formatted_low = money_to_text(low, currency: currency, with_currency: with_currency, format: format)
88
+ formatted_high = money_to_text(high, currency: currency, with_currency: false, format: { symbol: false }.merge(format))
86
89
  [formatted_low, formatted_high].compact.join(delimiter)
87
90
  end
88
91
  end
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MoneyHelper
4
- VERSION = '3.0.1'
4
+ VERSION = '3.0.2'
5
5
  end
@@ -235,6 +235,19 @@ describe MoneyHelper do
235
235
  expect(MoneyHelper.money_range_to_text(30_175_93, 40_983_27, currency: 'AMD', with_currency: false)).to eql('դր.30,175.93 - 40,983.27')
236
236
  end
237
237
 
238
+ it 'omits cents when `format: no_cents:` is true' do
239
+ expect(MoneyHelper.money_range_to_text(30_175_93, 40_983_27, with_currency: false, format: { no_cents: true })).to eql('$30,175 - 40,983')
240
+ expect(MoneyHelper.money_range_to_text(30_175_93, 40_983_27, currency: 'EUR', with_currency: false, format: { no_cents: true })).to eql('€30.175 - 40.983')
241
+ expect(MoneyHelper.money_range_to_text(30_175_93, 30_175_93, currency: 'EUR', with_currency: false, format: { no_cents: true })).to eql('€30.175')
242
+ expect(MoneyHelper.money_range_to_text(nil, 30_175_93, currency: 'EUR', with_currency: false, format: { no_cents: true })).to eql('Under €30.175')
243
+ expect(MoneyHelper.money_range_to_text(30_175_93, nil, currency: 'EUR', with_currency: false, format: { no_cents: true })).to eql('€30.175 and up')
244
+ end
245
+
246
+ it 'omits cents when `format: no_cents:` is true, omits symbol when `format: symbol:` is false' do
247
+ expect(MoneyHelper.money_range_to_text(30_175_93, 40_983_27, with_currency: false, format: { no_cents: true, symbol: false })).to eql('30,175 - 40,983')
248
+ expect(MoneyHelper.money_range_to_text(30_175_93, 40_983_27, currency: 'EUR', with_currency: false, format: { no_cents: true, symbol: false })).to eql('30.175 - 40.983')
249
+ end
250
+
238
251
  it "raises an exception when currency can't be found" do
239
252
  expect do
240
253
  MoneyHelper.money_range_to_text(10_000, 20_000, currency: 'ITL')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: money_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 3.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sahil Yakhmi
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2023-03-21 00:00:00.000000000 Z
14
+ date: 2023-03-22 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activesupport