rubysky 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gem_rbs_collection/activesupport/7.0/.rbs_meta.yaml +1 -1
- data/.gem_rbs_collection/activesupport/7.0/activesupport-7.0.rbs +239 -0
- data/.gem_rbs_collection/activesupport/7.0/activesupport-generated.rbs +0 -141
- data/.gem_rbs_collection/activesupport/7.0/activesupport.rbs +141 -0
- data/.gem_rbs_collection/ast/2.4/.rbs_meta.yaml +1 -1
- data/.gem_rbs_collection/concurrent-ruby/1.1/.rbs_meta.yaml +1 -1
- data/.gem_rbs_collection/connection_pool/2.4/.rbs_meta.yaml +1 -1
- data/.gem_rbs_collection/connection_pool/2.4/manifest.yaml +1 -1
- data/.gem_rbs_collection/diff-lcs/1.5/.rbs_meta.yaml +1 -1
- data/.gem_rbs_collection/i18n/1.10/.rbs_meta.yaml +1 -1
- data/.gem_rbs_collection/listen/3.9/.rbs_meta.yaml +1 -1
- data/.gem_rbs_collection/parallel/1.20/.rbs_meta.yaml +1 -1
- data/.gem_rbs_collection/parser/3.2/.rbs_meta.yaml +1 -1
- data/.gem_rbs_collection/rainbow/3.0/.rbs_meta.yaml +1 -1
- data/.gem_rbs_collection/rake/13.0/.rbs_meta.yaml +1 -1
- data/.gem_rbs_collection/regexp_parser/2.8/.rbs_meta.yaml +1 -1
- data/.gem_rbs_collection/rubocop/1.57/.rbs_meta.yaml +1 -1
- data/.gem_rbs_collection/rubocop-ast/1.30/.rbs_meta.yaml +1 -1
- data/.gem_rbs_collection/tzinfo/2.0/.rbs_meta.yaml +1 -1
- data/lib/rubysky/raw/client.rb +35 -0
- data/lib/rubysky/version.rb +1 -1
- data/rbs_collection.lock.yaml +26 -22
- data/sig/rubysky.rbs +7 -1
- metadata +3 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f87f2e74de1715a21180af819d5fcca14528c11a281111f661c02046683aa161
|
4
|
+
data.tar.gz: 6bc798abba202fb175489092538862157d6e0238675e6086fb79578ddfeed5ac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4490dfc932d909faf3ebb882518a19d9b922102850562e44ab04649cec114c8fbbe22edf84b10e0b7b422da00893b9733c9c63e5838bec3d6d08fa041895b978
|
7
|
+
data.tar.gz: 883934d47f33e22ce7a4020b9770c1c46bc72fd8c46eafae920b47b00e31ff37dfbf599c16cd37ab910098b84b56ed2a64001c82e3179398fc8f830916b5ddb8
|
@@ -138,3 +138,242 @@ end
|
|
138
138
|
class String
|
139
139
|
def downcase_first: () -> String
|
140
140
|
end
|
141
|
+
|
142
|
+
# active_support/core_ext/array/conversions.rb
|
143
|
+
class Array[unchecked out Elem]
|
144
|
+
# Extends <tt>Array#to_s</tt> to convert a collection of elements into a
|
145
|
+
# comma separated id list if <tt>:db</tt> argument is given as the format.
|
146
|
+
#
|
147
|
+
# This method is aliased to <tt>to_formatted_s</tt>.
|
148
|
+
#
|
149
|
+
# Blog.all.to_fs(:db) # => "1,2,3"
|
150
|
+
# Blog.none.to_fs(:db) # => "null"
|
151
|
+
# [1,2].to_fs # => "[1, 2]"
|
152
|
+
def to_fs: (?Symbol format) -> String
|
153
|
+
end
|
154
|
+
|
155
|
+
# active_support/core_ext/numeric/conversions.rb
|
156
|
+
class Numeric
|
157
|
+
# \Numeric With Format
|
158
|
+
#
|
159
|
+
# Provides options for converting numbers into formatted strings.
|
160
|
+
# Options are provided for phone numbers, currency, percentage,
|
161
|
+
# precision, positional notation, file size, and pretty printing.
|
162
|
+
#
|
163
|
+
# This method is aliased to <tt>to_formatted_s</tt>.
|
164
|
+
#
|
165
|
+
# ==== Options
|
166
|
+
#
|
167
|
+
# For details on which formats use which options, see ActiveSupport::NumberHelper
|
168
|
+
#
|
169
|
+
# ==== Examples
|
170
|
+
#
|
171
|
+
# Phone Numbers:
|
172
|
+
# 5551234.to_fs(:phone) # => "555-1234"
|
173
|
+
# 1235551234.to_fs(:phone) # => "123-555-1234"
|
174
|
+
# 1235551234.to_fs(:phone, area_code: true) # => "(123) 555-1234"
|
175
|
+
# 1235551234.to_fs(:phone, delimiter: ' ') # => "123 555 1234"
|
176
|
+
# 1235551234.to_fs(:phone, area_code: true, extension: 555) # => "(123) 555-1234 x 555"
|
177
|
+
# 1235551234.to_fs(:phone, country_code: 1) # => "+1-123-555-1234"
|
178
|
+
# 1235551234.to_fs(:phone, country_code: 1, extension: 1343, delimiter: '.')
|
179
|
+
# # => "+1.123.555.1234 x 1343"
|
180
|
+
#
|
181
|
+
# Currency:
|
182
|
+
# 1234567890.50.to_fs(:currency) # => "$1,234,567,890.50"
|
183
|
+
# 1234567890.506.to_fs(:currency) # => "$1,234,567,890.51"
|
184
|
+
# 1234567890.506.to_fs(:currency, precision: 3) # => "$1,234,567,890.506"
|
185
|
+
# 1234567890.506.to_fs(:currency, round_mode: :down) # => "$1,234,567,890.50"
|
186
|
+
# 1234567890.506.to_fs(:currency, locale: :fr) # => "1 234 567 890,51 €"
|
187
|
+
# -1234567890.50.to_fs(:currency, negative_format: '(%u%n)')
|
188
|
+
# # => "($1,234,567,890.50)"
|
189
|
+
# 1234567890.50.to_fs(:currency, unit: '£', separator: ',', delimiter: '')
|
190
|
+
# # => "£1234567890,50"
|
191
|
+
# 1234567890.50.to_fs(:currency, unit: '£', separator: ',', delimiter: '', format: '%n %u')
|
192
|
+
# # => "1234567890,50 £"
|
193
|
+
#
|
194
|
+
# Percentage:
|
195
|
+
# 100.to_fs(:percentage) # => "100.000%"
|
196
|
+
# 100.to_fs(:percentage, precision: 0) # => "100%"
|
197
|
+
# 1000.to_fs(:percentage, delimiter: '.', separator: ',') # => "1.000,000%"
|
198
|
+
# 302.24398923423.to_fs(:percentage, precision: 5) # => "302.24399%"
|
199
|
+
# 302.24398923423.to_fs(:percentage, round_mode: :down) # => "302.243%"
|
200
|
+
# 1000.to_fs(:percentage, locale: :fr) # => "1 000,000%"
|
201
|
+
# 100.to_fs(:percentage, format: '%n %') # => "100.000 %"
|
202
|
+
#
|
203
|
+
# Delimited:
|
204
|
+
# 12345678.to_fs(:delimited) # => "12,345,678"
|
205
|
+
# 12345678.05.to_fs(:delimited) # => "12,345,678.05"
|
206
|
+
# 12345678.to_fs(:delimited, delimiter: '.') # => "12.345.678"
|
207
|
+
# 12345678.to_fs(:delimited, delimiter: ',') # => "12,345,678"
|
208
|
+
# 12345678.05.to_fs(:delimited, separator: ' ') # => "12,345,678 05"
|
209
|
+
# 12345678.05.to_fs(:delimited, locale: :fr) # => "12 345 678,05"
|
210
|
+
# 98765432.98.to_fs(:delimited, delimiter: ' ', separator: ',')
|
211
|
+
# # => "98 765 432,98"
|
212
|
+
#
|
213
|
+
# Rounded:
|
214
|
+
# 111.2345.to_fs(:rounded) # => "111.235"
|
215
|
+
# 111.2345.to_fs(:rounded, precision: 2) # => "111.23"
|
216
|
+
# 111.2345.to_fs(:rounded, precision: 2, round_mode: :up) # => "111.24"
|
217
|
+
# 13.to_fs(:rounded, precision: 5) # => "13.00000"
|
218
|
+
# 389.32314.to_fs(:rounded, precision: 0) # => "389"
|
219
|
+
# 111.2345.to_fs(:rounded, significant: true) # => "111"
|
220
|
+
# 111.2345.to_fs(:rounded, precision: 1, significant: true) # => "100"
|
221
|
+
# 13.to_fs(:rounded, precision: 5, significant: true) # => "13.000"
|
222
|
+
# 111.234.to_fs(:rounded, locale: :fr) # => "111,234"
|
223
|
+
# 13.to_fs(:rounded, precision: 5, significant: true, strip_insignificant_zeros: true)
|
224
|
+
# # => "13"
|
225
|
+
# 389.32314.to_fs(:rounded, precision: 4, significant: true) # => "389.3"
|
226
|
+
# 1111.2345.to_fs(:rounded, precision: 2, separator: ',', delimiter: '.')
|
227
|
+
# # => "1.111,23"
|
228
|
+
#
|
229
|
+
# Human-friendly size in Bytes:
|
230
|
+
# 123.to_fs(:human_size) # => "123 Bytes"
|
231
|
+
# 1234.to_fs(:human_size) # => "1.21 KB"
|
232
|
+
# 12345.to_fs(:human_size) # => "12.1 KB"
|
233
|
+
# 1234567.to_fs(:human_size) # => "1.18 MB"
|
234
|
+
# 1234567890.to_fs(:human_size) # => "1.15 GB"
|
235
|
+
# 1234567890123.to_fs(:human_size) # => "1.12 TB"
|
236
|
+
# 1234567890123456.to_fs(:human_size) # => "1.1 PB"
|
237
|
+
# 1234567890123456789.to_fs(:human_size) # => "1.07 EB"
|
238
|
+
# 1234567.to_fs(:human_size, precision: 2) # => "1.2 MB"
|
239
|
+
# 1234567.to_fs(:human_size, precision: 2, round_mode: :up) # => "1.3 MB"
|
240
|
+
# 483989.to_fs(:human_size, precision: 2) # => "470 KB"
|
241
|
+
# 1234567.to_fs(:human_size, precision: 2, separator: ',') # => "1,2 MB"
|
242
|
+
# 1234567890123.to_fs(:human_size, precision: 5) # => "1.1228 TB"
|
243
|
+
# 524288000.to_fs(:human_size, precision: 5) # => "500 MB"
|
244
|
+
#
|
245
|
+
# Human-friendly format:
|
246
|
+
# 123.to_fs(:human) # => "123"
|
247
|
+
# 1234.to_fs(:human) # => "1.23 Thousand"
|
248
|
+
# 12345.to_fs(:human) # => "12.3 Thousand"
|
249
|
+
# 1234567.to_fs(:human) # => "1.23 Million"
|
250
|
+
# 1234567890.to_fs(:human) # => "1.23 Billion"
|
251
|
+
# 1234567890123.to_fs(:human) # => "1.23 Trillion"
|
252
|
+
# 1234567890123456.to_fs(:human) # => "1.23 Quadrillion"
|
253
|
+
# 1234567890123456789.to_fs(:human) # => "1230 Quadrillion"
|
254
|
+
# 489939.to_fs(:human, precision: 2) # => "490 Thousand"
|
255
|
+
# 489939.to_fs(:human, precision: 2, round_mode: :down) # => "480 Thousand"
|
256
|
+
# 489939.to_fs(:human, precision: 4) # => "489.9 Thousand"
|
257
|
+
# 1234567.to_fs(:human, precision: 4,
|
258
|
+
# significant: false) # => "1.2346 Million"
|
259
|
+
# 1234567.to_fs(:human, precision: 1,
|
260
|
+
# separator: ',',
|
261
|
+
# significant: false) # => "1,2 Million"
|
262
|
+
def to_fs: (?Symbol format, **untyped) -> String
|
263
|
+
end
|
264
|
+
|
265
|
+
# active_support/core_ext/range/conversions.rb
|
266
|
+
class Range[out Elem]
|
267
|
+
# Convert range to a formatted string. See RANGE_FORMATS for predefined formats.
|
268
|
+
#
|
269
|
+
# This method is aliased to <tt>to_formatted_s</tt>.
|
270
|
+
#
|
271
|
+
# range = (1..100) # => 1..100
|
272
|
+
#
|
273
|
+
# range.to_s # => "1..100"
|
274
|
+
# range.to_fs(:db) # => "BETWEEN '1' AND '100'"
|
275
|
+
#
|
276
|
+
# range = (1..) # => 1..
|
277
|
+
# range.to_fs(:db) # => ">= '1'"
|
278
|
+
#
|
279
|
+
# range = (..100) # => ..100
|
280
|
+
# range.to_fs(:db) # => "<= '100'"
|
281
|
+
#
|
282
|
+
# == Adding your own range formats to to_fs
|
283
|
+
# You can add your own formats to the Range::RANGE_FORMATS hash.
|
284
|
+
# Use the format name as the hash key and a Proc instance.
|
285
|
+
#
|
286
|
+
# # config/initializers/range_formats.rb
|
287
|
+
# Range::RANGE_FORMATS[:short] = ->(start, stop) { "Between #{start.to_fs(:db)} and #{stop.to_fs(:db)}" }
|
288
|
+
def to_fs: (?Symbol format) -> String
|
289
|
+
end
|
290
|
+
|
291
|
+
# active_support/core_ext/date/conversions.rb
|
292
|
+
class Date
|
293
|
+
# Convert to a formatted string. See DATE_FORMATS for predefined formats.
|
294
|
+
#
|
295
|
+
# This method is aliased to <tt>to_formatted_s</tt>.
|
296
|
+
#
|
297
|
+
# date = Date.new(2007, 11, 10) # => Sat, 10 Nov 2007
|
298
|
+
#
|
299
|
+
# date.to_fs(:db) # => "2007-11-10"
|
300
|
+
# date.to_formatted_s(:db) # => "2007-11-10"
|
301
|
+
#
|
302
|
+
# date.to_fs(:short) # => "10 Nov"
|
303
|
+
# date.to_fs(:number) # => "20071110"
|
304
|
+
# date.to_fs(:long) # => "November 10, 2007"
|
305
|
+
# date.to_fs(:long_ordinal) # => "November 10th, 2007"
|
306
|
+
# date.to_fs(:rfc822) # => "10 Nov 2007"
|
307
|
+
# date.to_fs(:iso8601) # => "2007-11-10"
|
308
|
+
#
|
309
|
+
# == Adding your own date formats to to_fs
|
310
|
+
# You can add your own formats to the Date::DATE_FORMATS hash.
|
311
|
+
# Use the format name as the hash key and either a strftime string
|
312
|
+
# or Proc instance that takes a date argument as the value.
|
313
|
+
#
|
314
|
+
# # config/initializers/date_formats.rb
|
315
|
+
# Date::DATE_FORMATS[:month_and_year] = '%B %Y'
|
316
|
+
# Date::DATE_FORMATS[:short_ordinal] = ->(date) { date.strftime("%B #{date.day.ordinalize}") }
|
317
|
+
def to_fs: (?Symbol format) -> String
|
318
|
+
end
|
319
|
+
|
320
|
+
# active_support/core_ext/time/conversions.rb
|
321
|
+
class Time
|
322
|
+
# Converts to a formatted string. See DATE_FORMATS for built-in formats.
|
323
|
+
#
|
324
|
+
# This method is aliased to <tt>to_formatted_s</tt>.
|
325
|
+
#
|
326
|
+
# time = Time.now # => 2007-01-18 06:10:17 -06:00
|
327
|
+
#
|
328
|
+
# time.to_fs(:time) # => "06:10"
|
329
|
+
# time.to_formatted_s(:time) # => "06:10"
|
330
|
+
#
|
331
|
+
# time.to_fs(:db) # => "2007-01-18 06:10:17"
|
332
|
+
# time.to_fs(:number) # => "20070118061017"
|
333
|
+
# time.to_fs(:short) # => "18 Jan 06:10"
|
334
|
+
# time.to_fs(:long) # => "January 18, 2007 06:10"
|
335
|
+
# time.to_fs(:long_ordinal) # => "January 18th, 2007 06:10"
|
336
|
+
# time.to_fs(:rfc822) # => "Thu, 18 Jan 2007 06:10:17 -0600"
|
337
|
+
# time.to_fs(:rfc2822) # => "Thu, 18 Jan 2007 06:10:17 -0600"
|
338
|
+
# time.to_fs(:iso8601) # => "2007-01-18T06:10:17-06:00"
|
339
|
+
#
|
340
|
+
# == Adding your own time formats to +to_fs+
|
341
|
+
# You can add your own formats to the Time::DATE_FORMATS hash.
|
342
|
+
# Use the format name as the hash key and either a strftime string
|
343
|
+
# or Proc instance that takes a time argument as the value.
|
344
|
+
#
|
345
|
+
# # config/initializers/time_formats.rb
|
346
|
+
# Time::DATE_FORMATS[:month_and_year] = '%B %Y'
|
347
|
+
# Time::DATE_FORMATS[:short_ordinal] = ->(time) { time.strftime("%B #{time.day.ordinalize}") }
|
348
|
+
def to_fs: (?Symbol format) -> String
|
349
|
+
end
|
350
|
+
|
351
|
+
# active_support/core_ext/date_time/conversions.rb
|
352
|
+
class DateTime
|
353
|
+
# Convert to a formatted string. See Time::DATE_FORMATS for predefined formats.
|
354
|
+
#
|
355
|
+
# This method is aliased to <tt>to_formatted_s</tt>.
|
356
|
+
#
|
357
|
+
# === Examples
|
358
|
+
# datetime = DateTime.civil(2007, 12, 4, 0, 0, 0, 0) # => Tue, 04 Dec 2007 00:00:00 +0000
|
359
|
+
#
|
360
|
+
# datetime.to_fs(:db) # => "2007-12-04 00:00:00"
|
361
|
+
# datetime.to_formatted_s(:db) # => "2007-12-04 00:00:00"
|
362
|
+
# datetime.to_fs(:number) # => "20071204000000"
|
363
|
+
# datetime.to_fs(:short) # => "04 Dec 00:00"
|
364
|
+
# datetime.to_fs(:long) # => "December 04, 2007 00:00"
|
365
|
+
# datetime.to_fs(:long_ordinal) # => "December 4th, 2007 00:00"
|
366
|
+
# datetime.to_fs(:rfc822) # => "Tue, 04 Dec 2007 00:00:00 +0000"
|
367
|
+
# datetime.to_fs(:iso8601) # => "2007-12-04T00:00:00+00:00"
|
368
|
+
#
|
369
|
+
# == Adding your own datetime formats to to_fs
|
370
|
+
# DateTime formats are shared with Time. You can add your own to the
|
371
|
+
# Time::DATE_FORMATS hash. Use the format name as the hash key and
|
372
|
+
# either a strftime string or Proc instance that takes a time or
|
373
|
+
# datetime argument as the value.
|
374
|
+
#
|
375
|
+
# # config/initializers/time_formats.rb
|
376
|
+
# Time::DATE_FORMATS[:month_and_year] = '%B %Y'
|
377
|
+
# Time::DATE_FORMATS[:short_ordinal] = lambda { |time| time.strftime("%B #{time.day.ordinalize}") }
|
378
|
+
def to_fs: (?Symbol format) -> String
|
379
|
+
end
|
@@ -1984,83 +1984,6 @@ class Array[unchecked out Elem]
|
|
1984
1984
|
def to_formatted_s: (?::Symbol format) -> untyped
|
1985
1985
|
|
1986
1986
|
alias to_default_s to_s
|
1987
|
-
|
1988
|
-
# Returns a string that represents the array in XML by invoking +to_xml+
|
1989
|
-
# on each element. Active Record collections delegate their representation
|
1990
|
-
# in XML to this method.
|
1991
|
-
#
|
1992
|
-
# All elements are expected to respond to +to_xml+, if any of them does
|
1993
|
-
# not then an exception is raised.
|
1994
|
-
#
|
1995
|
-
# The root node reflects the class name of the first element in plural
|
1996
|
-
# if all elements belong to the same type and that's not Hash:
|
1997
|
-
#
|
1998
|
-
# customer.projects.to_xml
|
1999
|
-
#
|
2000
|
-
# <?xml version="1.0" encoding="UTF-8"?>
|
2001
|
-
# <projects type="array">
|
2002
|
-
# <project>
|
2003
|
-
# <amount type="decimal">20000.0</amount>
|
2004
|
-
# <customer-id type="integer">1567</customer-id>
|
2005
|
-
# <deal-date type="date">2008-04-09</deal-date>
|
2006
|
-
# ...
|
2007
|
-
# </project>
|
2008
|
-
# <project>
|
2009
|
-
# <amount type="decimal">57230.0</amount>
|
2010
|
-
# <customer-id type="integer">1567</customer-id>
|
2011
|
-
# <deal-date type="date">2008-04-15</deal-date>
|
2012
|
-
# ...
|
2013
|
-
# </project>
|
2014
|
-
# </projects>
|
2015
|
-
#
|
2016
|
-
# Otherwise the root element is "objects":
|
2017
|
-
#
|
2018
|
-
# [{ foo: 1, bar: 2}, { baz: 3}].to_xml
|
2019
|
-
#
|
2020
|
-
# <?xml version="1.0" encoding="UTF-8"?>
|
2021
|
-
# <objects type="array">
|
2022
|
-
# <object>
|
2023
|
-
# <bar type="integer">2</bar>
|
2024
|
-
# <foo type="integer">1</foo>
|
2025
|
-
# </object>
|
2026
|
-
# <object>
|
2027
|
-
# <baz type="integer">3</baz>
|
2028
|
-
# </object>
|
2029
|
-
# </objects>
|
2030
|
-
#
|
2031
|
-
# If the collection is empty the root element is "nil-classes" by default:
|
2032
|
-
#
|
2033
|
-
# [].to_xml
|
2034
|
-
#
|
2035
|
-
# <?xml version="1.0" encoding="UTF-8"?>
|
2036
|
-
# <nil-classes type="array"/>
|
2037
|
-
#
|
2038
|
-
# To ensure a meaningful root element use the <tt>:root</tt> option:
|
2039
|
-
#
|
2040
|
-
# customer_with_no_projects.projects.to_xml(root: 'projects')
|
2041
|
-
#
|
2042
|
-
# <?xml version="1.0" encoding="UTF-8"?>
|
2043
|
-
# <projects type="array"/>
|
2044
|
-
#
|
2045
|
-
# By default name of the node for the children of root is <tt>root.singularize</tt>.
|
2046
|
-
# You can change it with the <tt>:children</tt> option.
|
2047
|
-
#
|
2048
|
-
# The +options+ hash is passed downwards:
|
2049
|
-
#
|
2050
|
-
# Message.all.to_xml(skip_types: true)
|
2051
|
-
#
|
2052
|
-
# <?xml version="1.0" encoding="UTF-8"?>
|
2053
|
-
# <messages>
|
2054
|
-
# <message>
|
2055
|
-
# <created-at>2008-03-07T09:58:18+01:00</created-at>
|
2056
|
-
# <id>1</id>
|
2057
|
-
# <name>1</name>
|
2058
|
-
# <updated-at>2008-03-07T09:58:18+01:00</updated-at>
|
2059
|
-
# <user-id>1</user-id>
|
2060
|
-
# </message>
|
2061
|
-
# </messages>
|
2062
|
-
#
|
2063
|
-
def to_xml: (?::Hash[untyped, untyped] options) { (untyped) -> untyped } -> untyped
|
2064
1987
|
end
|
2065
1988
|
|
2066
1989
|
class Array[unchecked out Elem]
|
@@ -3016,70 +2939,6 @@ class File
|
|
3016
2939
|
end
|
3017
2940
|
|
3018
2941
|
class Hash[unchecked out K, unchecked out V]
|
3019
|
-
# Returns a string containing an XML representation of its receiver:
|
3020
|
-
#
|
3021
|
-
# { foo: 1, bar: 2 }.to_xml
|
3022
|
-
# # =>
|
3023
|
-
# # <?xml version="1.0" encoding="UTF-8"?>
|
3024
|
-
# # <hash>
|
3025
|
-
# # <foo type="integer">1</foo>
|
3026
|
-
# # <bar type="integer">2</bar>
|
3027
|
-
# # </hash>
|
3028
|
-
#
|
3029
|
-
# To do so, the method loops over the pairs and builds nodes that depend on
|
3030
|
-
# the _values_. Given a pair +key+, +value+:
|
3031
|
-
#
|
3032
|
-
# * If +value+ is a hash there's a recursive call with +key+ as <tt>:root</tt>.
|
3033
|
-
#
|
3034
|
-
# * If +value+ is an array there's a recursive call with +key+ as <tt>:root</tt>,
|
3035
|
-
# and +key+ singularized as <tt>:children</tt>.
|
3036
|
-
#
|
3037
|
-
# * If +value+ is a callable object it must expect one or two arguments. Depending
|
3038
|
-
# on the arity, the callable is invoked with the +options+ hash as first argument
|
3039
|
-
# with +key+ as <tt>:root</tt>, and +key+ singularized as second argument. The
|
3040
|
-
# callable can add nodes by using <tt>options[:builder]</tt>.
|
3041
|
-
#
|
3042
|
-
# {foo: lambda { |options, key| options[:builder].b(key) }}.to_xml
|
3043
|
-
# # => "<b>foo</b>"
|
3044
|
-
#
|
3045
|
-
# * If +value+ responds to +to_xml+ the method is invoked with +key+ as <tt>:root</tt>.
|
3046
|
-
#
|
3047
|
-
# class Foo
|
3048
|
-
# def to_xml(options)
|
3049
|
-
# options[:builder].bar 'fooing!'
|
3050
|
-
# end
|
3051
|
-
# end
|
3052
|
-
#
|
3053
|
-
# { foo: Foo.new }.to_xml(skip_instruct: true)
|
3054
|
-
# # =>
|
3055
|
-
# # <hash>
|
3056
|
-
# # <bar>fooing!</bar>
|
3057
|
-
# # </hash>
|
3058
|
-
#
|
3059
|
-
# * Otherwise, a node with +key+ as tag is created with a string representation of
|
3060
|
-
# +value+ as text node. If +value+ is +nil+ an attribute "nil" set to "true" is added.
|
3061
|
-
# Unless the option <tt>:skip_types</tt> exists and is true, an attribute "type" is
|
3062
|
-
# added as well according to the following mapping:
|
3063
|
-
#
|
3064
|
-
# XML_TYPE_NAMES = {
|
3065
|
-
# "Symbol" => "symbol",
|
3066
|
-
# "Integer" => "integer",
|
3067
|
-
# "BigDecimal" => "decimal",
|
3068
|
-
# "Float" => "float",
|
3069
|
-
# "TrueClass" => "boolean",
|
3070
|
-
# "FalseClass" => "boolean",
|
3071
|
-
# "Date" => "date",
|
3072
|
-
# "DateTime" => "dateTime",
|
3073
|
-
# "Time" => "dateTime"
|
3074
|
-
# }
|
3075
|
-
#
|
3076
|
-
# By default the root node is "hash", but that's configurable via the <tt>:root</tt> option.
|
3077
|
-
#
|
3078
|
-
# The default XML builder is a fresh instance of <tt>Builder::XmlMarkup</tt>. You can
|
3079
|
-
# configure your own builder with the <tt>:builder</tt> option. The method also accepts
|
3080
|
-
# options like <tt>:dasherize</tt> and friends, they are forwarded to the builder.
|
3081
|
-
def to_xml: (?::Hash[untyped, untyped] options) { (untyped) -> untyped } -> untyped
|
3082
|
-
|
3083
2942
|
# Returns a Hash containing a collection of pairs when the key is the node name and the value is
|
3084
2943
|
# its content
|
3085
2944
|
#
|
@@ -394,6 +394,83 @@ end
|
|
394
394
|
class Array[unchecked out Elem]
|
395
395
|
# Manual definition to make block optional
|
396
396
|
def in_groups: (untyped number, ?untyped? fill_with) ?{ (untyped) -> untyped } -> untyped
|
397
|
+
|
398
|
+
# Returns a string that represents the array in XML by invoking +to_xml+
|
399
|
+
# on each element. Active Record collections delegate their representation
|
400
|
+
# in XML to this method.
|
401
|
+
#
|
402
|
+
# All elements are expected to respond to +to_xml+, if any of them does
|
403
|
+
# not then an exception is raised.
|
404
|
+
#
|
405
|
+
# The root node reflects the class name of the first element in plural
|
406
|
+
# if all elements belong to the same type and that's not Hash:
|
407
|
+
#
|
408
|
+
# customer.projects.to_xml
|
409
|
+
#
|
410
|
+
# <?xml version="1.0" encoding="UTF-8"?>
|
411
|
+
# <projects type="array">
|
412
|
+
# <project>
|
413
|
+
# <amount type="decimal">20000.0</amount>
|
414
|
+
# <customer-id type="integer">1567</customer-id>
|
415
|
+
# <deal-date type="date">2008-04-09</deal-date>
|
416
|
+
# ...
|
417
|
+
# </project>
|
418
|
+
# <project>
|
419
|
+
# <amount type="decimal">57230.0</amount>
|
420
|
+
# <customer-id type="integer">1567</customer-id>
|
421
|
+
# <deal-date type="date">2008-04-15</deal-date>
|
422
|
+
# ...
|
423
|
+
# </project>
|
424
|
+
# </projects>
|
425
|
+
#
|
426
|
+
# Otherwise the root element is "objects":
|
427
|
+
#
|
428
|
+
# [{ foo: 1, bar: 2}, { baz: 3}].to_xml
|
429
|
+
#
|
430
|
+
# <?xml version="1.0" encoding="UTF-8"?>
|
431
|
+
# <objects type="array">
|
432
|
+
# <object>
|
433
|
+
# <bar type="integer">2</bar>
|
434
|
+
# <foo type="integer">1</foo>
|
435
|
+
# </object>
|
436
|
+
# <object>
|
437
|
+
# <baz type="integer">3</baz>
|
438
|
+
# </object>
|
439
|
+
# </objects>
|
440
|
+
#
|
441
|
+
# If the collection is empty the root element is "nil-classes" by default:
|
442
|
+
#
|
443
|
+
# [].to_xml
|
444
|
+
#
|
445
|
+
# <?xml version="1.0" encoding="UTF-8"?>
|
446
|
+
# <nil-classes type="array"/>
|
447
|
+
#
|
448
|
+
# To ensure a meaningful root element use the <tt>:root</tt> option:
|
449
|
+
#
|
450
|
+
# customer_with_no_projects.projects.to_xml(root: 'projects')
|
451
|
+
#
|
452
|
+
# <?xml version="1.0" encoding="UTF-8"?>
|
453
|
+
# <projects type="array"/>
|
454
|
+
#
|
455
|
+
# By default name of the node for the children of root is <tt>root.singularize</tt>.
|
456
|
+
# You can change it with the <tt>:children</tt> option.
|
457
|
+
#
|
458
|
+
# The +options+ hash is passed downwards:
|
459
|
+
#
|
460
|
+
# Message.all.to_xml(skip_types: true)
|
461
|
+
#
|
462
|
+
# <?xml version="1.0" encoding="UTF-8"?>
|
463
|
+
# <messages>
|
464
|
+
# <message>
|
465
|
+
# <created-at>2008-03-07T09:58:18+01:00</created-at>
|
466
|
+
# <id>1</id>
|
467
|
+
# <name>1</name>
|
468
|
+
# <updated-at>2008-03-07T09:58:18+01:00</updated-at>
|
469
|
+
# <user-id>1</user-id>
|
470
|
+
# </message>
|
471
|
+
# </messages>
|
472
|
+
#
|
473
|
+
def to_xml: (?::Hash[untyped, untyped] options) ?{ (untyped) -> untyped } -> untyped
|
397
474
|
end
|
398
475
|
|
399
476
|
# active_support/core_ext/object/blank.rb
|
@@ -427,6 +504,70 @@ end
|
|
427
504
|
|
428
505
|
class Hash[unchecked out K, unchecked out V]
|
429
506
|
alias blank? empty?
|
507
|
+
|
508
|
+
# Returns a string containing an XML representation of its receiver:
|
509
|
+
#
|
510
|
+
# { foo: 1, bar: 2 }.to_xml
|
511
|
+
# # =>
|
512
|
+
# # <?xml version="1.0" encoding="UTF-8"?>
|
513
|
+
# # <hash>
|
514
|
+
# # <foo type="integer">1</foo>
|
515
|
+
# # <bar type="integer">2</bar>
|
516
|
+
# # </hash>
|
517
|
+
#
|
518
|
+
# To do so, the method loops over the pairs and builds nodes that depend on
|
519
|
+
# the _values_. Given a pair +key+, +value+:
|
520
|
+
#
|
521
|
+
# * If +value+ is a hash there's a recursive call with +key+ as <tt>:root</tt>.
|
522
|
+
#
|
523
|
+
# * If +value+ is an array there's a recursive call with +key+ as <tt>:root</tt>,
|
524
|
+
# and +key+ singularized as <tt>:children</tt>.
|
525
|
+
#
|
526
|
+
# * If +value+ is a callable object it must expect one or two arguments. Depending
|
527
|
+
# on the arity, the callable is invoked with the +options+ hash as first argument
|
528
|
+
# with +key+ as <tt>:root</tt>, and +key+ singularized as second argument. The
|
529
|
+
# callable can add nodes by using <tt>options[:builder]</tt>.
|
530
|
+
#
|
531
|
+
# {foo: lambda { |options, key| options[:builder].b(key) }}.to_xml
|
532
|
+
# # => "<b>foo</b>"
|
533
|
+
#
|
534
|
+
# * If +value+ responds to +to_xml+ the method is invoked with +key+ as <tt>:root</tt>.
|
535
|
+
#
|
536
|
+
# class Foo
|
537
|
+
# def to_xml(options)
|
538
|
+
# options[:builder].bar 'fooing!'
|
539
|
+
# end
|
540
|
+
# end
|
541
|
+
#
|
542
|
+
# { foo: Foo.new }.to_xml(skip_instruct: true)
|
543
|
+
# # =>
|
544
|
+
# # <hash>
|
545
|
+
# # <bar>fooing!</bar>
|
546
|
+
# # </hash>
|
547
|
+
#
|
548
|
+
# * Otherwise, a node with +key+ as tag is created with a string representation of
|
549
|
+
# +value+ as text node. If +value+ is +nil+ an attribute "nil" set to "true" is added.
|
550
|
+
# Unless the option <tt>:skip_types</tt> exists and is true, an attribute "type" is
|
551
|
+
# added as well according to the following mapping:
|
552
|
+
#
|
553
|
+
# XML_TYPE_NAMES = {
|
554
|
+
# "Symbol" => "symbol",
|
555
|
+
# "Integer" => "integer",
|
556
|
+
# "BigDecimal" => "decimal",
|
557
|
+
# "Float" => "float",
|
558
|
+
# "TrueClass" => "boolean",
|
559
|
+
# "FalseClass" => "boolean",
|
560
|
+
# "Date" => "date",
|
561
|
+
# "DateTime" => "dateTime",
|
562
|
+
# "Time" => "dateTime"
|
563
|
+
# }
|
564
|
+
#
|
565
|
+
# By default the root node is "hash", but that's configurable via the <tt>:root</tt> option.
|
566
|
+
#
|
567
|
+
# The default XML builder is a fresh instance of <tt>Builder::XmlMarkup</tt>. You can
|
568
|
+
# configure your own builder with the <tt>:builder</tt> option. The method also accepts
|
569
|
+
# options like <tt>:dasherize</tt> and friends, they are forwarded to the builder.
|
570
|
+
def to_xml: (?::Hash[untyped, untyped] options) ?{ (untyped) -> untyped } -> untyped
|
430
571
|
end
|
431
572
|
|
432
573
|
class String
|
@@ -1,2 +1,2 @@
|
|
1
|
-
|
1
|
+
dependencies:
|
2
2
|
- name: timeout
|
data/lib/rubysky/raw/client.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "net/http"
|
4
|
+
|
3
5
|
module RubySky
|
4
6
|
module Raw # :nodoc:
|
5
7
|
class Client # :nodoc:
|
@@ -74,6 +76,9 @@ module RubySky
|
|
74
76
|
createdAt: created_at
|
75
77
|
} # : Hash[Symbol, untyped]
|
76
78
|
|
79
|
+
facets = parse_facets(text:)
|
80
|
+
|
81
|
+
record[:facets] = facets unless facets.empty?
|
77
82
|
record[:embed] = embed if embed
|
78
83
|
|
79
84
|
res = send_post(pds: @pds, path: CREATE_RECORD_PATH,
|
@@ -127,6 +132,36 @@ module RubySky
|
|
127
132
|
json = JSON.parse(res.body)
|
128
133
|
@session = Session.from_hash(json)
|
129
134
|
end
|
135
|
+
|
136
|
+
def parse_facets(text:)
|
137
|
+
facets = [] # : Array[facet]
|
138
|
+
# parse_mentions もここでする必要が本当はあるよ。
|
139
|
+
facets += parse_uris(text:)
|
140
|
+
facets
|
141
|
+
end
|
142
|
+
|
143
|
+
def link_facet(start:, end:, uri:)
|
144
|
+
{
|
145
|
+
index: {
|
146
|
+
byteStart: start,
|
147
|
+
byteEnd: binding.local_variable_get(:end) # endは予約語
|
148
|
+
},
|
149
|
+
features: [
|
150
|
+
{
|
151
|
+
"$type": "app.bsky.richtext.facet#link",
|
152
|
+
uri:
|
153
|
+
}
|
154
|
+
]
|
155
|
+
}
|
156
|
+
end
|
157
|
+
|
158
|
+
def parse_uris(text:)
|
159
|
+
reg = URI::DEFAULT_PARSER.make_regexp(%w[http https])
|
160
|
+
text.gsub(reg).map do
|
161
|
+
m = Regexp.last_match
|
162
|
+
link_facet(start: m.begin(0), end: m.end(0), uri: m.to_s)
|
163
|
+
end
|
164
|
+
end
|
130
165
|
end
|
131
166
|
end
|
132
167
|
end
|
data/lib/rubysky/version.rb
CHANGED
data/rbs_collection.lock.yaml
CHANGED
@@ -6,7 +6,7 @@ gems:
|
|
6
6
|
source:
|
7
7
|
type: git
|
8
8
|
name: ruby/gem_rbs_collection
|
9
|
-
revision:
|
9
|
+
revision: ccbd2bbc6be5c195df1d90aa68d64916a9e7d0ab
|
10
10
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
11
11
|
repo_dir: gems
|
12
12
|
- name: ast
|
@@ -14,7 +14,7 @@ gems:
|
|
14
14
|
source:
|
15
15
|
type: git
|
16
16
|
name: ruby/gem_rbs_collection
|
17
|
-
revision:
|
17
|
+
revision: ccbd2bbc6be5c195df1d90aa68d64916a9e7d0ab
|
18
18
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
19
19
|
repo_dir: gems
|
20
20
|
- name: base64
|
@@ -34,7 +34,7 @@ gems:
|
|
34
34
|
source:
|
35
35
|
type: git
|
36
36
|
name: ruby/gem_rbs_collection
|
37
|
-
revision:
|
37
|
+
revision: ccbd2bbc6be5c195df1d90aa68d64916a9e7d0ab
|
38
38
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
39
39
|
repo_dir: gems
|
40
40
|
- name: connection_pool
|
@@ -42,7 +42,7 @@ gems:
|
|
42
42
|
source:
|
43
43
|
type: git
|
44
44
|
name: ruby/gem_rbs_collection
|
45
|
-
revision:
|
45
|
+
revision: ccbd2bbc6be5c195df1d90aa68d64916a9e7d0ab
|
46
46
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
47
47
|
repo_dir: gems
|
48
48
|
- name: csv
|
@@ -58,17 +58,17 @@ gems:
|
|
58
58
|
source:
|
59
59
|
type: git
|
60
60
|
name: ruby/gem_rbs_collection
|
61
|
-
revision:
|
61
|
+
revision: ccbd2bbc6be5c195df1d90aa68d64916a9e7d0ab
|
62
62
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
63
63
|
repo_dir: gems
|
64
|
-
- name:
|
64
|
+
- name: digest
|
65
65
|
version: '0'
|
66
66
|
source:
|
67
67
|
type: stdlib
|
68
|
-
- name:
|
69
|
-
version:
|
68
|
+
- name: erb
|
69
|
+
version: '0'
|
70
70
|
source:
|
71
|
-
type:
|
71
|
+
type: stdlib
|
72
72
|
- name: fileutils
|
73
73
|
version: '0'
|
74
74
|
source:
|
@@ -82,7 +82,7 @@ gems:
|
|
82
82
|
source:
|
83
83
|
type: git
|
84
84
|
name: ruby/gem_rbs_collection
|
85
|
-
revision:
|
85
|
+
revision: ccbd2bbc6be5c195df1d90aa68d64916a9e7d0ab
|
86
86
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
87
87
|
repo_dir: gems
|
88
88
|
- name: json
|
@@ -94,7 +94,7 @@ gems:
|
|
94
94
|
source:
|
95
95
|
type: git
|
96
96
|
name: ruby/gem_rbs_collection
|
97
|
-
revision:
|
97
|
+
revision: ccbd2bbc6be5c195df1d90aa68d64916a9e7d0ab
|
98
98
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
99
99
|
repo_dir: gems
|
100
100
|
- name: logger
|
@@ -110,9 +110,9 @@ gems:
|
|
110
110
|
source:
|
111
111
|
type: stdlib
|
112
112
|
- name: mutex_m
|
113
|
-
version:
|
113
|
+
version: 0.3.0
|
114
114
|
source:
|
115
|
-
type:
|
115
|
+
type: rubygems
|
116
116
|
- name: openssl
|
117
117
|
version: '0'
|
118
118
|
source:
|
@@ -126,7 +126,7 @@ gems:
|
|
126
126
|
source:
|
127
127
|
type: git
|
128
128
|
name: ruby/gem_rbs_collection
|
129
|
-
revision:
|
129
|
+
revision: ccbd2bbc6be5c195df1d90aa68d64916a9e7d0ab
|
130
130
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
131
131
|
repo_dir: gems
|
132
132
|
- name: parser
|
@@ -134,7 +134,7 @@ gems:
|
|
134
134
|
source:
|
135
135
|
type: git
|
136
136
|
name: ruby/gem_rbs_collection
|
137
|
-
revision:
|
137
|
+
revision: ccbd2bbc6be5c195df1d90aa68d64916a9e7d0ab
|
138
138
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
139
139
|
repo_dir: gems
|
140
140
|
- name: pathname
|
@@ -146,7 +146,7 @@ gems:
|
|
146
146
|
source:
|
147
147
|
type: git
|
148
148
|
name: ruby/gem_rbs_collection
|
149
|
-
revision:
|
149
|
+
revision: ccbd2bbc6be5c195df1d90aa68d64916a9e7d0ab
|
150
150
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
151
151
|
repo_dir: gems
|
152
152
|
- name: rake
|
@@ -154,11 +154,11 @@ gems:
|
|
154
154
|
source:
|
155
155
|
type: git
|
156
156
|
name: ruby/gem_rbs_collection
|
157
|
-
revision:
|
157
|
+
revision: ccbd2bbc6be5c195df1d90aa68d64916a9e7d0ab
|
158
158
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
159
159
|
repo_dir: gems
|
160
160
|
- name: rbs
|
161
|
-
version: 3.
|
161
|
+
version: 3.8.0
|
162
162
|
source:
|
163
163
|
type: rubygems
|
164
164
|
- name: rdoc
|
@@ -170,7 +170,7 @@ gems:
|
|
170
170
|
source:
|
171
171
|
type: git
|
172
172
|
name: ruby/gem_rbs_collection
|
173
|
-
revision:
|
173
|
+
revision: ccbd2bbc6be5c195df1d90aa68d64916a9e7d0ab
|
174
174
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
175
175
|
repo_dir: gems
|
176
176
|
- name: rubocop
|
@@ -178,7 +178,7 @@ gems:
|
|
178
178
|
source:
|
179
179
|
type: git
|
180
180
|
name: ruby/gem_rbs_collection
|
181
|
-
revision:
|
181
|
+
revision: ccbd2bbc6be5c195df1d90aa68d64916a9e7d0ab
|
182
182
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
183
183
|
repo_dir: gems
|
184
184
|
- name: rubocop-ast
|
@@ -186,7 +186,7 @@ gems:
|
|
186
186
|
source:
|
187
187
|
type: git
|
188
188
|
name: ruby/gem_rbs_collection
|
189
|
-
revision:
|
189
|
+
revision: ccbd2bbc6be5c195df1d90aa68d64916a9e7d0ab
|
190
190
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
191
191
|
repo_dir: gems
|
192
192
|
- name: securerandom
|
@@ -201,6 +201,10 @@ gems:
|
|
201
201
|
version: '0'
|
202
202
|
source:
|
203
203
|
type: stdlib
|
204
|
+
- name: stringio
|
205
|
+
version: '0'
|
206
|
+
source:
|
207
|
+
type: stdlib
|
204
208
|
- name: strscan
|
205
209
|
version: '0'
|
206
210
|
source:
|
@@ -222,7 +226,7 @@ gems:
|
|
222
226
|
source:
|
223
227
|
type: git
|
224
228
|
name: ruby/gem_rbs_collection
|
225
|
-
revision:
|
229
|
+
revision: ccbd2bbc6be5c195df1d90aa68d64916a9e7d0ab
|
226
230
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
227
231
|
repo_dir: gems
|
228
232
|
- name: uri
|
data/sig/rubysky.rbs
CHANGED
@@ -8,7 +8,7 @@ module RubySky
|
|
8
8
|
def self.from_app_jwt: (identifier: String, password: String, ?pds: String) -> Client
|
9
9
|
|
10
10
|
def initialize: (client: Raw::Client) -> void
|
11
|
-
def post: (text: String, images: Array[{data: IO, mime_type: String, ?alt: String}]) -> Post
|
11
|
+
def post: (text: String, ?images: Array[{data: IO, mime_type: String, ?alt: String}]) -> Post
|
12
12
|
def refresh_jwt: () -> String
|
13
13
|
def user_did: () -> Hash[String, untyped]
|
14
14
|
def user_info: () -> Hash[String, untyped]
|
@@ -41,6 +41,7 @@ module RubySky
|
|
41
41
|
POST_COLLECTION: String
|
42
42
|
|
43
43
|
type embed = Raw::ImageEmbed
|
44
|
+
type facet = { index: { byteStart: Integer, byteEnd: Integer }, features: Array[Hash[Symbol, untyped]] }
|
44
45
|
|
45
46
|
def self.from_refresh_jwt: (refresh_jwt: String, pds: String) -> Client
|
46
47
|
def self.create_session: (pds: String, identifier: String, password: String) -> Client
|
@@ -55,6 +56,11 @@ module RubySky
|
|
55
56
|
|
56
57
|
def valid_access_jwt?: () -> bool
|
57
58
|
|
59
|
+
def parse_facets: (text: String) -> Array[facet]
|
60
|
+
def parse_uris: (text: String) -> Array[facet]
|
61
|
+
|
62
|
+
def link_facet: (start: Integer, end: Integer, uri: String) -> facet
|
63
|
+
|
58
64
|
attr_reader pds: String
|
59
65
|
attr_reader session: Raw::Session
|
60
66
|
end
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubysky
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kugayama Nana
|
8
|
-
autorequire:
|
9
8
|
bindir: exe
|
10
9
|
cert_chain: []
|
11
|
-
date: 2024-12-
|
10
|
+
date: 2024-12-26 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: jwt
|
@@ -107,7 +106,6 @@ metadata:
|
|
107
106
|
source_code_uri: https://github.com/nota/rubysky
|
108
107
|
changelog_uri: https://github.com/nota/simple_tweet/blob/main/CHANGELOG.md
|
109
108
|
rubygems_mfa_required: 'true'
|
110
|
-
post_install_message:
|
111
109
|
rdoc_options: []
|
112
110
|
require_paths:
|
113
111
|
- lib
|
@@ -122,8 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
122
120
|
- !ruby/object:Gem::Version
|
123
121
|
version: '0'
|
124
122
|
requirements: []
|
125
|
-
rubygems_version: 3.
|
126
|
-
signing_key:
|
123
|
+
rubygems_version: 3.6.2
|
127
124
|
specification_version: 4
|
128
125
|
summary: BlueSky API Client
|
129
126
|
test_files: []
|