terminal-shop 1.7.0 → 1.8.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/README.md +3 -1
- data/lib/terminal-shop/base_client.rb +36 -46
- data/lib/terminal-shop/base_model.rb +65 -130
- data/lib/terminal-shop/base_page.rb +18 -18
- data/lib/terminal-shop/client.rb +1 -3
- data/lib/terminal-shop/errors.rb +12 -17
- data/lib/terminal-shop/extern.rb +1 -4
- data/lib/terminal-shop/models/subscription.rb +6 -0
- data/lib/terminal-shop/pooled_net_requester.rb +19 -21
- data/lib/terminal-shop/request_options.rb +4 -11
- data/lib/terminal-shop/resources/address.rb +0 -5
- data/lib/terminal-shop/resources/app.rb +0 -5
- data/lib/terminal-shop/resources/card.rb +0 -6
- data/lib/terminal-shop/resources/cart.rb +0 -7
- data/lib/terminal-shop/resources/email.rb +0 -2
- data/lib/terminal-shop/resources/order.rb +0 -4
- data/lib/terminal-shop/resources/product.rb +0 -3
- data/lib/terminal-shop/resources/profile.rb +0 -3
- data/lib/terminal-shop/resources/subscription.rb +0 -5
- data/lib/terminal-shop/resources/token.rb +0 -5
- data/lib/terminal-shop/resources/view.rb +0 -2
- data/lib/terminal-shop/util.rb +44 -71
- data/lib/terminal-shop/version.rb +1 -1
- data/lib/terminal-shop.rb +1 -0
- data/manifest.yaml +1 -0
- data/rbi/lib/terminal-shop/base_client.rbi +23 -0
- data/rbi/lib/terminal-shop/base_model.rbi +178 -52
- data/rbi/lib/terminal-shop/base_page.rbi +1 -2
- data/rbi/lib/terminal-shop/client.rbi +11 -0
- data/rbi/lib/terminal-shop/errors.rbi +33 -0
- data/rbi/lib/terminal-shop/extern.rbi +1 -1
- data/rbi/lib/terminal-shop/models/address.rbi +10 -0
- data/rbi/lib/terminal-shop/models/address_create_params.rbi +8 -0
- data/rbi/lib/terminal-shop/models/address_create_response.rbi +1 -0
- data/rbi/lib/terminal-shop/models/address_get_response.rbi +1 -0
- data/rbi/lib/terminal-shop/models/address_list_response.rbi +1 -0
- data/rbi/lib/terminal-shop/models/app.rbi +5 -0
- data/rbi/lib/terminal-shop/models/app_create_response.rbi +2 -0
- data/rbi/lib/terminal-shop/models/app_get_response.rbi +1 -0
- data/rbi/lib/terminal-shop/models/app_list_response.rbi +1 -0
- data/rbi/lib/terminal-shop/models/card.rbi +8 -0
- data/rbi/lib/terminal-shop/models/card_collect_response.rbi +4 -0
- data/rbi/lib/terminal-shop/models/card_create_params.rbi +2 -0
- data/rbi/lib/terminal-shop/models/card_create_response.rbi +1 -0
- data/rbi/lib/terminal-shop/models/card_get_response.rbi +1 -0
- data/rbi/lib/terminal-shop/models/card_list_response.rbi +1 -0
- data/rbi/lib/terminal-shop/models/cart.rbi +19 -0
- data/rbi/lib/terminal-shop/models/cart_convert_response.rbi +1 -0
- data/rbi/lib/terminal-shop/models/cart_get_response.rbi +1 -0
- data/rbi/lib/terminal-shop/models/cart_set_address_params.rbi +1 -0
- data/rbi/lib/terminal-shop/models/cart_set_card_params.rbi +1 -0
- data/rbi/lib/terminal-shop/models/cart_set_item_params.rbi +2 -0
- data/rbi/lib/terminal-shop/models/cart_set_item_response.rbi +1 -0
- data/rbi/lib/terminal-shop/models/email_create_params.rbi +1 -0
- data/rbi/lib/terminal-shop/models/order.rbi +28 -0
- data/rbi/lib/terminal-shop/models/order_create_params.rbi +3 -0
- data/rbi/lib/terminal-shop/models/order_create_response.rbi +1 -0
- data/rbi/lib/terminal-shop/models/order_get_response.rbi +1 -0
- data/rbi/lib/terminal-shop/models/order_list_response.rbi +1 -0
- data/rbi/lib/terminal-shop/models/product.rbi +12 -6
- data/rbi/lib/terminal-shop/models/product_get_response.rbi +1 -0
- data/rbi/lib/terminal-shop/models/product_list_response.rbi +1 -0
- data/rbi/lib/terminal-shop/models/product_variant.rbi +4 -0
- data/rbi/lib/terminal-shop/models/profile.rbi +8 -0
- data/rbi/lib/terminal-shop/models/profile_me_response.rbi +1 -0
- data/rbi/lib/terminal-shop/models/profile_update_response.rbi +1 -0
- data/rbi/lib/terminal-shop/models/region.rbi +3 -6
- data/rbi/lib/terminal-shop/models/subscription.rbi +18 -11
- data/rbi/lib/terminal-shop/models/subscription_get_response.rbi +1 -0
- data/rbi/lib/terminal-shop/models/subscription_list_response.rbi +1 -0
- data/rbi/lib/terminal-shop/models/token.rbi +5 -0
- data/rbi/lib/terminal-shop/models/token_create_response.rbi +3 -0
- data/rbi/lib/terminal-shop/models/token_get_response.rbi +2 -0
- data/rbi/lib/terminal-shop/models/token_list_response.rbi +1 -0
- data/rbi/lib/terminal-shop/models/view_init_response.rbi +5 -0
- data/rbi/lib/terminal-shop/pooled_net_requester.rbi +10 -3
- data/rbi/lib/terminal-shop/request_options.rbi +21 -2
- data/rbi/lib/terminal-shop/resources/address.rbi +22 -2
- data/rbi/lib/terminal-shop/resources/app.rbi +14 -2
- data/rbi/lib/terminal-shop/resources/card.rbi +22 -3
- data/rbi/lib/terminal-shop/resources/cart.rbi +23 -3
- data/rbi/lib/terminal-shop/resources/email.rbi +6 -1
- data/rbi/lib/terminal-shop/resources/order.rbi +17 -2
- data/rbi/lib/terminal-shop/resources/product.rbi +7 -1
- data/rbi/lib/terminal-shop/resources/profile.rbi +2 -0
- data/rbi/lib/terminal-shop/resources/subscription.rbi +21 -2
- data/rbi/lib/terminal-shop/resources/token.rbi +14 -2
- data/rbi/lib/terminal-shop/resources/view.rbi +2 -0
- data/rbi/lib/terminal-shop/util.rbi +55 -8
- data/rbi/lib/terminal-shop/version.rbi +1 -1
- data/sig/terminal-shop/base_client.rbs +6 -1
- data/sig/terminal-shop/base_model.rbs +8 -6
- data/sig/terminal-shop/errors.rbs +4 -4
- data/sig/terminal-shop/models/subscription.rbs +1 -1
- data/sig/terminal-shop/pooled_net_requester.rbs +7 -2
- data/sig/terminal-shop/util.rbs +4 -4
- data/sig/terminal-shop/version.rbs +1 -1
- metadata +4 -4
@@ -1,42 +1,52 @@
|
|
1
1
|
# typed: strong
|
2
2
|
|
3
3
|
module TerminalShop
|
4
|
+
# @api private
|
4
5
|
module Util
|
6
|
+
# @api private
|
5
7
|
sig { returns(Float) }
|
6
8
|
def self.monotonic_secs
|
7
9
|
end
|
8
10
|
|
9
11
|
class << self
|
12
|
+
# @api private
|
10
13
|
sig { returns(String) }
|
11
14
|
def arch
|
12
15
|
end
|
13
16
|
|
17
|
+
# @api private
|
14
18
|
sig { returns(String) }
|
15
19
|
def os
|
16
20
|
end
|
17
21
|
end
|
18
22
|
|
19
23
|
class << self
|
20
|
-
|
24
|
+
# @api private
|
25
|
+
sig { params(input: T.anything).returns(T::Boolean) }
|
21
26
|
def primitive?(input)
|
22
27
|
end
|
23
28
|
|
29
|
+
# @api private
|
24
30
|
sig { params(input: T.anything).returns(T.any(T::Boolean, T.anything)) }
|
25
31
|
def coerce_boolean(input)
|
26
32
|
end
|
27
33
|
|
34
|
+
# @api private
|
28
35
|
sig { params(input: T.anything).returns(T.nilable(T::Boolean)) }
|
29
36
|
def coerce_boolean!(input)
|
30
37
|
end
|
31
38
|
|
39
|
+
# @api private
|
32
40
|
sig { params(input: T.anything).returns(T.any(Integer, T.anything)) }
|
33
41
|
def coerce_integer(input)
|
34
42
|
end
|
35
43
|
|
44
|
+
# @api private
|
36
45
|
sig { params(input: T.anything).returns(T.any(Float, T.anything)) }
|
37
46
|
def coerce_float(input)
|
38
47
|
end
|
39
48
|
|
49
|
+
# @api private
|
40
50
|
sig { params(input: T.anything).returns(T.any(T::Hash[T.anything, T.anything], T.anything)) }
|
41
51
|
def coerce_hash(input)
|
42
52
|
end
|
@@ -45,17 +55,29 @@ module TerminalShop
|
|
45
55
|
OMIT = T.let(T.anything, T.anything)
|
46
56
|
|
47
57
|
class << self
|
58
|
+
# @api private
|
48
59
|
sig { params(lhs: T.anything, rhs: T.anything, concat: T::Boolean).returns(T.anything) }
|
49
60
|
private def deep_merge_lr(lhs, rhs, concat: false)
|
50
61
|
end
|
51
62
|
|
63
|
+
# @api private
|
64
|
+
#
|
65
|
+
# Recursively merge one hash with another. If the values at a given key are not
|
66
|
+
# both hashes, just take the new value.
|
52
67
|
sig do
|
53
68
|
params(values: T::Array[T.anything], sentinel: T.nilable(T.anything), concat: T::Boolean)
|
54
69
|
.returns(T.anything)
|
55
70
|
end
|
56
|
-
def deep_merge(
|
71
|
+
def deep_merge(
|
72
|
+
*values,
|
73
|
+
# the value to return if no values are provided.
|
74
|
+
sentinel: nil,
|
75
|
+
# whether to merge sequences by concatenation.
|
76
|
+
concat: false
|
77
|
+
)
|
57
78
|
end
|
58
79
|
|
80
|
+
# @api private
|
59
81
|
sig do
|
60
82
|
params(
|
61
83
|
data: T.any(T::Hash[Symbol, T.anything], T::Array[T.anything], T.anything),
|
@@ -70,20 +92,24 @@ module TerminalShop
|
|
70
92
|
end
|
71
93
|
|
72
94
|
class << self
|
95
|
+
# @api private
|
73
96
|
sig { params(uri: URI::Generic).returns(String) }
|
74
97
|
def uri_origin(uri)
|
75
98
|
end
|
76
99
|
|
100
|
+
# @api private
|
77
101
|
sig { params(path: T.any(String, T::Array[String])).returns(String) }
|
78
102
|
def interpolate_path(path)
|
79
103
|
end
|
80
104
|
end
|
81
105
|
|
82
106
|
class << self
|
107
|
+
# @api private
|
83
108
|
sig { params(query: T.nilable(String)).returns(T::Hash[String, T::Array[String]]) }
|
84
109
|
def decode_query(query)
|
85
110
|
end
|
86
111
|
|
112
|
+
# @api private
|
87
113
|
sig do
|
88
114
|
params(query: T.nilable(T::Hash[String, T.nilable(T.any(T::Array[String], String))]))
|
89
115
|
.returns(T.nilable(String))
|
@@ -103,14 +129,17 @@ module TerminalShop
|
|
103
129
|
end
|
104
130
|
|
105
131
|
class << self
|
132
|
+
# @api private
|
106
133
|
sig { params(url: T.any(URI::Generic, String)).returns(TerminalShop::Util::ParsedUriShape) }
|
107
134
|
def parse_uri(url)
|
108
135
|
end
|
109
136
|
|
137
|
+
# @api private
|
110
138
|
sig { params(parsed: TerminalShop::Util::ParsedUriShape).returns(URI::Generic) }
|
111
139
|
def unparse_uri(parsed)
|
112
140
|
end
|
113
141
|
|
142
|
+
# @api private
|
114
143
|
sig do
|
115
144
|
params(lhs: TerminalShop::Util::ParsedUriShape, rhs: TerminalShop::Util::ParsedUriShape)
|
116
145
|
.returns(URI::Generic)
|
@@ -120,6 +149,7 @@ module TerminalShop
|
|
120
149
|
end
|
121
150
|
|
122
151
|
class << self
|
152
|
+
# @api private
|
123
153
|
sig do
|
124
154
|
params(
|
125
155
|
headers: T::Hash[String,
|
@@ -131,15 +161,21 @@ module TerminalShop
|
|
131
161
|
end
|
132
162
|
end
|
133
163
|
|
164
|
+
# @api private
|
165
|
+
#
|
166
|
+
# An adapter that satisfies the IO interface required by `::IO.copy_stream`
|
134
167
|
class ReadIOAdapter
|
168
|
+
# @api private
|
135
169
|
sig { params(max_len: T.nilable(Integer)).returns(String) }
|
136
170
|
private def read_enum(max_len)
|
137
171
|
end
|
138
172
|
|
173
|
+
# @api private
|
139
174
|
sig { params(max_len: T.nilable(Integer), out_string: T.nilable(String)).returns(T.nilable(String)) }
|
140
175
|
def read(max_len = nil, out_string = nil)
|
141
176
|
end
|
142
177
|
|
178
|
+
# @api private
|
143
179
|
sig do
|
144
180
|
params(
|
145
181
|
stream: T.any(String, IO, StringIO, T::Enumerable[String]),
|
@@ -158,20 +194,24 @@ module TerminalShop
|
|
158
194
|
end
|
159
195
|
|
160
196
|
class << self
|
197
|
+
# @api private
|
161
198
|
sig do
|
162
199
|
params(y: Enumerator::Yielder, boundary: String, key: T.any(Symbol, String), val: T.anything).void
|
163
200
|
end
|
164
201
|
private def encode_multipart_formdata(y, boundary:, key:, val:)
|
165
202
|
end
|
166
203
|
|
204
|
+
# @api private
|
167
205
|
sig { params(body: T.anything).returns([String, T::Enumerable[String]]) }
|
168
206
|
private def encode_multipart_streaming(body)
|
169
207
|
end
|
170
208
|
|
209
|
+
# @api private
|
171
210
|
sig { params(headers: T::Hash[String, String], body: T.anything).returns(T.anything) }
|
172
211
|
def encode_content(headers, body)
|
173
212
|
end
|
174
213
|
|
214
|
+
# @api private
|
175
215
|
sig do
|
176
216
|
params(
|
177
217
|
headers: T.any(T::Hash[String, String], Net::HTTPHeader),
|
@@ -185,6 +225,9 @@ module TerminalShop
|
|
185
225
|
end
|
186
226
|
|
187
227
|
class << self
|
228
|
+
# @api private
|
229
|
+
#
|
230
|
+
# https://doc.rust-lang.org/std/iter/trait.FusedIterator.html
|
188
231
|
sig do
|
189
232
|
params(enum: T::Enumerable[T.anything], external: T::Boolean, close: T.proc.void)
|
190
233
|
.returns(T::Enumerable[T.anything])
|
@@ -192,30 +235,34 @@ module TerminalShop
|
|
192
235
|
def fused_enum(enum, external: false, &close)
|
193
236
|
end
|
194
237
|
|
238
|
+
# @api private
|
195
239
|
sig { params(enum: T.nilable(T::Enumerable[T.anything])).void }
|
196
240
|
def close_fused!(enum)
|
197
241
|
end
|
198
242
|
|
243
|
+
# @api private
|
199
244
|
sig do
|
200
|
-
params(
|
201
|
-
|
202
|
-
blk: T.proc.params(arg0: Enumerator::Yielder).void
|
203
|
-
).void
|
245
|
+
params(enum: T.nilable(T::Enumerable[T.anything]), blk: T.proc.params(arg0: Enumerator::Yielder).void)
|
246
|
+
.returns(T::Enumerable[T.anything])
|
204
247
|
end
|
205
248
|
def chain_fused(enum, &blk)
|
206
249
|
end
|
207
250
|
end
|
208
251
|
|
209
|
-
|
252
|
+
ServerSentEvent = T.type_alias do
|
210
253
|
{event: T.nilable(String), data: T.nilable(String), id: T.nilable(String), retry: T.nilable(Integer)}
|
211
254
|
end
|
212
255
|
|
213
256
|
class << self
|
257
|
+
# @api private
|
214
258
|
sig { params(enum: T::Enumerable[String]).returns(T::Enumerable[String]) }
|
215
259
|
def decode_lines(enum)
|
216
260
|
end
|
217
261
|
|
218
|
-
|
262
|
+
# @api private
|
263
|
+
#
|
264
|
+
# https://html.spec.whatwg.org/multipage/server-sent-events.html#parsing-an-event-stream
|
265
|
+
sig { params(lines: T::Enumerable[String]).returns(TerminalShop::Util::ServerSentEvent) }
|
219
266
|
def decode_sse(lines)
|
220
267
|
end
|
221
268
|
end
|
@@ -45,7 +45,12 @@ module TerminalShop
|
|
45
45
|
response_headers: ::Hash[String, String]
|
46
46
|
) -> TerminalShop::BaseClient::request_input
|
47
47
|
|
48
|
-
|
48
|
+
def self.reap_connection!: (
|
49
|
+
Integer | TerminalShop::APIConnectionError status,
|
50
|
+
stream: Enumerable[String]?
|
51
|
+
) -> void
|
52
|
+
|
53
|
+
# @api private
|
49
54
|
attr_accessor requester: top
|
50
55
|
|
51
56
|
def initialize: (
|
@@ -85,9 +85,11 @@ module TerminalShop
|
|
85
85
|
class Union
|
86
86
|
extend TerminalShop::Converter
|
87
87
|
|
88
|
-
private def self.known_variants: -> ::Array[[Symbol?,
|
88
|
+
private def self.known_variants: -> ::Array[[Symbol?, (^-> TerminalShop::Converter::input)]]
|
89
89
|
|
90
|
-
def self.
|
90
|
+
def self.derefed_variants: -> ::Array[[Symbol?, top]]
|
91
|
+
|
92
|
+
def self.variants: -> ::Array[top]
|
91
93
|
|
92
94
|
private def self.discriminator: (Symbol property) -> void
|
93
95
|
|
@@ -118,7 +120,7 @@ module TerminalShop
|
|
118
120
|
) -> ([true, top, nil] | [false, bool, Integer])
|
119
121
|
end
|
120
122
|
|
121
|
-
class ArrayOf
|
123
|
+
class ArrayOf[Elem]
|
122
124
|
include TerminalShop::Converter
|
123
125
|
|
124
126
|
def ===: (top other) -> bool
|
@@ -133,7 +135,7 @@ module TerminalShop
|
|
133
135
|
top value
|
134
136
|
) -> ([true, top, nil] | [false, bool, Integer])
|
135
137
|
|
136
|
-
def item_type: ->
|
138
|
+
def item_type: -> Elem
|
137
139
|
|
138
140
|
def initialize: (
|
139
141
|
::Hash[Symbol, top]
|
@@ -143,7 +145,7 @@ module TerminalShop
|
|
143
145
|
) -> void
|
144
146
|
end
|
145
147
|
|
146
|
-
class HashOf
|
148
|
+
class HashOf[Elem]
|
147
149
|
include TerminalShop::Converter
|
148
150
|
|
149
151
|
def ===: (top other) -> bool
|
@@ -158,7 +160,7 @@ module TerminalShop
|
|
158
160
|
top value
|
159
161
|
) -> ([true, top, nil] | [false, bool, Integer])
|
160
162
|
|
161
|
-
def item_type: ->
|
163
|
+
def item_type: -> Elem
|
162
164
|
|
163
165
|
def initialize: (
|
164
166
|
::Hash[Symbol, top]
|
@@ -1,17 +1,17 @@
|
|
1
1
|
module TerminalShop
|
2
2
|
class Error < StandardError
|
3
|
-
|
3
|
+
attr_accessor cause: StandardError?
|
4
4
|
end
|
5
5
|
|
6
6
|
class ConversionError < TerminalShop::Error
|
7
7
|
end
|
8
8
|
|
9
9
|
class APIError < TerminalShop::Error
|
10
|
-
|
10
|
+
attr_accessor url: URI::Generic
|
11
11
|
|
12
|
-
|
12
|
+
attr_accessor status: Integer?
|
13
13
|
|
14
|
-
|
14
|
+
attr_accessor body: top?
|
15
15
|
|
16
16
|
def initialize: (
|
17
17
|
url: URI::Generic,
|
@@ -85,7 +85,7 @@ module TerminalShop
|
|
85
85
|
def to_hash: -> TerminalShop::Models::SubscriptionAPI::Schedule::weekly
|
86
86
|
end
|
87
87
|
|
88
|
-
|
88
|
+
def self.variants: -> [TerminalShop::Models::SubscriptionAPI::Schedule::Fixed, TerminalShop::Models::SubscriptionAPI::Schedule::Weekly]
|
89
89
|
end
|
90
90
|
end
|
91
91
|
end
|
@@ -19,11 +19,16 @@ module TerminalShop
|
|
19
19
|
(String arg0) -> void
|
20
20
|
} -> top
|
21
21
|
|
22
|
-
private def with_pool: (
|
22
|
+
private def with_pool: (
|
23
|
+
URI::Generic url,
|
24
|
+
deadline: Float
|
25
|
+
) {
|
26
|
+
(top arg0) -> void
|
27
|
+
} -> void
|
23
28
|
|
24
29
|
def execute: (
|
25
30
|
TerminalShop::PooledNetRequester::request request
|
26
|
-
) -> [top, Enumerable[String]]
|
31
|
+
) -> [Integer, top, Enumerable[String]]
|
27
32
|
|
28
33
|
def initialize: (size: Integer) -> void
|
29
34
|
end
|
data/sig/terminal-shop/util.rbs
CHANGED
@@ -6,7 +6,7 @@ module TerminalShop
|
|
6
6
|
|
7
7
|
def self?.os: -> String
|
8
8
|
|
9
|
-
def self?.primitive?: (top input) ->
|
9
|
+
def self?.primitive?: (top input) -> bool
|
10
10
|
|
11
11
|
def self?.coerce_boolean: (top input) -> (bool | top)
|
12
12
|
|
@@ -122,15 +122,15 @@ module TerminalShop
|
|
122
122
|
Enumerable[top]? enum
|
123
123
|
) {
|
124
124
|
(Enumerator::Yielder arg0) -> void
|
125
|
-
} ->
|
125
|
+
} -> Enumerable[top]
|
126
126
|
|
127
|
-
type
|
127
|
+
type server_sent_event =
|
128
128
|
{ event: String?, data: String?, id: String?, retry: Integer? }
|
129
129
|
|
130
130
|
def self?.decode_lines: (Enumerable[String] enum) -> Enumerable[String]
|
131
131
|
|
132
132
|
def self?.decode_sse: (
|
133
133
|
Enumerable[String] lines
|
134
|
-
) -> TerminalShop::Util::
|
134
|
+
) -> TerminalShop::Util::server_sent_event
|
135
135
|
end
|
136
136
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: terminal-shop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Terminal
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-03-
|
11
|
+
date: 2025-03-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: connection_pool
|
@@ -346,10 +346,10 @@ files:
|
|
346
346
|
- sig/terminal-shop/resources/view.rbs
|
347
347
|
- sig/terminal-shop/util.rbs
|
348
348
|
- sig/terminal-shop/version.rbs
|
349
|
-
homepage: https://gemdocs.org/gems/terminal-shop
|
349
|
+
homepage: https://gemdocs.org/gems/terminal-shop
|
350
350
|
licenses: []
|
351
351
|
metadata:
|
352
|
-
homepage_uri: https://gemdocs.org/gems/terminal-shop
|
352
|
+
homepage_uri: https://gemdocs.org/gems/terminal-shop
|
353
353
|
source_code_uri: https://github.com/terminaldotshop/terminal-sdk-ruby
|
354
354
|
rubygems_mfa_required: 'false'
|
355
355
|
post_install_message:
|