easypost 4.3.0 → 4.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitattributes +4 -0
- data/.github/workflows/ci.yml +5 -3
- data/CHANGELOG.md +6 -0
- data/Makefile +37 -0
- data/README.md +5 -2
- data/VERSION +1 -1
- data/easypost.gemspec +1 -0
- data/lib/easypost/billing.rb +68 -0
- data/lib/easypost/payment_method.rb +15 -0
- data/lib/easypost/resource.rb +1 -1
- data/lib/easypost/user.rb +1 -1
- data/lib/easypost/util.rb +87 -64
- data/lib/easypost/webhook.rb +1 -1
- data/lib/easypost.rb +11 -3
- metadata +21 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c07c842f7ff2eb209a6f447259afce469b6e1f0f481ea2bf68585869167ea8f9
|
4
|
+
data.tar.gz: 0ffb89bcb615cd1835f12e70d3c23ffa9ca9033daddddaad9db20a363f483212
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f03686d79b7d2023c26dc3c69362955465f3f99efc9b666d101a3499697ed155061afa2e8a47767bd83ae78bdd265d5363339ad4fb7686f47e5cff472483fa6a
|
7
|
+
data.tar.gz: 25f79bcc1b8c745ae9556c675d3aad56a06518853b4389081325170d2c1c1e425906bb8ded8925d40805ef961c5ccea3394da7bfe1f845117a8701f80526d526
|
data/.gitattributes
ADDED
data/.github/workflows/ci.yml
CHANGED
@@ -20,7 +20,7 @@ jobs:
|
|
20
20
|
ruby-version: ${{ matrix.rubyversion }}
|
21
21
|
bundler-cache: true
|
22
22
|
- name: run tests
|
23
|
-
run: EASYPOST_TEST_API_KEY=123 EASYPOST_PROD_API_KEY=123
|
23
|
+
run: EASYPOST_TEST_API_KEY=123 EASYPOST_PROD_API_KEY=123 make test
|
24
24
|
lint:
|
25
25
|
runs-on: ubuntu-latest
|
26
26
|
steps:
|
@@ -31,6 +31,8 @@ jobs:
|
|
31
31
|
with:
|
32
32
|
ruby-version: "3.1"
|
33
33
|
- name: Install Dependencies
|
34
|
-
run:
|
34
|
+
run: make install
|
35
35
|
- name: Lint Project
|
36
|
-
run:
|
36
|
+
run: make lint
|
37
|
+
- name: Run security analysis
|
38
|
+
run: make brakeman
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## v4.4.0 (2022-07-11)
|
4
|
+
|
5
|
+
- Adds `Billing.retrieve_payment_methods()`, `Billing.fund_wallet()`, and `Billing.delete_payment_method()` functions
|
6
|
+
- Captures OS information in the user-agent header for easier debugging
|
7
|
+
- Update functions now use `patch` instead of `put` under the hood to better match API behavior and documentation. The behavior of these functions should remain the same
|
8
|
+
|
3
9
|
## v4.3.0 (2022-05-19)
|
4
10
|
|
5
11
|
- Adds the `EndShipper` Beta class with `create`, `retrieve`, `all`, and `save` functions
|
data/Makefile
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
## help - Display help about make targets for this Makefile
|
2
|
+
help:
|
3
|
+
@cat Makefile | grep '^## ' --color=never | cut -c4- | sed -e "`printf 's/ - /\t- /;'`" | column -s "`printf '\t'`" -t
|
4
|
+
|
5
|
+
## brakeman - Runs security analysis on the project with Brakeman
|
6
|
+
brakeman:
|
7
|
+
brakeman lib --force
|
8
|
+
|
9
|
+
## build - Builds the project
|
10
|
+
build:
|
11
|
+
gem build easypost.gemspec
|
12
|
+
|
13
|
+
## clean - Cleans the project
|
14
|
+
clean:
|
15
|
+
rm -rf coverage doc *.gem
|
16
|
+
|
17
|
+
## fix - Fix Rubocop errors
|
18
|
+
fix:
|
19
|
+
rubocop -A
|
20
|
+
|
21
|
+
## install - Install globally from source
|
22
|
+
install:
|
23
|
+
bundle install
|
24
|
+
|
25
|
+
## lint - Lint the project
|
26
|
+
lint:
|
27
|
+
rubocop
|
28
|
+
|
29
|
+
## push - Pushes the built gem to Rubygems
|
30
|
+
push:
|
31
|
+
gem push *.gem
|
32
|
+
|
33
|
+
## test - Test the project
|
34
|
+
test:
|
35
|
+
bundle exec rspec
|
36
|
+
|
37
|
+
.PHONY: help build clean fix install lint push test
|
data/README.md
CHANGED
@@ -116,10 +116,13 @@ API Documentation can be found at: <https://easypost.com/docs/api>.
|
|
116
116
|
|
117
117
|
```bash
|
118
118
|
# Install dependencies
|
119
|
-
|
119
|
+
make install
|
120
|
+
|
121
|
+
# Lint project
|
122
|
+
make lint
|
120
123
|
|
121
124
|
# Run tests (coverage is generated on a successful test suite run)
|
122
|
-
EASYPOST_TEST_API_KEY=123... EASYPOST_PROD_API_KEY=123...
|
125
|
+
EASYPOST_TEST_API_KEY=123... EASYPOST_PROD_API_KEY=123... make test
|
123
126
|
```
|
124
127
|
|
125
128
|
### Testing
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
4.
|
1
|
+
4.4.0
|
data/easypost.gemspec
CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.require_paths = ['lib']
|
22
22
|
spec.required_ruby_version = '>= 2.5'
|
23
23
|
|
24
|
+
spec.add_development_dependency 'brakeman', '~> 5.2'
|
24
25
|
spec.add_development_dependency 'pry', '~> 0.14'
|
25
26
|
spec.add_development_dependency 'rake', '~> 13.0'
|
26
27
|
spec.add_development_dependency 'rspec', '~> 3.10'
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Billing class that users can manage their payment and fund
|
4
|
+
class EasyPost::Billing < EasyPost::Resource
|
5
|
+
# Fund your EasyPost wallet by charging your primary or secondary card on file.
|
6
|
+
def self.fund_wallet(amount, primary_or_secondary = 'primary', api_key = nil)
|
7
|
+
payment_info = EasyPost::Billing.get_payment_method_info(primary_or_secondary.downcase)
|
8
|
+
endpoint = payment_info[0]
|
9
|
+
payment_id = payment_info[1]
|
10
|
+
|
11
|
+
wrapped_params = { amount: amount }
|
12
|
+
EasyPost.make_request(:post, "#{endpoint}/#{payment_id}/charges", api_key, wrapped_params)
|
13
|
+
|
14
|
+
# Return true if succeeds, an error will be thrown if it fails
|
15
|
+
true
|
16
|
+
end
|
17
|
+
|
18
|
+
# Delete a payment method.
|
19
|
+
def self.delete_payment_method(primary_or_secondary, api_key = nil)
|
20
|
+
payment_info = EasyPost::Billing.get_payment_method_info(primary_or_secondary.downcase)
|
21
|
+
endpoint = payment_info[0]
|
22
|
+
payment_id = payment_info[1]
|
23
|
+
|
24
|
+
EasyPost.make_request(:delete, "#{endpoint}/#{payment_id}", api_key)
|
25
|
+
|
26
|
+
# Return true if succeeds, an error will be thrown if it fails
|
27
|
+
true
|
28
|
+
end
|
29
|
+
|
30
|
+
# Retrieve all payment methods.
|
31
|
+
def self.retrieve_payment_methods(api_key = nil)
|
32
|
+
response = EasyPost.make_request(:get, '/v2/payment_methods', api_key)
|
33
|
+
|
34
|
+
if response['id'].nil?
|
35
|
+
raise EasyPost::Error.new('Billing has not been setup for this user. Please add a payment method.')
|
36
|
+
end
|
37
|
+
|
38
|
+
EasyPost::Util.convert_to_easypost_object(response, api_key)
|
39
|
+
end
|
40
|
+
|
41
|
+
# Get payment method info (type of the payment method and ID of the payment method)
|
42
|
+
private_class_method def self.get_payment_method_info(primary_or_secondary)
|
43
|
+
payment_methods = EasyPost::Billing.retrieve_payment_methods
|
44
|
+
payment_method_map = {
|
45
|
+
'primary' => 'primary_payment_method',
|
46
|
+
'secondary' => 'secondary_payment_method',
|
47
|
+
}
|
48
|
+
|
49
|
+
payment_method_to_use = payment_method_map[primary_or_secondary]
|
50
|
+
|
51
|
+
error_string = 'The chosen payment method is not valid. Please try again.'
|
52
|
+
raise EasyPost::Error.new(error_string) if payment_methods[payment_method_to_use].nil?
|
53
|
+
|
54
|
+
payment_method_id = payment_methods[payment_method_to_use]['id']
|
55
|
+
|
56
|
+
unless payment_method_id.nil?
|
57
|
+
if payment_method_id.start_with?('card_')
|
58
|
+
endpoint = '/v2/credit_cards'
|
59
|
+
elsif payment_method_id.start_with?('bank_')
|
60
|
+
endpoint = '/v2/bank_accounts'
|
61
|
+
else
|
62
|
+
raise EasyPost::Error.new(error_string)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
[endpoint, payment_method_id]
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# PaymentMethod objects represent a payment method of a user.
|
4
|
+
class EasyPost::PaymentMethod < EasyPost::Resource
|
5
|
+
# Retrieve all payment methods.
|
6
|
+
def self.all(api_key = nil)
|
7
|
+
response = EasyPost.make_request(:get, url, api_key)
|
8
|
+
|
9
|
+
if response['id'].nil?
|
10
|
+
raise EasyPost::Error.new('Billing has not been setup for this user. Please add a payment method.')
|
11
|
+
end
|
12
|
+
|
13
|
+
EasyPost::Util.convert_to_easypost_object(response, api_key)
|
14
|
+
end
|
15
|
+
end
|
data/lib/easypost/resource.rb
CHANGED
@@ -97,7 +97,7 @@ class EasyPost::Resource < EasyPost::EasyPostObject
|
|
97
97
|
|
98
98
|
wrapped_params = { self.class.class_name => values }
|
99
99
|
|
100
|
-
response = EasyPost.make_request(:
|
100
|
+
response = EasyPost.make_request(:patch, url, @api_key, wrapped_params)
|
101
101
|
refresh_from(response, api_key)
|
102
102
|
end
|
103
103
|
self
|
data/lib/easypost/user.rb
CHANGED
@@ -16,7 +16,7 @@ class EasyPost::User < EasyPost::Resource
|
|
16
16
|
|
17
17
|
wrapped_params = { user: values }
|
18
18
|
|
19
|
-
response = EasyPost.make_request(:
|
19
|
+
response = EasyPost.make_request(:patch, url, @api_key, wrapped_params)
|
20
20
|
refresh_from(response, api_key)
|
21
21
|
end
|
22
22
|
self
|
data/lib/easypost/util.rb
CHANGED
@@ -2,6 +2,90 @@
|
|
2
2
|
|
3
3
|
# Internal utilities helpful for this libraries operation.
|
4
4
|
module EasyPost::Util
|
5
|
+
attr_accessor :os_name, :os_version, :os_arch
|
6
|
+
|
7
|
+
BY_PREFIX = {
|
8
|
+
'adr' => EasyPost::Address,
|
9
|
+
'batch' => EasyPost::Batch,
|
10
|
+
'brd' => EasyPost::Brand,
|
11
|
+
'ca' => EasyPost::CarrierAccount,
|
12
|
+
'cstinfo' => EasyPost::CustomsInfo,
|
13
|
+
'cstitem' => EasyPost::CustomsItem,
|
14
|
+
'es' => EasyPost::Beta::EndShipper,
|
15
|
+
'evt' => EasyPost::Event,
|
16
|
+
'hook' => EasyPost::Webhook,
|
17
|
+
'ins' => EasyPost::Insurance,
|
18
|
+
'order' => EasyPost::Order,
|
19
|
+
'pickup' => EasyPost::Pickup,
|
20
|
+
'pickuprate' => EasyPost::PickupRate,
|
21
|
+
'pl' => EasyPost::PostageLabel,
|
22
|
+
'plrep' => EasyPost::Report,
|
23
|
+
'prcl' => EasyPost::Parcel,
|
24
|
+
'rate' => EasyPost::Rate,
|
25
|
+
'refrep' => EasyPost::Report,
|
26
|
+
'rfnd' => EasyPost::Refund,
|
27
|
+
'sf' => EasyPost::ScanForm,
|
28
|
+
'shp' => EasyPost::Shipment,
|
29
|
+
'shpinvrep' => EasyPost::Report,
|
30
|
+
'shprep' => EasyPost::Report,
|
31
|
+
'trk' => EasyPost::Tracker,
|
32
|
+
'trkrep' => EasyPost::Report,
|
33
|
+
'user' => EasyPost::User,
|
34
|
+
}.freeze
|
35
|
+
|
36
|
+
BY_TYPE = {
|
37
|
+
'Address' => EasyPost::Address,
|
38
|
+
'Batch' => EasyPost::Batch,
|
39
|
+
'Brand' => EasyPost::Brand,
|
40
|
+
'CarrierAccount' => EasyPost::CarrierAccount,
|
41
|
+
'CustomsInfo' => EasyPost::CustomsInfo,
|
42
|
+
'CustomsItem' => EasyPost::CustomsItem,
|
43
|
+
'EndShipper' => EasyPost::Beta::EndShipper,
|
44
|
+
'Event' => EasyPost::Event,
|
45
|
+
'Insurance' => EasyPost::Insurance,
|
46
|
+
'Order' => EasyPost::Order,
|
47
|
+
'Parcel' => EasyPost::Parcel,
|
48
|
+
'PaymentLogReport' => EasyPost::Report,
|
49
|
+
'Pickup' => EasyPost::Pickup,
|
50
|
+
'PickupRate' => EasyPost::PickupRate,
|
51
|
+
'PostageLabel' => EasyPost::PostageLabel,
|
52
|
+
'Rate' => EasyPost::Rate,
|
53
|
+
'Referral' => EasyPost::Beta::Referral,
|
54
|
+
'Refund' => EasyPost::Refund,
|
55
|
+
'RefundReport' => EasyPost::Report,
|
56
|
+
'Report' => EasyPost::Report,
|
57
|
+
'ScanForm' => EasyPost::ScanForm,
|
58
|
+
'Shipment' => EasyPost::Shipment,
|
59
|
+
'ShipmentInvoiceReport' => EasyPost::Report,
|
60
|
+
'ShipmentReport' => EasyPost::Report,
|
61
|
+
'TaxIdentifier' => EasyPost::TaxIdentifier,
|
62
|
+
'Tracker' => EasyPost::Tracker,
|
63
|
+
'TrackerReport' => EasyPost::Report,
|
64
|
+
'User' => EasyPost::User,
|
65
|
+
'Webhook' => EasyPost::Webhook,
|
66
|
+
}.freeze
|
67
|
+
|
68
|
+
def self.os_name
|
69
|
+
case RUBY_PLATFORM
|
70
|
+
when /linux/i
|
71
|
+
'Linux'
|
72
|
+
when /darwin/i
|
73
|
+
'Darwin'
|
74
|
+
when /cygwin|mswin|mingw|bccwin|wince|emx/i
|
75
|
+
'Windows'
|
76
|
+
else
|
77
|
+
'Unknown'
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
def self.os_version
|
82
|
+
Gem::Platform.local.version
|
83
|
+
end
|
84
|
+
|
85
|
+
def self.os_arch
|
86
|
+
Gem::Platform.local.cpu
|
87
|
+
end
|
88
|
+
|
5
89
|
# Form-encode a multi-layer dictionary to a one-layer dictionary.
|
6
90
|
def self.form_encode_params(hash, parent_keys = [], parent_dict = {})
|
7
91
|
result = parent_dict or {}
|
@@ -55,84 +139,23 @@ module EasyPost::Util
|
|
55
139
|
|
56
140
|
# Convert data to an EasyPost Object.
|
57
141
|
def self.convert_to_easypost_object(response, api_key, parent = nil, name = nil)
|
58
|
-
types = {
|
59
|
-
'Address' => EasyPost::Address,
|
60
|
-
'Batch' => EasyPost::Batch,
|
61
|
-
'Brand' => EasyPost::Brand,
|
62
|
-
'CarrierAccount' => EasyPost::CarrierAccount,
|
63
|
-
'CustomsInfo' => EasyPost::CustomsInfo,
|
64
|
-
'CustomsItem' => EasyPost::CustomsItem,
|
65
|
-
'EndShipper' => EasyPost::Beta::EndShipper,
|
66
|
-
'Event' => EasyPost::Event,
|
67
|
-
'Insurance' => EasyPost::Insurance,
|
68
|
-
'Order' => EasyPost::Order,
|
69
|
-
'Parcel' => EasyPost::Parcel,
|
70
|
-
'PaymentLogReport' => EasyPost::Report,
|
71
|
-
'Pickup' => EasyPost::Pickup,
|
72
|
-
'PickupRate' => EasyPost::PickupRate,
|
73
|
-
'PostageLabel' => EasyPost::PostageLabel,
|
74
|
-
'Rate' => EasyPost::Rate,
|
75
|
-
'Referral' => EasyPost::Beta::Referral,
|
76
|
-
'Refund' => EasyPost::Refund,
|
77
|
-
'RefundReport' => EasyPost::Report,
|
78
|
-
'Report' => EasyPost::Report,
|
79
|
-
'ScanForm' => EasyPost::ScanForm,
|
80
|
-
'Shipment' => EasyPost::Shipment,
|
81
|
-
'ShipmentInvoiceReport' => EasyPost::Report,
|
82
|
-
'ShipmentReport' => EasyPost::Report,
|
83
|
-
'TaxIdentifier' => EasyPost::TaxIdentifier,
|
84
|
-
'Tracker' => EasyPost::Tracker,
|
85
|
-
'TrackerReport' => EasyPost::Report,
|
86
|
-
'User' => EasyPost::User,
|
87
|
-
'Webhook' => EasyPost::Webhook,
|
88
|
-
}
|
89
|
-
|
90
|
-
prefixes = {
|
91
|
-
'adr' => EasyPost::Address,
|
92
|
-
'batch' => EasyPost::Batch,
|
93
|
-
'brd' => EasyPost::Brand,
|
94
|
-
'ca' => EasyPost::CarrierAccount,
|
95
|
-
'cstinfo' => EasyPost::CustomsInfo,
|
96
|
-
'cstitem' => EasyPost::CustomsItem,
|
97
|
-
'es' => EasyPost::Beta::EndShipper,
|
98
|
-
'evt' => EasyPost::Event,
|
99
|
-
'hook' => EasyPost::Webhook,
|
100
|
-
'ins' => EasyPost::Insurance,
|
101
|
-
'order' => EasyPost::Order,
|
102
|
-
'pickup' => EasyPost::Pickup,
|
103
|
-
'pickuprate' => EasyPost::PickupRate,
|
104
|
-
'pl' => EasyPost::PostageLabel,
|
105
|
-
'plrep' => EasyPost::Report,
|
106
|
-
'prcl' => EasyPost::Parcel,
|
107
|
-
'rate' => EasyPost::Rate,
|
108
|
-
'refrep' => EasyPost::Report,
|
109
|
-
'rfnd' => EasyPost::Refund,
|
110
|
-
'sf' => EasyPost::ScanForm,
|
111
|
-
'shp' => EasyPost::Shipment,
|
112
|
-
'shpinvrep' => EasyPost::Report,
|
113
|
-
'shprep' => EasyPost::Report,
|
114
|
-
'trk' => EasyPost::Tracker,
|
115
|
-
'trkrep' => EasyPost::Report,
|
116
|
-
'user' => EasyPost::User,
|
117
|
-
}
|
118
|
-
|
119
142
|
case response
|
120
143
|
when Array
|
121
144
|
response.map { |i| convert_to_easypost_object(i, api_key, parent) }
|
122
145
|
when Hash
|
123
146
|
if (cls_name = response[:object])
|
124
|
-
cls =
|
147
|
+
cls = BY_TYPE[cls_name]
|
125
148
|
elsif response[:id]
|
126
149
|
if response[:id].index('_').nil?
|
127
150
|
cls = EasyPost::EasyPostObject
|
128
151
|
elsif (cls_prefix = response[:id][0..response[:id].index('_')])
|
129
|
-
cls =
|
152
|
+
cls = BY_PREFIX[cls_prefix[0..-2]]
|
130
153
|
end
|
131
154
|
elsif response['id']
|
132
155
|
if response['id'].index('_').nil?
|
133
156
|
cls = EasyPost::EasyPostObject
|
134
157
|
elsif (cls_prefix = response['id'][0..response['id'].index('_')])
|
135
|
-
cls =
|
158
|
+
cls = BY_PREFIX[cls_prefix[0..-2]]
|
136
159
|
end
|
137
160
|
end
|
138
161
|
|
data/lib/easypost/webhook.rb
CHANGED
@@ -12,7 +12,7 @@ class EasyPost::Webhook < EasyPost::Resource
|
|
12
12
|
|
13
13
|
instance_url = "#{self.class.url}/#{CGI.escape(id)}"
|
14
14
|
|
15
|
-
response = EasyPost.make_request(:
|
15
|
+
response = EasyPost.make_request(:patch, instance_url, @api_key, params)
|
16
16
|
refresh_from(response, api_key)
|
17
17
|
|
18
18
|
self
|
data/lib/easypost.rb
CHANGED
@@ -5,7 +5,6 @@ require 'cgi'
|
|
5
5
|
require 'net/http'
|
6
6
|
|
7
7
|
require 'easypost/version'
|
8
|
-
require 'easypost/util'
|
9
8
|
require 'easypost/object'
|
10
9
|
require 'easypost/resource'
|
11
10
|
require 'easypost/error'
|
@@ -15,6 +14,7 @@ require 'easypost/connection'
|
|
15
14
|
require 'easypost/address'
|
16
15
|
require 'easypost/api_key'
|
17
16
|
require 'easypost/batch'
|
17
|
+
require 'easypost/billing'
|
18
18
|
require 'easypost/brand'
|
19
19
|
require 'easypost/carrier_account'
|
20
20
|
require 'easypost/carrier_type'
|
@@ -38,9 +38,10 @@ require 'easypost/user'
|
|
38
38
|
require 'easypost/webhook'
|
39
39
|
require 'easypost/beta'
|
40
40
|
|
41
|
+
require 'easypost/util'
|
42
|
+
|
41
43
|
module EasyPost
|
42
44
|
DEFAULT_API_BASE = 'https://api.easypost.com'
|
43
|
-
DEFAULT_USER_AGENT = "EasyPost/v2 RubyClient/#{EasyPost::VERSION} Ruby/#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"
|
44
45
|
|
45
46
|
class << self
|
46
47
|
attr_accessor :api_key, :api_base
|
@@ -49,10 +50,17 @@ module EasyPost
|
|
49
50
|
|
50
51
|
self.api_base = DEFAULT_API_BASE
|
51
52
|
|
53
|
+
def self.user_agent
|
54
|
+
@user_agent ||=
|
55
|
+
"EasyPost/v2 RubyClient/#{EasyPost::VERSION} Ruby/#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL} " \
|
56
|
+
"OS/#{EasyPost::Util.os_name} OSVersion/#{EasyPost::Util.os_version} " \
|
57
|
+
"OSArch/#{EasyPost::Util.os_arch}"
|
58
|
+
end
|
59
|
+
|
52
60
|
def self.default_headers
|
53
61
|
@default_headers ||= {
|
54
62
|
'Content-Type' => 'application/json',
|
55
|
-
'User-Agent' =>
|
63
|
+
'User-Agent' => user_agent,
|
56
64
|
}
|
57
65
|
end
|
58
66
|
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: easypost
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- EasyPost Developers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: brakeman
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '5.2'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '5.2'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: pry
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -143,6 +157,7 @@ executables:
|
|
143
157
|
extensions: []
|
144
158
|
extra_rdoc_files: []
|
145
159
|
files:
|
160
|
+
- ".gitattributes"
|
146
161
|
- ".github/ISSUE_TEMPLATE/bug_report.yml"
|
147
162
|
- ".github/ISSUE_TEMPLATE/feature_request.yml"
|
148
163
|
- ".github/PULL_REQUEST_TEMPLATE.md"
|
@@ -154,6 +169,7 @@ files:
|
|
154
169
|
- CONTRIBUTING.md
|
155
170
|
- Gemfile
|
156
171
|
- LICENSE
|
172
|
+
- Makefile
|
157
173
|
- README.md
|
158
174
|
- Rakefile
|
159
175
|
- SECURITY.md
|
@@ -170,6 +186,7 @@ files:
|
|
170
186
|
- lib/easypost/beta.rb
|
171
187
|
- lib/easypost/beta/end_shipper.rb
|
172
188
|
- lib/easypost/beta/referral.rb
|
189
|
+
- lib/easypost/billing.rb
|
173
190
|
- lib/easypost/brand.rb
|
174
191
|
- lib/easypost/carrier_account.rb
|
175
192
|
- lib/easypost/carrier_type.rb
|
@@ -182,6 +199,7 @@ files:
|
|
182
199
|
- lib/easypost/object.rb
|
183
200
|
- lib/easypost/order.rb
|
184
201
|
- lib/easypost/parcel.rb
|
202
|
+
- lib/easypost/payment_method.rb
|
185
203
|
- lib/easypost/pickup.rb
|
186
204
|
- lib/easypost/pickup_rate.rb
|
187
205
|
- lib/easypost/postage_label.rb
|
@@ -216,7 +234,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
216
234
|
- !ruby/object:Gem::Version
|
217
235
|
version: '0'
|
218
236
|
requirements: []
|
219
|
-
rubygems_version: 3.3.
|
237
|
+
rubygems_version: 3.3.11
|
220
238
|
signing_key:
|
221
239
|
specification_version: 4
|
222
240
|
summary: EasyPost Ruby Client Library
|