usps-imis-api 0.11.8 → 0.11.9

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: 5cb250d5dd836f5ca8b2382bcc45e788d57307dc47800337d59ff2976b4c52dd
4
- data.tar.gz: 65c492cb9bec04a98be6aa8c5821cda5f3bf28304b91fb9202c13c95ab21ae67
3
+ metadata.gz: 626c55f443b00f5c4bcf5fe4e266041157fc0bf961825f42a551e6473f8decc0
4
+ data.tar.gz: b7e430d604ff0f1ae3db77e8cad1a2cb41851fe0ed3e0d8c90c19782b0e5708d
5
5
  SHA512:
6
- metadata.gz: 764a6555ba593dc6e7b6b159aa741d9866f9981278fc1d4b7820d3a83efaa0ff5ddfff8eb93c7f2d09868853251db89163471582ed4a8f0086809c824823703d
7
- data.tar.gz: 949e90aa4c506455184fd162cc75fb6b8a45c8c98b4e3561e3656d2445ca32b5174c6bd14164d51108fb5c69d7275a30a8cb06eda04ee480290eacb77524a6bd
6
+ metadata.gz: e8c1ec5ef4528680e87878225df3abda47e9892913d250eba1a8495ccde36a9801a78170a3bc211fad0714ac61d6696ba8d4cbe025888fa3a25a307d45a6e595
7
+ data.tar.gz: 98a8d1c2d38de72f9604b28070ca65144979d271ddacd077a2ce548ca7d8eef0a4fb15ad9d81acde7a63a0e1918ce7f8c354f4dbc6bb83d078a01a290aef9f48
@@ -66,7 +66,8 @@ module Usps
66
66
  def perform!
67
67
  case convert(options)
68
68
  in mapper:, field:, data: then mapper.put_field(field.to_sym, data)
69
- in mapper:, field: then mapper.fetch(field.to_sym)
69
+ in mapper:, fields: then mapper.get_fields(*fields)
70
+ in mapper:, field: then mapper.get_field(field.to_sym)
70
71
  in mapper:, data: then mapper.update(data)
71
72
 
72
73
  in on:, delete: true then on.delete
@@ -38,13 +38,36 @@ module Usps
38
38
  #
39
39
  # @return Value of the field
40
40
  #
41
- def fetch(field_key)
41
+ def get_field(field_key)
42
42
  missing_mapping!(field_key) unless FIELD_MAPPING.key?(field_key.to_sym)
43
43
 
44
44
  business_object_name, field = FIELD_MAPPING[field_key]
45
45
  api.on(business_object_name)[field]
46
46
  end
47
- alias [] fetch
47
+ alias fetch get_field
48
+ alias [] get_field
49
+
50
+ # Get specific fields by arbitrary field names
51
+ #
52
+ # @param names [Array<String>] Internal name of the fields
53
+ #
54
+ # @return [Array] Values of the field
55
+ #
56
+ def get_fields(*fields)
57
+ business_objects = {}
58
+
59
+ fields.map do |field_key|
60
+ business_object_name, field = FIELD_MAPPING[field_key.to_sym]
61
+
62
+ business_objects[business_object_name] ||= []
63
+ business_objects[business_object_name] << field
64
+ end
65
+
66
+ business_objects.flat_map do |business_object_name, fields|
67
+ api.on(business_object_name).get_fields(*fields)
68
+ end
69
+ end
70
+ alias fetch_all get_fields
48
71
 
49
72
  # Update a member's data for a specific field by arbitrary field name
50
73
  #
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Usps
4
4
  module Imis
5
- VERSION = '0.11.8'
5
+ VERSION = '0.11.9'
6
6
  end
7
7
  end
data/lib/usps/imis.rb CHANGED
@@ -16,6 +16,8 @@ require 'logger'
16
16
  require 'active_support/isolated_execution_state' # Fix costant loading issue with TaggedLogging
17
17
  require 'active_support/tagged_logging'
18
18
 
19
+ require 'dotenv/load'
20
+
19
21
  # Internal requires
20
22
  require_relative 'imis/config'
21
23
  require_relative 'imis/error'
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.11.8
4
+ version: 0.11.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julian Fiander
@@ -23,6 +23,20 @@ dependencies:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
25
  version: '8.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: dotenv
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: 3.1.4
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 3.1.4
26
40
  - !ruby/object:Gem::Dependency
27
41
  name: colorize
28
42
  requirement: !ruby/object:Gem::Requirement