protip 0.30.2 → 0.30.3
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.
- checksums.yaml +4 -4
- data/definitions/protip/messages.proto +1 -0
- data/definitions/protip/messages/big_decimal_value.proto +7 -0
- data/lib/protip/messages.rb +1 -0
- data/lib/protip/messages/big_decimal_value.rb +16 -0
- data/lib/protip/transformers/big_decimal_transformer.rb +24 -0
- data/lib/protip/transformers/default_transformer.rb +1 -0
- data/test/unit/protip/transformers/big_decimal_transformer_test.rb +30 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7767f62af66d64b4120e373355995027070a6278
|
4
|
+
data.tar.gz: 4b1e516325941982f8c619af5d7efc66a8c4b814
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 767c87e9f58f602f06b25266d21327df7525b334a0abb310723ac42d4d4505113b30926ab2a087cf395240a384553620f7df033f5ebd0c2e39283bc118eddb35
|
7
|
+
data.tar.gz: 4a80c5588cc6fbb5b9ba466ee3da25ade548dcdab5329b388b0a92ff58546d4916a7fac2a2483542ae2d4a8b8d3e95fc70ebd330fc3803e24e77e8a80c04f43f
|
@@ -1,6 +1,7 @@
|
|
1
1
|
syntax = "proto3";
|
2
2
|
|
3
3
|
import public "protip/messages/array.proto";
|
4
|
+
import public "protip/messages/big_decimal_value.proto";
|
4
5
|
import public "protip/messages/currency.proto";
|
5
6
|
import public "protip/messages/errors.proto";
|
6
7
|
import public "protip/messages/money.proto";
|
data/lib/protip/messages.rb
CHANGED
@@ -0,0 +1,16 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# source: protip/messages/big_decimal_value.proto
|
3
|
+
|
4
|
+
require 'google/protobuf'
|
5
|
+
|
6
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
7
|
+
add_message "protip.messages.BigDecimalValue" do
|
8
|
+
optional :serialized, :bytes, 1
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
module Protip
|
13
|
+
module Messages
|
14
|
+
BigDecimalValue = Google::Protobuf::DescriptorPool.generated_pool.lookup("protip.messages.BigDecimalValue").msgclass
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'bigdecimal'
|
2
|
+
|
3
|
+
require 'protip/transformer'
|
4
|
+
require 'protip/transformers/delegating_transformer'
|
5
|
+
|
6
|
+
module Protip
|
7
|
+
module Transformers
|
8
|
+
class BigDecimalTransformer < DelegatingTransformer
|
9
|
+
def initialize
|
10
|
+
super
|
11
|
+
self['protip.messages.BigDecimalValue'] = (Class.new do
|
12
|
+
include Protip::Transformer
|
13
|
+
def to_object(message, field)
|
14
|
+
BigDecimal._load(message.serialized)
|
15
|
+
end
|
16
|
+
|
17
|
+
def to_message(object, field)
|
18
|
+
field.subtype.msgclass.new(serialized: BigDecimal.new(object)._dump)
|
19
|
+
end
|
20
|
+
end).new
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'protip/transformers/big_decimal_transformer'
|
3
|
+
|
4
|
+
require 'protip/messages'
|
5
|
+
|
6
|
+
describe Protip::Transformers::BigDecimalTransformer do
|
7
|
+
let(:transformer) { Protip::Transformers::BigDecimalTransformer.new }
|
8
|
+
let(:message_class) { Protip::Messages::BigDecimalValue }
|
9
|
+
let(:field) do
|
10
|
+
field = mock.responds_like_instance_of ::Google::Protobuf::FieldDescriptor
|
11
|
+
field.stubs(:submsg_name).returns(message_class.descriptor.name)
|
12
|
+
field.stubs(:subtype).returns(message_class.descriptor)
|
13
|
+
field
|
14
|
+
end
|
15
|
+
|
16
|
+
# Since we're just serializing/deserializing values, we test both
|
17
|
+
# transformer methods in tandem.
|
18
|
+
describe 'transformation' do
|
19
|
+
def self.it_transforms(name, value)
|
20
|
+
it "transforms #{name} values" do
|
21
|
+
message = transformer.to_message(value, field)
|
22
|
+
assert_equal value, transformer.to_object(message, field)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
it_transforms 'integer', BigDecimal.new(104, 1)
|
26
|
+
it_transforms 'infinity', (BigDecimal.new(1, 1) / 0)
|
27
|
+
it_transforms 'fractions', BigDecimal.new(100.5, 5)
|
28
|
+
it_transforms 'rational numbers', BigDecimal.new(Rational(2, 3), 3)
|
29
|
+
end
|
30
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: protip
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.30.
|
4
|
+
version: 0.30.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- AngelList
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -182,6 +182,7 @@ files:
|
|
182
182
|
- definitions/protip/messages.proto
|
183
183
|
- definitions/protip/messages/active_support/time_with_zone.proto
|
184
184
|
- definitions/protip/messages/array.proto
|
185
|
+
- definitions/protip/messages/big_decimal_value.proto
|
185
186
|
- definitions/protip/messages/currency.proto
|
186
187
|
- definitions/protip/messages/errors.proto
|
187
188
|
- definitions/protip/messages/money.proto
|
@@ -198,6 +199,7 @@ files:
|
|
198
199
|
- lib/protip/messages.rb
|
199
200
|
- lib/protip/messages/active_support/time_with_zone.rb
|
200
201
|
- lib/protip/messages/array.rb
|
202
|
+
- lib/protip/messages/big_decimal_value.rb
|
201
203
|
- lib/protip/messages/currency.rb
|
202
204
|
- lib/protip/messages/errors.rb
|
203
205
|
- lib/protip/messages/money.rb
|
@@ -219,6 +221,7 @@ files:
|
|
219
221
|
- lib/protip/transformer.rb
|
220
222
|
- lib/protip/transformers/abstract_transformer.rb
|
221
223
|
- lib/protip/transformers/active_support/time_with_zone_transformer.rb
|
224
|
+
- lib/protip/transformers/big_decimal_transformer.rb
|
222
225
|
- lib/protip/transformers/decorating_transformer.rb
|
223
226
|
- lib/protip/transformers/default_transformer.rb
|
224
227
|
- lib/protip/transformers/delegating_transformer.rb
|
@@ -234,6 +237,7 @@ files:
|
|
234
237
|
- test/unit/protip/resource/associations/belongs_to_association_test.rb
|
235
238
|
- test/unit/protip/resource/associations/belongs_to_polymorphic_association_test.rb
|
236
239
|
- test/unit/protip/resource_test.rb
|
240
|
+
- test/unit/protip/transformers/big_decimal_transformer_test.rb
|
237
241
|
- test/unit/protip/transformers/decorating_transformer_test.rb
|
238
242
|
- test/unit/protip/transformers/delegating_transformer_test.rb
|
239
243
|
- test/unit/protip/transformers/deprecated_transformer_test.rb
|