Skip to content

Commit 6b0ebf7

Browse files
authored
port over BigDecimal fix for v2 (#2042)
* port over BigDecimal fix for v2 * fix travis ci
1 parent 5589eb2 commit 6b0ebf7

File tree

4 files changed

+19
-11
lines changed

4 files changed

+19
-11
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
Unreleased Changes
22
------------------
33

4+
* Issue - Aws::DynamoDB - Replaced BigDecimal.new() with BigDecimal() #1937
5+
46
2.11.269 (2019-05-06)
57
------------------
68

Gemfile

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,11 @@ gem 'nokogiri', '1.6.8.1' unless ENV['PURE_RUBY']
2626
gem 'oga'
2727

2828
group :test do
29-
gem 'rspec'
29+
3030
if RUBY_VERSION == '1.9.3'
31+
# '3.8.3' fails 1.9.3 test suits
32+
gem 'rspec-expectations', '3.8.2'
33+
3134
# webmock dropped support for Ruby 1.9.3 after version 2.2.0
3235
gem 'webmock', '2.2.0'
3336
# webmock depends on addressable, but the latest version of addressable
@@ -45,6 +48,9 @@ group :test do
4548
end
4649
gem 'simplecov', require: false
4750
gem 'coveralls', require: false if RUBY_VERSION > '1.9.3'
51+
52+
gem 'rspec'
53+
4854
gem 'json-schema'
4955
gem 'multipart-post'
5056
end

aws-sdk-core/lib/aws-sdk-core/dynamodb/attribute_value.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,12 @@ def format(obj)
7676
end
7777
when :l then value.map { |v| format(v) }
7878
when :s then value
79-
when :n then BigDecimal.new(value)
79+
when :n then BigDecimal(value)
8080
when :b then StringIO.new(value)
8181
when :null then nil
8282
when :bool then value
8383
when :ss then Set.new(value)
84-
when :ns then Set.new(value.map { |n| BigDecimal.new(n) })
84+
when :ns then Set.new(value.map { |n| BigDecimal(n) })
8585
when :bs then Set.new(value.map { |b| StringIO.new(b) })
8686
when :es then Set.new
8787
else

aws-sdk-core/spec/aws/dynamodb/attribute_value_spec.rb

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ def initialize(val)
7979

8080
# Ruby 2.4 changed the casing of BigDecimal's to_s value.
8181
# We need to check in a case insensitive manner
82-
big_decimal_value = value.marshal(BigDecimal.new("0.1E125"))
82+
big_decimal_value = value.marshal(BigDecimal("0.1E125"))
8383
expect(big_decimal_value.keys).to eq([:n])
8484
expect(big_decimal_value[:n]).to match(/0.1E125/i)
8585
end
@@ -201,7 +201,7 @@ def initialize(val)
201201

202202
it 'converts :ns to a set of big decimals (to preserve precision)' do
203203
expect(value.unmarshal(ns: %w(123 456))).to eq(
204-
Set.new([BigDecimal.new('123'), BigDecimal.new('456')]))
204+
Set.new([BigDecimal('123'), BigDecimal('456')]))
205205
end
206206

207207
it 'converts :bs to a set of binary values' do
@@ -217,9 +217,9 @@ def initialize(val)
217217

218218
it 'converts :n to big decimals' do
219219
# supports integers, floats, and big decimals
220-
expect(value.unmarshal(n: '123')).to eq(BigDecimal.new('123'))
221-
expect(value.unmarshal(n: '12.34')).to eq(BigDecimal.new('12.34'))
222-
expect(value.unmarshal(n: '0.1E125')).to eq(BigDecimal.new('0.1E125'))
220+
expect(value.unmarshal(n: '123')).to eq(BigDecimal('123'))
221+
expect(value.unmarshal(n: '12.34')).to eq(BigDecimal('12.34'))
222+
expect(value.unmarshal(n: '0.1E125')).to eq(BigDecimal('0.1E125'))
223223
end
224224

225225
it 'converts :s to a string' do
@@ -297,9 +297,9 @@ def initialize(val)
297297
},
298298
],
299299
'scores' => [
300-
BigDecimal.new('4.5'),
301-
BigDecimal.new('5'),
302-
BigDecimal.new('3.9'),
300+
BigDecimal('4.5'),
301+
BigDecimal('5'),
302+
BigDecimal('3.9'),
303303
nil,
304304
'perfect'
305305
]

0 commit comments

Comments
 (0)