usps-imis-api 0.10.1 → 0.10.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 53b4870b15d7758a4de24b84f2ef96afbdf5fb657e8969ea6ceb29ef940a4f8c
4
- data.tar.gz: '009005a1b43078f129671df80aa4271202073c549aafc1558ca3d4b23ed79a79'
3
+ metadata.gz: 1bacafdd40f6a1fc863575164f8a29ff135e3f16a4c0dfcc0e2aa6983c55208f
4
+ data.tar.gz: 37854e85dda3f088d48cfa0a9a399f7d1c5e979f74c4d0c57b462090c6bcf8ae
5
5
  SHA512:
6
- metadata.gz: 7ad3868896d1e9c80d39d7edf8a27f7e647838f069fb9b2cb58776c2e2befb87990b20e8cf080690a859c2b3b4fc87928a0f648c2217efaab095c69251de0138
7
- data.tar.gz: b5004fabdeaa0a62ad9cdd43252ee3d09320eace98161283185afa7873a582e63a736537b052c90968335275c1b0878702218c291886a3a06fb370b644d0f246
6
+ metadata.gz: 663df0b691ea1add42032df1cfd693667baafc2d39ddd01813c3ada66bf04c52b4bb1285a3d23f387fae17a8842f6be2f06299c88fbee7aff33f3a8aa39f02a2
7
+ data.tar.gz: 839207827b65431fdf565b35cb9c6c98bc4b75d0807ee852ea5bcbfe09c99234b784b77caba2af0e141f04b67afdeec6973e58184f6be3a598ddebcb969173a3
@@ -157,13 +157,7 @@ module Usps
157
157
  # Skip unmodified fields
158
158
  next unless fields.keys.include?(value['Name'])
159
159
 
160
- # Strings are not wrapped in the type definition structure
161
- new_value = fields[value['Name']]
162
- if new_value.is_a?(String)
163
- value['Value'] = new_value
164
- else
165
- value['Value']['$value'] = new_value
166
- end
160
+ value['Value'] = Properties.wrap(fields[value['Name']])
167
161
 
168
162
  # Add the completed field with the updated value
169
163
  updated['Properties']['$values'] << value
@@ -9,6 +9,19 @@ module Usps
9
9
  #
10
10
  def self.build(&) = new.build(&)
11
11
 
12
+ # Wrap value in the API-internal type structure
13
+ #
14
+ def self.wrap(value)
15
+ case value
16
+ when String then value
17
+ when Time, DateTime then value.strftime('%Y-%m-%dT%H:%I:%S')
18
+ when Integer then { '$type' => 'System.Int32', '$value' => value }
19
+ when true, false then { '$type' => 'System.Boolean', '$value' => value }
20
+ else
21
+ raise Errors::UnexpectedPropertyTypeError.from(value)
22
+ end
23
+ end
24
+
12
25
  # Build the data for the Properties field
13
26
  #
14
27
  def build
@@ -29,22 +42,9 @@ module Usps
29
42
  @properties << {
30
43
  '$type' => 'Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts',
31
44
  'Name' => name,
32
- 'Value' => wrap(value)
45
+ 'Value' => self.class.wrap(value)
33
46
  }
34
47
  end
35
-
36
- private
37
-
38
- def wrap(value)
39
- case value
40
- when String then value
41
- when Time, DateTime then value.strftime('%Y-%m-%dT%H:%I:%S')
42
- when Integer then { '$type' => 'System.Int32', '$value' => value }
43
- when true, false then { '$type' => 'System.Boolean', '$value' => value }
44
- else
45
- raise Errors::UnexpectedPropertyTypeError.from(value)
46
- end
47
- end
48
48
  end
49
49
  end
50
50
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Usps
4
4
  module Imis
5
- VERSION = '0.10.1'
5
+ VERSION = '0.10.2'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: usps-imis-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.10.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julian Fiander