protip 0.15.0 → 0.16.0
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/currency.proto +182 -0
- data/definitions/protip/messages/money.proto +10 -0
- data/definitions/protip/messages/range.proto +9 -0
- data/lib/protip/messages/currency.rb +192 -0
- data/lib/protip/messages/money.rb +18 -0
- data/lib/protip/messages/range.rb +17 -0
- data/lib/protip/standard_converter.rb +31 -0
- data/test/unit/protip/standard_converter_test.rb +64 -4
- metadata +28 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bfabbad582a0baed0a872fb8ffa205fe9bd3aeee
|
4
|
+
data.tar.gz: abd9f3a79716f0b5923172b16ed25cd7b888b7ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 97722deb1b3e9f6ae27e68df39a874fd7023eab4bb04da165fcfa8be35ad87403618f59b6a1ad33cd7d8fa0bca3e78ccf9952349d47976eda5b58ed59106d782
|
7
|
+
data.tar.gz: 796ef25a07172c55eb75259e809995d4e92003c9437e0ef2dbc3cc877aa811cca89ccfa470bf7f5ce9ff560ab70d30c5cbf365cd2238a91814425b1ad9b556e8
|
@@ -0,0 +1,182 @@
|
|
1
|
+
syntax = "proto3";
|
2
|
+
|
3
|
+
package protip.messages;
|
4
|
+
|
5
|
+
message Currency {
|
6
|
+
enum CurrencyCode {
|
7
|
+
AED = 0;
|
8
|
+
AFN = 1;
|
9
|
+
ALL = 2;
|
10
|
+
AMD = 3;
|
11
|
+
ANG = 4;
|
12
|
+
AOA = 5;
|
13
|
+
ARS = 6;
|
14
|
+
AUD = 7;
|
15
|
+
AWG = 8;
|
16
|
+
AZN = 9;
|
17
|
+
BAM = 10;
|
18
|
+
BBD = 11;
|
19
|
+
BDT = 12;
|
20
|
+
BGN = 13;
|
21
|
+
BHD = 14;
|
22
|
+
BIF = 15;
|
23
|
+
BMD = 16;
|
24
|
+
BND = 17;
|
25
|
+
BOB = 18;
|
26
|
+
BRL = 19;
|
27
|
+
BSD = 20;
|
28
|
+
BTN = 21;
|
29
|
+
BWP = 22;
|
30
|
+
BYR = 23;
|
31
|
+
BZD = 24;
|
32
|
+
CAD = 25;
|
33
|
+
CDF = 26;
|
34
|
+
CHF = 27;
|
35
|
+
CLF = 28;
|
36
|
+
CLP = 29;
|
37
|
+
CNY = 30;
|
38
|
+
COP = 31;
|
39
|
+
CRC = 32;
|
40
|
+
CUC = 33;
|
41
|
+
CUP = 34;
|
42
|
+
CVE = 35;
|
43
|
+
CZK = 36;
|
44
|
+
DJF = 37;
|
45
|
+
DKK = 38;
|
46
|
+
DOP = 39;
|
47
|
+
DZD = 40;
|
48
|
+
EGP = 41;
|
49
|
+
ERN = 42;
|
50
|
+
ETB = 43;
|
51
|
+
EUR = 44;
|
52
|
+
FJD = 45;
|
53
|
+
FKP = 46;
|
54
|
+
GBP = 47;
|
55
|
+
GEL = 48;
|
56
|
+
GHS = 49;
|
57
|
+
GIP = 50;
|
58
|
+
GMD = 51;
|
59
|
+
GNF = 52;
|
60
|
+
GTQ = 53;
|
61
|
+
GYD = 54;
|
62
|
+
HKD = 55;
|
63
|
+
HNL = 56;
|
64
|
+
HRK = 57;
|
65
|
+
HTG = 58;
|
66
|
+
HUF = 59;
|
67
|
+
IDR = 60;
|
68
|
+
ILS = 61;
|
69
|
+
INR = 62;
|
70
|
+
IQD = 63;
|
71
|
+
IRR = 64;
|
72
|
+
ISK = 65;
|
73
|
+
JMD = 66;
|
74
|
+
JOD = 67;
|
75
|
+
JPY = 68;
|
76
|
+
KES = 69;
|
77
|
+
KGS = 70;
|
78
|
+
KHR = 71;
|
79
|
+
KMF = 72;
|
80
|
+
KPW = 73;
|
81
|
+
KRW = 74;
|
82
|
+
KWD = 75;
|
83
|
+
KYD = 76;
|
84
|
+
KZT = 77;
|
85
|
+
LAK = 78;
|
86
|
+
LBP = 79;
|
87
|
+
LKR = 80;
|
88
|
+
LRD = 81;
|
89
|
+
LSL = 82;
|
90
|
+
LTL = 83;
|
91
|
+
LVL = 84;
|
92
|
+
LYD = 85;
|
93
|
+
MAD = 86;
|
94
|
+
MDL = 87;
|
95
|
+
MGA = 88;
|
96
|
+
MKD = 89;
|
97
|
+
MMK = 90;
|
98
|
+
MNT = 91;
|
99
|
+
MOP = 92;
|
100
|
+
MRO = 93;
|
101
|
+
MUR = 94;
|
102
|
+
MVR = 95;
|
103
|
+
MWK = 96;
|
104
|
+
MXN = 97;
|
105
|
+
MYR = 98;
|
106
|
+
MZN = 99;
|
107
|
+
NAD = 100;
|
108
|
+
NGN = 101;
|
109
|
+
NIO = 102;
|
110
|
+
NOK = 103;
|
111
|
+
NPR = 104;
|
112
|
+
NZD = 105;
|
113
|
+
OMR = 106;
|
114
|
+
PAB = 107;
|
115
|
+
PEN = 108;
|
116
|
+
PGK = 109;
|
117
|
+
PHP = 110;
|
118
|
+
PKR = 111;
|
119
|
+
PLN = 112;
|
120
|
+
PYG = 113;
|
121
|
+
QAR = 114;
|
122
|
+
RON = 115;
|
123
|
+
RSD = 116;
|
124
|
+
RUB = 117;
|
125
|
+
RWF = 118;
|
126
|
+
SAR = 119;
|
127
|
+
SBD = 120;
|
128
|
+
SCR = 121;
|
129
|
+
SDG = 122;
|
130
|
+
SEK = 123;
|
131
|
+
SGD = 124;
|
132
|
+
SHP = 125;
|
133
|
+
SKK = 126;
|
134
|
+
SLL = 127;
|
135
|
+
SOS = 128;
|
136
|
+
SRD = 129;
|
137
|
+
SSP = 130;
|
138
|
+
STD = 131;
|
139
|
+
SVC = 132;
|
140
|
+
SYP = 133;
|
141
|
+
SZL = 134;
|
142
|
+
THB = 135;
|
143
|
+
TJS = 136;
|
144
|
+
TMT = 137;
|
145
|
+
TND = 138;
|
146
|
+
TOP = 139;
|
147
|
+
TRY = 140;
|
148
|
+
TTD = 141;
|
149
|
+
TWD = 142;
|
150
|
+
TZS = 143;
|
151
|
+
UAH = 144;
|
152
|
+
UGX = 145;
|
153
|
+
USD = 146;
|
154
|
+
UYU = 147;
|
155
|
+
UZS = 148;
|
156
|
+
VEF = 149;
|
157
|
+
VND = 150;
|
158
|
+
VUV = 151;
|
159
|
+
WST = 152;
|
160
|
+
XAF = 153;
|
161
|
+
XAG = 154;
|
162
|
+
XAU = 155;
|
163
|
+
XCD = 156;
|
164
|
+
XDR = 157;
|
165
|
+
XOF = 158;
|
166
|
+
XPF = 159;
|
167
|
+
YER = 160;
|
168
|
+
ZAR = 161;
|
169
|
+
ZMK = 162;
|
170
|
+
ZMW = 163;
|
171
|
+
BTC = 164;
|
172
|
+
JEP = 165;
|
173
|
+
EEK = 166;
|
174
|
+
MTL = 167;
|
175
|
+
TMM = 168;
|
176
|
+
ZWD = 169;
|
177
|
+
ZWL = 170;
|
178
|
+
ZWN = 171;
|
179
|
+
ZWR = 172;
|
180
|
+
}
|
181
|
+
CurrencyCode currency_code = 1;
|
182
|
+
}
|
@@ -0,0 +1,192 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# source: protip/messages/currency.proto
|
3
|
+
|
4
|
+
require 'google/protobuf'
|
5
|
+
|
6
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
7
|
+
add_message "protip.messages.Currency" do
|
8
|
+
optional :currency_code, :enum, 1, "protip.messages.Currency.CurrencyCode"
|
9
|
+
end
|
10
|
+
add_enum "protip.messages.Currency.CurrencyCode" do
|
11
|
+
value :AED, 0
|
12
|
+
value :AFN, 1
|
13
|
+
value :ALL, 2
|
14
|
+
value :AMD, 3
|
15
|
+
value :ANG, 4
|
16
|
+
value :AOA, 5
|
17
|
+
value :ARS, 6
|
18
|
+
value :AUD, 7
|
19
|
+
value :AWG, 8
|
20
|
+
value :AZN, 9
|
21
|
+
value :BAM, 10
|
22
|
+
value :BBD, 11
|
23
|
+
value :BDT, 12
|
24
|
+
value :BGN, 13
|
25
|
+
value :BHD, 14
|
26
|
+
value :BIF, 15
|
27
|
+
value :BMD, 16
|
28
|
+
value :BND, 17
|
29
|
+
value :BOB, 18
|
30
|
+
value :BRL, 19
|
31
|
+
value :BSD, 20
|
32
|
+
value :BTN, 21
|
33
|
+
value :BWP, 22
|
34
|
+
value :BYR, 23
|
35
|
+
value :BZD, 24
|
36
|
+
value :CAD, 25
|
37
|
+
value :CDF, 26
|
38
|
+
value :CHF, 27
|
39
|
+
value :CLF, 28
|
40
|
+
value :CLP, 29
|
41
|
+
value :CNY, 30
|
42
|
+
value :COP, 31
|
43
|
+
value :CRC, 32
|
44
|
+
value :CUC, 33
|
45
|
+
value :CUP, 34
|
46
|
+
value :CVE, 35
|
47
|
+
value :CZK, 36
|
48
|
+
value :DJF, 37
|
49
|
+
value :DKK, 38
|
50
|
+
value :DOP, 39
|
51
|
+
value :DZD, 40
|
52
|
+
value :EGP, 41
|
53
|
+
value :ERN, 42
|
54
|
+
value :ETB, 43
|
55
|
+
value :EUR, 44
|
56
|
+
value :FJD, 45
|
57
|
+
value :FKP, 46
|
58
|
+
value :GBP, 47
|
59
|
+
value :GEL, 48
|
60
|
+
value :GHS, 49
|
61
|
+
value :GIP, 50
|
62
|
+
value :GMD, 51
|
63
|
+
value :GNF, 52
|
64
|
+
value :GTQ, 53
|
65
|
+
value :GYD, 54
|
66
|
+
value :HKD, 55
|
67
|
+
value :HNL, 56
|
68
|
+
value :HRK, 57
|
69
|
+
value :HTG, 58
|
70
|
+
value :HUF, 59
|
71
|
+
value :IDR, 60
|
72
|
+
value :ILS, 61
|
73
|
+
value :INR, 62
|
74
|
+
value :IQD, 63
|
75
|
+
value :IRR, 64
|
76
|
+
value :ISK, 65
|
77
|
+
value :JMD, 66
|
78
|
+
value :JOD, 67
|
79
|
+
value :JPY, 68
|
80
|
+
value :KES, 69
|
81
|
+
value :KGS, 70
|
82
|
+
value :KHR, 71
|
83
|
+
value :KMF, 72
|
84
|
+
value :KPW, 73
|
85
|
+
value :KRW, 74
|
86
|
+
value :KWD, 75
|
87
|
+
value :KYD, 76
|
88
|
+
value :KZT, 77
|
89
|
+
value :LAK, 78
|
90
|
+
value :LBP, 79
|
91
|
+
value :LKR, 80
|
92
|
+
value :LRD, 81
|
93
|
+
value :LSL, 82
|
94
|
+
value :LTL, 83
|
95
|
+
value :LVL, 84
|
96
|
+
value :LYD, 85
|
97
|
+
value :MAD, 86
|
98
|
+
value :MDL, 87
|
99
|
+
value :MGA, 88
|
100
|
+
value :MKD, 89
|
101
|
+
value :MMK, 90
|
102
|
+
value :MNT, 91
|
103
|
+
value :MOP, 92
|
104
|
+
value :MRO, 93
|
105
|
+
value :MUR, 94
|
106
|
+
value :MVR, 95
|
107
|
+
value :MWK, 96
|
108
|
+
value :MXN, 97
|
109
|
+
value :MYR, 98
|
110
|
+
value :MZN, 99
|
111
|
+
value :NAD, 100
|
112
|
+
value :NGN, 101
|
113
|
+
value :NIO, 102
|
114
|
+
value :NOK, 103
|
115
|
+
value :NPR, 104
|
116
|
+
value :NZD, 105
|
117
|
+
value :OMR, 106
|
118
|
+
value :PAB, 107
|
119
|
+
value :PEN, 108
|
120
|
+
value :PGK, 109
|
121
|
+
value :PHP, 110
|
122
|
+
value :PKR, 111
|
123
|
+
value :PLN, 112
|
124
|
+
value :PYG, 113
|
125
|
+
value :QAR, 114
|
126
|
+
value :RON, 115
|
127
|
+
value :RSD, 116
|
128
|
+
value :RUB, 117
|
129
|
+
value :RWF, 118
|
130
|
+
value :SAR, 119
|
131
|
+
value :SBD, 120
|
132
|
+
value :SCR, 121
|
133
|
+
value :SDG, 122
|
134
|
+
value :SEK, 123
|
135
|
+
value :SGD, 124
|
136
|
+
value :SHP, 125
|
137
|
+
value :SKK, 126
|
138
|
+
value :SLL, 127
|
139
|
+
value :SOS, 128
|
140
|
+
value :SRD, 129
|
141
|
+
value :SSP, 130
|
142
|
+
value :STD, 131
|
143
|
+
value :SVC, 132
|
144
|
+
value :SYP, 133
|
145
|
+
value :SZL, 134
|
146
|
+
value :THB, 135
|
147
|
+
value :TJS, 136
|
148
|
+
value :TMT, 137
|
149
|
+
value :TND, 138
|
150
|
+
value :TOP, 139
|
151
|
+
value :TRY, 140
|
152
|
+
value :TTD, 141
|
153
|
+
value :TWD, 142
|
154
|
+
value :TZS, 143
|
155
|
+
value :UAH, 144
|
156
|
+
value :UGX, 145
|
157
|
+
value :USD, 146
|
158
|
+
value :UYU, 147
|
159
|
+
value :UZS, 148
|
160
|
+
value :VEF, 149
|
161
|
+
value :VND, 150
|
162
|
+
value :VUV, 151
|
163
|
+
value :WST, 152
|
164
|
+
value :XAF, 153
|
165
|
+
value :XAG, 154
|
166
|
+
value :XAU, 155
|
167
|
+
value :XCD, 156
|
168
|
+
value :XDR, 157
|
169
|
+
value :XOF, 158
|
170
|
+
value :XPF, 159
|
171
|
+
value :YER, 160
|
172
|
+
value :ZAR, 161
|
173
|
+
value :ZMK, 162
|
174
|
+
value :ZMW, 163
|
175
|
+
value :BTC, 164
|
176
|
+
value :JEP, 165
|
177
|
+
value :EEK, 166
|
178
|
+
value :MTL, 167
|
179
|
+
value :TMM, 168
|
180
|
+
value :ZWD, 169
|
181
|
+
value :ZWL, 170
|
182
|
+
value :ZWN, 171
|
183
|
+
value :ZWR, 172
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
module Protip
|
188
|
+
module Messages
|
189
|
+
Currency = Google::Protobuf::DescriptorPool.generated_pool.lookup("protip.messages.Currency").msgclass
|
190
|
+
Currency::CurrencyCode = Google::Protobuf::DescriptorPool.generated_pool.lookup("protip.messages.Currency.CurrencyCode").enummodule
|
191
|
+
end
|
192
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# source: protip/messages/money.proto
|
3
|
+
|
4
|
+
require 'google/protobuf'
|
5
|
+
|
6
|
+
require 'protip/messages/currency'
|
7
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
8
|
+
add_message "protip.messages.Money" do
|
9
|
+
optional :amount_cents, :int64, 1
|
10
|
+
optional :currency, :message, 2, "protip.messages.Currency"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
module Protip
|
15
|
+
module Messages
|
16
|
+
Money = Google::Protobuf::DescriptorPool.generated_pool.lookup("protip.messages.Money").msgclass
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# source: protip/messages/range.proto
|
3
|
+
|
4
|
+
require 'google/protobuf'
|
5
|
+
|
6
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
7
|
+
add_message "protip.messages.Range" do
|
8
|
+
optional :begin, :int64, 1
|
9
|
+
optional :end, :int64, 2
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
module Protip
|
14
|
+
module Messages
|
15
|
+
Range = Google::Protobuf::DescriptorPool.generated_pool.lookup("protip.messages.Range").msgclass
|
16
|
+
end
|
17
|
+
end
|
@@ -1,5 +1,10 @@
|
|
1
|
+
require 'money'
|
2
|
+
|
1
3
|
require 'protip/converter'
|
2
4
|
|
5
|
+
require 'protip/messages/currency'
|
6
|
+
require 'protip/messages/money'
|
7
|
+
require 'protip/messages/range'
|
3
8
|
require 'protip/messages/types'
|
4
9
|
require 'google/protobuf'
|
5
10
|
module Protip
|
@@ -15,6 +20,25 @@ module Protip
|
|
15
20
|
@conversions = {}
|
16
21
|
|
17
22
|
## Protip types
|
23
|
+
@conversions['protip.messages.Currency'] = {
|
24
|
+
to_object: ->(message) { message.currency_code },
|
25
|
+
to_message: ->(currency_code, message_class) { message_class.new currency_code: currency_code }
|
26
|
+
}
|
27
|
+
|
28
|
+
@conversions['protip.messages.Money'] = {
|
29
|
+
to_object: ->(message) do
|
30
|
+
::Money.new(message.amount_cents, message.currency.currency_code)
|
31
|
+
end,
|
32
|
+
to_message: ->(money, message_class) do
|
33
|
+
raise ArgumentError unless money.is_a?(::Money)
|
34
|
+
currency = ::Protip::Messages::Currency.new(currency_code: money.currency.iso_code.to_sym)
|
35
|
+
message_class.new(
|
36
|
+
amount_cents: money.fractional,
|
37
|
+
currency: currency
|
38
|
+
)
|
39
|
+
end
|
40
|
+
}
|
41
|
+
|
18
42
|
@conversions['protip.messages.Date'] = {
|
19
43
|
to_object: ->(message) { ::Date.new(message.year, message.month, message.day) },
|
20
44
|
to_message: lambda do |date, message_class|
|
@@ -23,6 +47,13 @@ module Protip
|
|
23
47
|
end
|
24
48
|
}
|
25
49
|
|
50
|
+
@conversions['protip.messages.Range'] = {
|
51
|
+
to_object: ->(message) { message.begin..message.end },
|
52
|
+
to_message: ->(range, message_class) do
|
53
|
+
message_class.new(begin: range.begin.to_i, end: range.end.to_i)
|
54
|
+
end
|
55
|
+
}
|
56
|
+
|
26
57
|
## Standard wrappers
|
27
58
|
%w(Int64 Int32 UInt64 UInt32 Double Float String Bytes).map{|type| "google.protobuf.#{type}Value"}.each do |name|
|
28
59
|
@conversions[name] = {
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'test_helper'
|
2
|
+
require 'money'
|
2
3
|
|
3
4
|
require 'google/protobuf/wrappers'
|
4
5
|
require 'protip/standard_converter'
|
@@ -7,11 +8,19 @@ describe Protip::StandardConverter do
|
|
7
8
|
let(:converter) { Protip::StandardConverter.new }
|
8
9
|
|
9
10
|
let(:integer_types) do
|
10
|
-
[
|
11
|
+
[
|
12
|
+
Google::Protobuf::Int64Value,
|
13
|
+
Google::Protobuf::Int32Value,
|
14
|
+
Google::Protobuf::UInt64Value,
|
15
|
+
Google::Protobuf::UInt32Value
|
16
|
+
]
|
11
17
|
end
|
12
18
|
|
13
19
|
let(:float_types) do
|
14
|
-
[
|
20
|
+
[
|
21
|
+
Google::Protobuf::FloatValue,
|
22
|
+
Google::Protobuf::DoubleValue
|
23
|
+
]
|
15
24
|
end
|
16
25
|
|
17
26
|
let(:bool_types) do
|
@@ -26,10 +35,18 @@ describe Protip::StandardConverter do
|
|
26
35
|
[Google::Protobuf::BytesValue]
|
27
36
|
end
|
28
37
|
|
38
|
+
let(:protip_types) do
|
39
|
+
[
|
40
|
+
Protip::Messages::Range,
|
41
|
+
Protip::Messages::Date,
|
42
|
+
Protip::Messages::Money,
|
43
|
+
Protip::Messages::Currency
|
44
|
+
]
|
45
|
+
end
|
29
46
|
|
30
47
|
describe '#convertible?' do
|
31
48
|
it 'converts all standard types' do
|
32
|
-
(integer_types + float_types + string_types + bool_types +
|
49
|
+
(integer_types + float_types + string_types + bool_types + protip_types).each do |message_class|
|
33
50
|
assert converter.convertible?(message_class), "expected type #{message_class.descriptor.name} not convertible"
|
34
51
|
end
|
35
52
|
end
|
@@ -61,6 +78,27 @@ describe Protip::StandardConverter do
|
|
61
78
|
assert_instance_of ::Date, date
|
62
79
|
assert_equal '2015-02-09', date.strftime
|
63
80
|
end
|
81
|
+
|
82
|
+
it 'converts ranges' do
|
83
|
+
range = converter.to_object(::Protip::Messages::Range.new begin: 1, end: 4)
|
84
|
+
assert_instance_of ::Range, range
|
85
|
+
assert_equal 1..4, range
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'converts currency' do
|
89
|
+
currency = converter.to_object(::Protip::Messages::Currency.new currency_code: :GBP)
|
90
|
+
assert_equal :GBP, currency
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'converts money' do
|
94
|
+
message = ::Protip::Messages::Money.new amount_cents: 250,
|
95
|
+
currency: (::Protip::Messages::Currency.new currency_code: :CAD)
|
96
|
+
money = converter.to_object(message)
|
97
|
+
assert_instance_of ::Money, money
|
98
|
+
assert_equal Money::Currency.new(:CAD), money.currency
|
99
|
+
assert_equal 250, money.fractional
|
100
|
+
assert_equal ::Money.new(250, 'CAD'), money
|
101
|
+
end
|
64
102
|
end
|
65
103
|
|
66
104
|
describe '#to_message' do
|
@@ -84,6 +122,29 @@ describe Protip::StandardConverter do
|
|
84
122
|
assert_equal ::Protip::Messages::Date.new(year: 2012, month: 5, day: 7), converter.to_message(date, ::Protip::Messages::Date)
|
85
123
|
end
|
86
124
|
|
125
|
+
it 'converts ranges' do
|
126
|
+
range = -1..34
|
127
|
+
assert_equal ::Protip::Messages::Range.new(begin: -1, end: 34), converter.to_message(range, ::Protip::Messages::Range)
|
128
|
+
end
|
129
|
+
|
130
|
+
it 'converts currency' do
|
131
|
+
currency = :HKD
|
132
|
+
message = converter.to_message(currency, ::Protip::Messages::Currency)
|
133
|
+
assert_equal ::Protip::Messages::Currency.new(currency_code: currency), message
|
134
|
+
end
|
135
|
+
|
136
|
+
it 'converts money' do
|
137
|
+
money = ::Money.new(250, 'CAD')
|
138
|
+
message = converter.to_message(money, ::Protip::Messages::Money)
|
139
|
+
assert_instance_of ::Protip::Messages::Money, message
|
140
|
+
assert_equal ::Protip::Messages::Money.new(
|
141
|
+
amount_cents: money.cents,
|
142
|
+
currency: ::Protip::Messages::Currency.new(
|
143
|
+
currency_code: money.currency.iso_code.to_sym
|
144
|
+
)),
|
145
|
+
message
|
146
|
+
end
|
147
|
+
|
87
148
|
it 'converts truthy values to booleans' do
|
88
149
|
[true, 1, '1', 't', 'T', 'true', 'TRUE', 'on', 'ON'].each do |truth_value|
|
89
150
|
assert_equal Google::Protobuf::BoolValue.new(value: true),
|
@@ -105,6 +166,5 @@ describe Protip::StandardConverter do
|
|
105
166
|
end
|
106
167
|
end
|
107
168
|
end
|
108
|
-
|
109
169
|
end
|
110
170
|
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.
|
4
|
+
version: 0.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- AngelList
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -64,6 +64,26 @@ dependencies:
|
|
64
64
|
- - '='
|
65
65
|
- !ruby/object:Gem::Version
|
66
66
|
version: 3.0.0.alpha.4
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: money
|
69
|
+
requirement: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 6.5.1
|
74
|
+
- - "<"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '7.0'
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 6.5.1
|
84
|
+
- - "<"
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '7.0'
|
67
87
|
- !ruby/object:Gem::Dependency
|
68
88
|
name: minitest
|
69
89
|
requirement: !ruby/object:Gem::Requirement
|
@@ -146,7 +166,10 @@ extra_rdoc_files: []
|
|
146
166
|
files:
|
147
167
|
- definitions/google/protobuf/wrappers.proto
|
148
168
|
- definitions/protip/messages/array.proto
|
169
|
+
- definitions/protip/messages/currency.proto
|
149
170
|
- definitions/protip/messages/errors.proto
|
171
|
+
- definitions/protip/messages/money.proto
|
172
|
+
- definitions/protip/messages/range.proto
|
150
173
|
- definitions/protip/messages/types.proto
|
151
174
|
- lib/google/protobuf/wrappers.rb
|
152
175
|
- lib/protip.rb
|
@@ -154,7 +177,10 @@ files:
|
|
154
177
|
- lib/protip/converter.rb
|
155
178
|
- lib/protip/error.rb
|
156
179
|
- lib/protip/messages/array.rb
|
180
|
+
- lib/protip/messages/currency.rb
|
157
181
|
- lib/protip/messages/errors.rb
|
182
|
+
- lib/protip/messages/money.rb
|
183
|
+
- lib/protip/messages/range.rb
|
158
184
|
- lib/protip/messages/types.rb
|
159
185
|
- lib/protip/resource.rb
|
160
186
|
- lib/protip/resource/creatable.rb
|