usps-imis-api 0.12.4 → 0.12.5
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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f3339b55eb073ceb6d09da8f6855a6b35181d9ba341968c19a029dc916e5f6da
|
|
4
|
+
data.tar.gz: 3366076637725838e3f4b404d2db28f349632681bb2211fb7cf1d3493965073f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e5d137638ffabd6b8ecdf5a72ec2d3769ef511d0963f431d7fc9d34d5659d7a460e3c7e60acbc87532b04ca519e7ed2f5bfd38c30f50fc70ddcd97302a44066a
|
|
7
|
+
data.tar.gz: b9e980910b7507a39dec6ad2ca992ebbcf57227f119775bdfa972d58045a60d0b569137e3952c81aff16ed311ac2e49306b528800c4dca22e3c26f4a4fe2bc24
|
|
@@ -46,24 +46,28 @@ module Usps
|
|
|
46
46
|
|
|
47
47
|
value = yield
|
|
48
48
|
|
|
49
|
+
puts format(value)
|
|
50
|
+
end
|
|
51
|
+
# :nocov:
|
|
52
|
+
|
|
53
|
+
def format(value)
|
|
49
54
|
if value.is_a?(Array) && @options[:jsonl] then jsonl(value)
|
|
50
55
|
elsif value.is_a?(Array) && @options[:csv] then csv(value)
|
|
51
|
-
else
|
|
56
|
+
else json(value)
|
|
52
57
|
end
|
|
53
58
|
end
|
|
54
59
|
|
|
55
|
-
def
|
|
60
|
+
def json(value) = JSON.dump(value)
|
|
56
61
|
|
|
57
|
-
def jsonl(value) =
|
|
62
|
+
def jsonl(value) = value.map { JSON.dump(it) }
|
|
58
63
|
|
|
59
64
|
def csv(value)
|
|
60
65
|
headers = value.first.keys if value.first.is_a?(Hash) || value.first.is_a?(BaseData)
|
|
61
66
|
|
|
62
|
-
|
|
67
|
+
CSV.generate(headers:, write_headers: !headers.nil?) do |csv|
|
|
63
68
|
headers ? value.each { csv << it } : csv << value
|
|
64
|
-
end
|
|
69
|
+
end
|
|
65
70
|
end
|
|
66
|
-
# :nocov:
|
|
67
71
|
end
|
|
68
72
|
end
|
|
69
73
|
end
|
|
@@ -105,8 +105,6 @@ module Usps
|
|
|
105
105
|
|
|
106
106
|
OptionsParser.options.each { |option, data| opt(option, *data) }
|
|
107
107
|
CONFLICTING_OPTION_GROUPS.each { |group| conflicts(*group) }
|
|
108
|
-
|
|
109
|
-
educate_on_error
|
|
110
108
|
end
|
|
111
109
|
end
|
|
112
110
|
|
|
@@ -116,10 +114,12 @@ module Usps
|
|
|
116
114
|
# :nocov:
|
|
117
115
|
|
|
118
116
|
def defaults?
|
|
119
|
-
options_with_defaults =
|
|
117
|
+
options_with_defaults = self.class.options.select { |_, data| data[1]&.key?(:default) }
|
|
118
|
+
|
|
119
|
+
default_options_not_given = options_with_defaults.none? { |option, _| @options[:"#{option}_given"] }
|
|
120
|
+
only_default_options_set = options.except(*options_with_defaults.keys).values.none?
|
|
120
121
|
|
|
121
|
-
|
|
122
|
-
options.except(*options_with_defaults.keys).values.none?
|
|
122
|
+
default_options_not_given && only_default_options_set
|
|
123
123
|
end
|
|
124
124
|
|
|
125
125
|
def pre_process_options!
|
|
@@ -129,6 +129,8 @@ module Usps
|
|
|
129
129
|
|
|
130
130
|
@options[:data] = JSON.parse(@options[:data]) if @options[:data]
|
|
131
131
|
|
|
132
|
+
validate_query_options!
|
|
133
|
+
|
|
132
134
|
raise Errors::CommandLineError, 'Maximum page size is 500' if @options[:page_size] > 500
|
|
133
135
|
|
|
134
136
|
@options[:offset] = (@options[:page] - 1) * @options[:page_size] if @options[:page]
|
|
@@ -139,6 +141,13 @@ module Usps
|
|
|
139
141
|
@options[:data] ||= {}
|
|
140
142
|
@options[:data]['certificate'] = @options.delete(:certificate)
|
|
141
143
|
end
|
|
144
|
+
|
|
145
|
+
def validate_query_options!
|
|
146
|
+
query_options = QUERY_FLAGS - [:query]
|
|
147
|
+
return unless !@options[:query] && query_options.any? { @options[:"#{it}_given"] }
|
|
148
|
+
|
|
149
|
+
Optimist.die(:query, "must be provided if any of --#{query_options.join(', --').gsub('_', '-')} are provided")
|
|
150
|
+
end
|
|
142
151
|
end
|
|
143
152
|
end
|
|
144
153
|
end
|
data/lib/usps/imis/version.rb
CHANGED