arfi 0.3.1 → 0.5.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.
@@ -8,19 +8,84 @@ module Arfi
8
8
  #
9
9
  # Loads user defined SQL functions into database.
10
10
  #
11
+ # @param task_name [String|nil] Name of the task.
11
12
  # @return [nil] if there is no `db/functions` directory.
12
13
  # @return [void] if there is no errors.
13
- # @raise [Arfi::Errors::AdapterNotSupported] if database adapter is SQLite.
14
- def load!
15
- return unless sql_files.any?
16
- raise Arfi::Errors::AdapterNotSupported if conn.adapter_name == 'SQLite'
14
+ def load!(task_name: nil)
15
+ self.task_name = task_name[/([^:]+$)/] if task_name
16
+ return puts 'No SQL files found. Skipping db population with ARFI' unless sql_files.any?
17
17
 
18
- populate_db
18
+ raise_unless_supported_adapter
19
+ handle_db_population
19
20
  conn.close
20
21
  end
21
22
 
22
23
  private
23
24
 
25
+ attr_accessor :task_name
26
+
27
+ # +Arfi::SqlFunctionLoader#raise_unless_supported_adapter+ -> void
28
+ #
29
+ # Checks if the database adapter is supported.
30
+ #
31
+ # @!visibility private
32
+ # @private
33
+ # @return [void]
34
+ # @raise [Arfi::Errors::AdapterNotSupported]
35
+ def raise_unless_supported_adapter
36
+ allowed = %w[ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
37
+ ActiveRecord::ConnectionAdapters::Mysql2Adapter].freeze
38
+ return if allowed.include?(conn.class.to_s) # steep:ignore ArgumentTypeMismatch
39
+
40
+ raise Arfi::Errors::AdapterNotSupported
41
+ end
42
+
43
+ # +Arfi::SqlFunctionLoader#handle_db_population+ -> void
44
+ #
45
+ # Loads user defined SQL functions into database. This conditional branch was written this way because if we
46
+ # call db:migrate:db_name, then task_name will not be nil, but it will be zero if we call db:migrate. Then we
47
+ # check that the application has been configured to work with multiple databases in order to populate all
48
+ # databases, and only after this check can we populate the database in case the db:migrate (or any other) task
49
+ # has been called for configuration with a single database. Go to `lib/arfi/tasks/db.rake` for additional info.
50
+ #
51
+ # @!visibility private
52
+ # @private
53
+ # @return [void]
54
+ def handle_db_population
55
+ if task_name || (task_name && multi_db?) || task_name.nil?
56
+ populate_db
57
+ elsif multi_db?
58
+ populate_multiple_db
59
+ end
60
+ end
61
+
62
+ # +Arfi::SqlFunctionLoader#multi_db?+ -> Boolean
63
+ #
64
+ # Checks if the application has been configured to work with multiple databases.
65
+ #
66
+ # @return [Boolean]
67
+ def multi_db?
68
+ ActiveRecord::Base.configurations.configurations.count { _1.env_name == Rails.env } > 1 # steep:ignore NoMethod
69
+ end
70
+
71
+ # +Arfi::SqlFunctionLoader#populate_multiple_db+ -> void
72
+ #
73
+ # Loads user defined SQL functions into all databases.
74
+ #
75
+ # @!visibility private
76
+ # @private
77
+ # @return [void]
78
+ # @see Arfi::SqlFunctionLoader#multi_db?
79
+ # @see Arfi::SqlFunctionLoader#populate_db
80
+ def populate_multiple_db
81
+ # steep:ignore:start
82
+ ActiveRecord::Base.configurations.configurations.select { _1.env_name == Rails.env }.each do |config|
83
+ ActiveRecord::Base.establish_connection(config)
84
+ populate_db
85
+ end
86
+ # steep:ignore:end
87
+ end
88
+
24
89
  # +Arfi::SqlFunctionLoader#populate_db+ -> void
25
90
  #
26
91
  # Loads user defined SQL functions into database.
@@ -32,19 +97,45 @@ module Arfi
32
97
  sql_files.each do |file|
33
98
  sql = File.read(file).strip
34
99
  conn.execute(sql)
35
- puts "[ARFI] Loaded: #{File.basename(file)}"
100
+ puts "[ARFI] Loaded: #{File.basename(file)} into #{conn.pool.db_config.env_name} #{conn.pool.db_config.name}"
36
101
  end
37
102
  end
38
103
 
39
104
  # +Arfi::SqlFunctionLoader#sql_files+ -> Array<String>
40
105
  #
41
- # Helper method to get list of SQL files.
106
+ # Helper method to get list of SQL files. Here we check if we need to populate all databases or just one.
42
107
  #
43
108
  # @!visibility private
44
109
  # @private
45
110
  # @return [Array<String>] List of SQL files.
111
+ # @see Arfi::SqlFunctionLoader#load!
112
+ # @see Arfi::SqlFunctionLoader#multi_db?
113
+ # @see Arfi::SqlFunctionLoader#sql_functions_by_adapter
46
114
  def sql_files
47
- Dir.glob(Rails.root.join('db', 'functions').join('*.sql'))
115
+ if task_name || multi_db?
116
+ sql_functions_by_adapter
117
+ else
118
+ Dir.glob(Rails.root.join('db', 'functions').join('*.sql'))
119
+ end
120
+ end
121
+
122
+ # +Arfi::SqlFunctionLoader#sql_functions_by_adapter+ -> Array<String>
123
+ #
124
+ # Helper method to get list of SQL files for specific database adapter.
125
+ #
126
+ # @!visibility private
127
+ # @private
128
+ # @return [Array<String>] List of SQL files.
129
+ # @raise [Arfi::Errors::AdapterNotSupported] if database adapter is not supported.
130
+ def sql_functions_by_adapter
131
+ case conn
132
+ when ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
133
+ Dir.glob(Rails.root.join('db', 'functions', 'postgresql').join('*.sql'))
134
+ when ActiveRecord::ConnectionAdapters::Mysql2Adapter
135
+ Dir.glob(Rails.root.join('db', 'functions', 'mysql').join('*.sql'))
136
+ else
137
+ raise Arfi::Errors::AdapterNotSupported
138
+ end
48
139
  end
49
140
 
50
141
  # +Arfi::SqlFunctionLoader#conn+ -> ActiveRecord::ConnectionAdapters::AbstractAdapter
@@ -10,8 +10,29 @@ namespace :_db do
10
10
  end
11
11
 
12
12
  Rake::Task.define_task(:environment) unless Rake::Task.task_defined?(:environment)
13
- raise UnrecognizedCommandError, 'Warning: db:migrate task not found' unless Rake::Task.task_defined?('db:migrate')
14
13
 
15
- %w[db:migrate db:schema:load db:setup db:prepare].each do |task|
14
+ # Enhancing single db tasks
15
+ %w[db:migrate db:schema:load db:setup].each do |task|
16
16
  Rake::Task[task].enhance(['_db:arfi_enhance']) if Rake::Task.task_defined?(task)
17
17
  end
18
+
19
+ # We remove user defined keys in database.yml and use only the ones about RDBMS connections.
20
+ # Here we try to find tasks like db:migrate:your_db_name and enhance them as well as tasks for single db connections.
21
+ rdbms_configs = Rails.configuration.database_configuration[Rails.env].select { |_k, v| v.is_a?(Hash) }.keys
22
+ possible_tasks = Rake::Task.tasks.select do |task|
23
+ task.name.match?(/^(db:migrate:|db:schema:load:|db:setup:|db:prepare:|db:test:prepare:)(\w+)$/)
24
+ end
25
+ possible_tasks = possible_tasks.select do |task|
26
+ rdbms_configs.any? { |n| task.name.include?(n) }
27
+ end
28
+
29
+ # In general, this is a small trick due to the fact that Rake does not allow you to view parent tasks from a task that
30
+ # was called for enhancing. Moreover, the utility does not provide for passing parameters to the called task.
31
+ # To get around this limitation, we dynamically create a task with the name we need, and then pass this name as
32
+ # an argument to the method.
33
+ possible_tasks.each do |task|
34
+ Rake::Task.define_task("_db:arfi_enhance:#{task.name}") do
35
+ Arfi::SqlFunctionLoader.load!(task_name: task.name)
36
+ end
37
+ task.enhance(["_db:arfi_enhance:#{task.name}"])
38
+ end
data/lib/arfi/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Arfi
4
- VERSION = '0.3.1'
4
+ VERSION = '0.5.0'
5
5
  end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'yard'
4
+
5
+ # run as `rm -rf arfi_docs && bundle exec rake docs:generate && bundle exec rake docs:push`
6
+
7
+ namespace :docs do
8
+ desc 'Generate new docs and push them repo'
9
+ task :generate do
10
+ puts 'Generating docs...'
11
+ args = %w[--no-cache --private --protected --readme README.md --no-progress --output-dir doc]
12
+ YARD::CLI::Yardoc.run(*args)
13
+ puts 'Docs generated'
14
+ end
15
+
16
+ desc 'Push docs to repo'
17
+ task :push do
18
+ puts 'Copying docs...'
19
+ `git clone git@github.com:unurgunite/arfi_docs.git`
20
+ Dir.chdir('arfi_docs') do
21
+ cp_r('../doc/.', '.', remove_destination: true)
22
+ `git add .`
23
+ `git commit -m "Update docs #{Time.now.utc}"`
24
+ `git push`
25
+ end
26
+ rm_rf('arfi_docs')
27
+ puts 'Docs pushed'
28
+ end
29
+ end
@@ -0,0 +1,452 @@
1
+ ---
2
+ path: ".gem_rbs_collection"
3
+ gems:
4
+ - name: actioncable
5
+ version: '7.1'
6
+ source:
7
+ type: git
8
+ name: ruby/gem_rbs_collection
9
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
10
+ remote: https://github.com/ruby/gem_rbs_collection.git
11
+ repo_dir: gems
12
+ - name: actionmailer
13
+ version: '7.0'
14
+ source:
15
+ type: git
16
+ name: ruby/gem_rbs_collection
17
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
18
+ remote: https://github.com/ruby/gem_rbs_collection.git
19
+ repo_dir: gems
20
+ - name: actionpack
21
+ version: '7.2'
22
+ source:
23
+ type: git
24
+ name: ruby/gem_rbs_collection
25
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
26
+ remote: https://github.com/ruby/gem_rbs_collection.git
27
+ repo_dir: gems
28
+ - name: actiontext
29
+ version: '7.2'
30
+ source:
31
+ type: git
32
+ name: ruby/gem_rbs_collection
33
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
34
+ remote: https://github.com/ruby/gem_rbs_collection.git
35
+ repo_dir: gems
36
+ - name: actionview
37
+ version: '6.0'
38
+ source:
39
+ type: git
40
+ name: ruby/gem_rbs_collection
41
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
42
+ remote: https://github.com/ruby/gem_rbs_collection.git
43
+ repo_dir: gems
44
+ - name: activejob
45
+ version: '6.0'
46
+ source:
47
+ type: git
48
+ name: ruby/gem_rbs_collection
49
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
50
+ remote: https://github.com/ruby/gem_rbs_collection.git
51
+ repo_dir: gems
52
+ - name: activemodel
53
+ version: '7.1'
54
+ source:
55
+ type: git
56
+ name: ruby/gem_rbs_collection
57
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
58
+ remote: https://github.com/ruby/gem_rbs_collection.git
59
+ repo_dir: gems
60
+ - name: activerecord
61
+ version: '8.0'
62
+ source:
63
+ type: git
64
+ name: ruby/gem_rbs_collection
65
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
66
+ remote: https://github.com/ruby/gem_rbs_collection.git
67
+ repo_dir: gems
68
+ - name: activestorage
69
+ version: '7.0'
70
+ source:
71
+ type: git
72
+ name: ruby/gem_rbs_collection
73
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
74
+ remote: https://github.com/ruby/gem_rbs_collection.git
75
+ repo_dir: gems
76
+ - name: activesupport
77
+ version: '7.0'
78
+ source:
79
+ type: git
80
+ name: ruby/gem_rbs_collection
81
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
82
+ remote: https://github.com/ruby/gem_rbs_collection.git
83
+ repo_dir: gems
84
+ - name: ast
85
+ version: '2.4'
86
+ source:
87
+ type: git
88
+ name: ruby/gem_rbs_collection
89
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
90
+ remote: https://github.com/ruby/gem_rbs_collection.git
91
+ repo_dir: gems
92
+ - name: base64
93
+ version: '0.1'
94
+ source:
95
+ type: git
96
+ name: ruby/gem_rbs_collection
97
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
98
+ remote: https://github.com/ruby/gem_rbs_collection.git
99
+ repo_dir: gems
100
+ - name: benchmark
101
+ version: '0'
102
+ source:
103
+ type: stdlib
104
+ - name: bigdecimal
105
+ version: '3.1'
106
+ source:
107
+ type: git
108
+ name: ruby/gem_rbs_collection
109
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
110
+ remote: https://github.com/ruby/gem_rbs_collection.git
111
+ repo_dir: gems
112
+ - name: cgi
113
+ version: '0'
114
+ source:
115
+ type: stdlib
116
+ - name: concurrent-ruby
117
+ version: '1.1'
118
+ source:
119
+ type: git
120
+ name: ruby/gem_rbs_collection
121
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
122
+ remote: https://github.com/ruby/gem_rbs_collection.git
123
+ repo_dir: gems
124
+ - name: connection_pool
125
+ version: '2.4'
126
+ source:
127
+ type: git
128
+ name: ruby/gem_rbs_collection
129
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
130
+ remote: https://github.com/ruby/gem_rbs_collection.git
131
+ repo_dir: gems
132
+ - name: csv
133
+ version: '3.3'
134
+ source:
135
+ type: git
136
+ name: ruby/gem_rbs_collection
137
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
138
+ remote: https://github.com/ruby/gem_rbs_collection.git
139
+ repo_dir: gems
140
+ - name: date
141
+ version: '0'
142
+ source:
143
+ type: stdlib
144
+ - name: delegate
145
+ version: '0'
146
+ source:
147
+ type: stdlib
148
+ - name: diff-lcs
149
+ version: '1.5'
150
+ source:
151
+ type: git
152
+ name: ruby/gem_rbs_collection
153
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
154
+ remote: https://github.com/ruby/gem_rbs_collection.git
155
+ repo_dir: gems
156
+ - name: digest
157
+ version: '0'
158
+ source:
159
+ type: stdlib
160
+ - name: erb
161
+ version: '0'
162
+ source:
163
+ type: stdlib
164
+ - name: ffi
165
+ version: 1.17.2
166
+ source:
167
+ type: rubygems
168
+ - name: fileutils
169
+ version: '0'
170
+ source:
171
+ type: stdlib
172
+ - name: forwardable
173
+ version: '0'
174
+ source:
175
+ type: stdlib
176
+ - name: globalid
177
+ version: '1.1'
178
+ source:
179
+ type: git
180
+ name: ruby/gem_rbs_collection
181
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
182
+ remote: https://github.com/ruby/gem_rbs_collection.git
183
+ repo_dir: gems
184
+ - name: i18n
185
+ version: '1.10'
186
+ source:
187
+ type: git
188
+ name: ruby/gem_rbs_collection
189
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
190
+ remote: https://github.com/ruby/gem_rbs_collection.git
191
+ repo_dir: gems
192
+ - name: io-console
193
+ version: '0'
194
+ source:
195
+ type: stdlib
196
+ - name: json
197
+ version: '0'
198
+ source:
199
+ type: stdlib
200
+ - name: listen
201
+ version: '3.9'
202
+ source:
203
+ type: git
204
+ name: ruby/gem_rbs_collection
205
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
206
+ remote: https://github.com/ruby/gem_rbs_collection.git
207
+ repo_dir: gems
208
+ - name: logger
209
+ version: '0'
210
+ source:
211
+ type: stdlib
212
+ - name: mail
213
+ version: '2.8'
214
+ source:
215
+ type: git
216
+ name: ruby/gem_rbs_collection
217
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
218
+ remote: https://github.com/ruby/gem_rbs_collection.git
219
+ repo_dir: gems
220
+ - name: marcel
221
+ version: '1.0'
222
+ source:
223
+ type: git
224
+ name: ruby/gem_rbs_collection
225
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
226
+ remote: https://github.com/ruby/gem_rbs_collection.git
227
+ repo_dir: gems
228
+ - name: mini_mime
229
+ version: '0.1'
230
+ source:
231
+ type: git
232
+ name: ruby/gem_rbs_collection
233
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
234
+ remote: https://github.com/ruby/gem_rbs_collection.git
235
+ repo_dir: gems
236
+ - name: minitest
237
+ version: '5.25'
238
+ source:
239
+ type: git
240
+ name: ruby/gem_rbs_collection
241
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
242
+ remote: https://github.com/ruby/gem_rbs_collection.git
243
+ repo_dir: gems
244
+ - name: monitor
245
+ version: '0'
246
+ source:
247
+ type: stdlib
248
+ - name: mutex_m
249
+ version: 0.3.0
250
+ source:
251
+ type: rubygems
252
+ - name: net-protocol
253
+ version: '0'
254
+ source:
255
+ type: stdlib
256
+ - name: net-smtp
257
+ version: '0.5'
258
+ source:
259
+ type: git
260
+ name: ruby/gem_rbs_collection
261
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
262
+ remote: https://github.com/ruby/gem_rbs_collection.git
263
+ repo_dir: gems
264
+ - name: nokogiri
265
+ version: '1.11'
266
+ source:
267
+ type: git
268
+ name: ruby/gem_rbs_collection
269
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
270
+ remote: https://github.com/ruby/gem_rbs_collection.git
271
+ repo_dir: gems
272
+ - name: openssl
273
+ version: '0'
274
+ source:
275
+ type: stdlib
276
+ - name: optparse
277
+ version: '0'
278
+ source:
279
+ type: stdlib
280
+ - name: parallel
281
+ version: '1.20'
282
+ source:
283
+ type: git
284
+ name: ruby/gem_rbs_collection
285
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
286
+ remote: https://github.com/ruby/gem_rbs_collection.git
287
+ repo_dir: gems
288
+ - name: parser
289
+ version: '3.2'
290
+ source:
291
+ type: git
292
+ name: ruby/gem_rbs_collection
293
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
294
+ remote: https://github.com/ruby/gem_rbs_collection.git
295
+ repo_dir: gems
296
+ - name: pathname
297
+ version: '0'
298
+ source:
299
+ type: stdlib
300
+ - name: pp
301
+ version: '0'
302
+ source:
303
+ type: stdlib
304
+ - name: prettyprint
305
+ version: '0'
306
+ source:
307
+ type: stdlib
308
+ - name: prism
309
+ version: 1.4.0
310
+ source:
311
+ type: rubygems
312
+ - name: rack
313
+ version: '2.2'
314
+ source:
315
+ type: git
316
+ name: ruby/gem_rbs_collection
317
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
318
+ remote: https://github.com/ruby/gem_rbs_collection.git
319
+ repo_dir: gems
320
+ - name: rails-dom-testing
321
+ version: '2.0'
322
+ source:
323
+ type: git
324
+ name: ruby/gem_rbs_collection
325
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
326
+ remote: https://github.com/ruby/gem_rbs_collection.git
327
+ repo_dir: gems
328
+ - name: rails-html-sanitizer
329
+ version: '1.6'
330
+ source:
331
+ type: git
332
+ name: ruby/gem_rbs_collection
333
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
334
+ remote: https://github.com/ruby/gem_rbs_collection.git
335
+ repo_dir: gems
336
+ - name: railties
337
+ version: '6.0'
338
+ source:
339
+ type: git
340
+ name: ruby/gem_rbs_collection
341
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
342
+ remote: https://github.com/ruby/gem_rbs_collection.git
343
+ repo_dir: gems
344
+ - name: rainbow
345
+ version: '3.0'
346
+ source:
347
+ type: git
348
+ name: ruby/gem_rbs_collection
349
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
350
+ remote: https://github.com/ruby/gem_rbs_collection.git
351
+ repo_dir: gems
352
+ - name: rake
353
+ version: '13.0'
354
+ source:
355
+ type: git
356
+ name: ruby/gem_rbs_collection
357
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
358
+ remote: https://github.com/ruby/gem_rbs_collection.git
359
+ repo_dir: gems
360
+ - name: rbs
361
+ version: 3.9.4
362
+ source:
363
+ type: rubygems
364
+ - name: rdoc
365
+ version: '0'
366
+ source:
367
+ type: stdlib
368
+ - name: regexp_parser
369
+ version: '2.8'
370
+ source:
371
+ type: git
372
+ name: ruby/gem_rbs_collection
373
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
374
+ remote: https://github.com/ruby/gem_rbs_collection.git
375
+ repo_dir: gems
376
+ - name: repl_type_completor
377
+ version: 0.1.11
378
+ source:
379
+ type: rubygems
380
+ - name: rubocop
381
+ version: '1.57'
382
+ source:
383
+ type: git
384
+ name: ruby/gem_rbs_collection
385
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
386
+ remote: https://github.com/ruby/gem_rbs_collection.git
387
+ repo_dir: gems
388
+ - name: rubocop-ast
389
+ version: '1.30'
390
+ source:
391
+ type: git
392
+ name: ruby/gem_rbs_collection
393
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
394
+ remote: https://github.com/ruby/gem_rbs_collection.git
395
+ repo_dir: gems
396
+ - name: securerandom
397
+ version: '0'
398
+ source:
399
+ type: stdlib
400
+ - name: singleton
401
+ version: '0'
402
+ source:
403
+ type: stdlib
404
+ - name: socket
405
+ version: '0'
406
+ source:
407
+ type: stdlib
408
+ - name: stringio
409
+ version: '0'
410
+ source:
411
+ type: stdlib
412
+ - name: strscan
413
+ version: '0'
414
+ source:
415
+ type: stdlib
416
+ - name: tempfile
417
+ version: '0'
418
+ source:
419
+ type: stdlib
420
+ - name: thor
421
+ version: '1.2'
422
+ source:
423
+ type: git
424
+ name: ruby/gem_rbs_collection
425
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
426
+ remote: https://github.com/ruby/gem_rbs_collection.git
427
+ repo_dir: gems
428
+ - name: time
429
+ version: '0'
430
+ source:
431
+ type: stdlib
432
+ - name: timeout
433
+ version: '0'
434
+ source:
435
+ type: stdlib
436
+ - name: tsort
437
+ version: '0'
438
+ source:
439
+ type: stdlib
440
+ - name: tzinfo
441
+ version: '2.0'
442
+ source:
443
+ type: git
444
+ name: ruby/gem_rbs_collection
445
+ revision: a9830177c3fdbebb92f6db6a166ae3e368818162
446
+ remote: https://github.com/ruby/gem_rbs_collection.git
447
+ repo_dir: gems
448
+ - name: uri
449
+ version: '0'
450
+ source:
451
+ type: stdlib
452
+ gemfile_lock_path: Gemfile.lock
@@ -0,0 +1,19 @@
1
+ # Download sources
2
+ sources:
3
+ - type: git
4
+ name: ruby/gem_rbs_collection
5
+ remote: https://github.com/ruby/gem_rbs_collection.git
6
+ revision: main
7
+ repo_dir: gems
8
+
9
+ # You can specify local directories as sources also.
10
+ # - type: local
11
+ # path: path/to/your/local/repository
12
+
13
+ # A directory to install the downloaded RBSs
14
+ path: .gem_rbs_collection
15
+
16
+ # gems:
17
+ # # If you want to avoid installing rbs files for gems, you can specify them here.
18
+ # - name: GEM_NAME
19
+ # ignore: true
@@ -0,0 +1,6 @@
1
+ module Arfi
2
+ # Top level CLI class
3
+ class CLI < Thor
4
+ def version: -> ::Integer
5
+ end
6
+ end