lumise 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/exe/lumise +16 -0
- data/lib/lumise/cli.rb +31 -0
- data/lib/lumise/cli.rbi +28 -0
- data/lib/lumise/command.rb +8 -0
- data/lib/lumise/commands/rubocop.rb +56 -0
- data/lib/lumise/commands/rubocop.rbi +48 -0
- data/lib/lumise/commands.rb +36 -0
- data/lib/lumise/commands.rbi +30 -0
- data/lib/lumise/configurations.rb +16 -0
- data/lib/lumise/configurations.rbi +1 -0
- data/lib/lumise/error.rb +6 -0
- data/lib/lumise/l.rb +10 -0
- data/lib/lumise/l.rbi +10 -0
- data/lib/lumise/logger.rb +7 -0
- data/lib/lumise/services/commands/rubocop/repo_files.rb +56 -0
- data/lib/lumise/services/commands/rubocop/repo_files.rbi +51 -0
- data/lib/lumise/services/commands/rubocop/update_files.rb +87 -0
- data/lib/lumise/services/commands/rubocop/update_files.rbi +67 -0
- data/lib/lumise/services/commands/rubocop/update_gems.rb +64 -0
- data/lib/lumise/services/commands/rubocop/update_gems.rbi +47 -0
- data/lib/lumise/services/commands/rubocop/update_todo.rb +52 -0
- data/lib/lumise/services/commands/rubocop/update_todo.rbi +43 -0
- data/lib/lumise/templates/.git +1 -0
- data/lib/lumise/templates/README.md +70 -0
- data/lib/lumise/templates/rubocop/.rubocop +1 -0
- data/lib/lumise/templates/rubocop/.rubocop.yml +17 -0
- data/lib/lumise/templates/rubocop/.rubocop_global.yml +58 -0
- data/lib/lumise/templates/rubocop/.rubocop_local.yml +3 -0
- data/lib/lumise/templates/rubocop/.rubocop_project.yml +29 -0
- data/lib/lumise/templates/rubocop/.rubocop_raw.yml +16 -0
- data/lib/lumise/templates/rubocop/.rubocop_todo.yml +5 -0
- data/lib/lumise/version.rb +6 -0
- data/lib/lumise/which/curl.rb +46 -0
- data/lib/lumise/which/curl.rbi +36 -0
- data/lib/lumise.rb +45 -0
- data/lib/lumise.rbi +12 -0
- data/lib/warning.rb +10 -0
- data/lib/warning.rbi +8 -0
- metadata +187 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d82dc3a5d42d401ae1bc2bf483c99dd2bc592431
|
4
|
+
data.tar.gz: 3ee4e2003df33f6e899476ee8c79b2cb565fc678
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 032b661e3f4e3d87e8cbe7aca8c3271c00682fd7c7d0acdefeec896f0551e3f059ebc3c1c46ca511df93b489cc956abe4a84c9535425aa892d005740c2a66979
|
7
|
+
data.tar.gz: 3ff36cbaba6e560e538f1375a620585f5d84c8f098fceef515193af3f773703a19c344a0d291548518ae50652462197f18757f7af1c8a510dc39718b67cba8a7
|
data/exe/lumise
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require_relative '../lib/lumise'
|
5
|
+
|
6
|
+
Signal.trap('INT') do
|
7
|
+
warn("\n#{caller.join("\n")}: interrupted")
|
8
|
+
exit(1)
|
9
|
+
end
|
10
|
+
|
11
|
+
begin
|
12
|
+
Lumise::CLI.start
|
13
|
+
rescue Lumise::CLI::Error => e
|
14
|
+
puts "ERROR: #{e.message}"
|
15
|
+
exit 1
|
16
|
+
end
|
data/lib/lumise/cli.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# typed: strict
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Lumise
|
5
|
+
class CLI < Thor
|
6
|
+
Error = Class.new(StandardError)
|
7
|
+
|
8
|
+
desc 'version', 'lumise version'
|
9
|
+
def version
|
10
|
+
$stdout.puts "v#{Lumise::VERSION}"
|
11
|
+
end
|
12
|
+
map %w[--version -v] => :version
|
13
|
+
|
14
|
+
desc 'rubocop', 'Set up rubocop'
|
15
|
+
method_option :help, aliases: '-h', type: :boolean,
|
16
|
+
desc: 'Display usage information'
|
17
|
+
def rubocop(*)
|
18
|
+
if options[:help]
|
19
|
+
invoke :help, ['rubocop']
|
20
|
+
else
|
21
|
+
execute_rubocop
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def execute_rubocop
|
28
|
+
Lumise::Commands::Rubocop.new(options).execute
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/lumise/cli.rbi
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# typed: strong
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Lumise
|
5
|
+
class CLI < Thor
|
6
|
+
sig do
|
7
|
+
params(
|
8
|
+
mappings: T::Hash[T.untyped, T.untyped]
|
9
|
+
).void
|
10
|
+
end
|
11
|
+
def self.map(mappings)
|
12
|
+
end
|
13
|
+
|
14
|
+
sig { void }
|
15
|
+
def version
|
16
|
+
end
|
17
|
+
|
18
|
+
sig { params(arr: T.untyped).void }
|
19
|
+
def rubocop(*arr)
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
sig { void }
|
25
|
+
def execute_rubocop
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# typed: strict
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Lumise
|
5
|
+
module Commands
|
6
|
+
class Rubocop < Lumise::Command
|
7
|
+
include L
|
8
|
+
|
9
|
+
def initialize(_options)
|
10
|
+
verify_dependencies
|
11
|
+
@plugins = set_plugins
|
12
|
+
rescue Which::Curl::CurlError
|
13
|
+
logger.error 'Please install curl'
|
14
|
+
end
|
15
|
+
|
16
|
+
attr_reader :plugins
|
17
|
+
|
18
|
+
def execute
|
19
|
+
update_gems
|
20
|
+
create_files
|
21
|
+
update_todo
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def set_plugins
|
27
|
+
l.plugins || prompt_plugins
|
28
|
+
end
|
29
|
+
|
30
|
+
def verify_dependencies
|
31
|
+
Which::Curl.call
|
32
|
+
end
|
33
|
+
|
34
|
+
def prompt_plugins
|
35
|
+
choices = %w[performance rails rspec sorbet]
|
36
|
+
|
37
|
+
prompt.multi_select 'Which plugins are you using?' do |menu|
|
38
|
+
menu.default 1, 3
|
39
|
+
menu.choices choices
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def update_gems
|
44
|
+
UpdateGems.call plugins: plugins
|
45
|
+
end
|
46
|
+
|
47
|
+
def create_files
|
48
|
+
UpdateFiles.call plugins: plugins
|
49
|
+
end
|
50
|
+
|
51
|
+
def update_todo
|
52
|
+
UpdateTodo.call plugins: plugins
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# typed: strong
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Lumise
|
5
|
+
module Commands
|
6
|
+
class Rubocop < Lumise::Command
|
7
|
+
include L
|
8
|
+
|
9
|
+
sig { params(_options: T.untyped).void }
|
10
|
+
def initialize(_options)
|
11
|
+
@plugins = T.let nil, T::Array[String]
|
12
|
+
end
|
13
|
+
|
14
|
+
sig { returns T::Array[String] }
|
15
|
+
attr_reader :plugins
|
16
|
+
|
17
|
+
sig { void }
|
18
|
+
def execute
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
sig { returns T::Array[String] }
|
24
|
+
def set_plugins
|
25
|
+
end
|
26
|
+
|
27
|
+
sig { void }
|
28
|
+
def verify_dependencies
|
29
|
+
end
|
30
|
+
|
31
|
+
sig { returns T::Array[String] }
|
32
|
+
def prompt_plugins
|
33
|
+
end
|
34
|
+
|
35
|
+
sig { void }
|
36
|
+
def update_gems
|
37
|
+
end
|
38
|
+
|
39
|
+
sig { void }
|
40
|
+
def create_files
|
41
|
+
end
|
42
|
+
|
43
|
+
sig { void }
|
44
|
+
def update_todo
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# typed: strict
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require 'tty-command'
|
5
|
+
require 'tty-file'
|
6
|
+
require 'tty-logger'
|
7
|
+
require 'tty-prompt'
|
8
|
+
require 'tty-which'
|
9
|
+
|
10
|
+
module Lumise
|
11
|
+
module Commands
|
12
|
+
def command(options)
|
13
|
+
TTY::Command.new(options)
|
14
|
+
end
|
15
|
+
|
16
|
+
def generator
|
17
|
+
TTY::File
|
18
|
+
end
|
19
|
+
|
20
|
+
def logger
|
21
|
+
TTY::Logger.new
|
22
|
+
end
|
23
|
+
|
24
|
+
def prompt(**options)
|
25
|
+
TTY::Prompt.new(options)
|
26
|
+
end
|
27
|
+
|
28
|
+
def which(cmd)
|
29
|
+
TTY::Which.which(cmd)
|
30
|
+
end
|
31
|
+
|
32
|
+
def exec_exist?(cmd)
|
33
|
+
TTY::Which.exist?(cmd)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# typed: strong
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Lumise
|
5
|
+
module Commands
|
6
|
+
sig { params(options: T.untyped).returns(TTY::Command) }
|
7
|
+
def command(options)
|
8
|
+
end
|
9
|
+
|
10
|
+
sig { returns(T.class_of(TTY::File)) }
|
11
|
+
def generator
|
12
|
+
end
|
13
|
+
|
14
|
+
sig { returns(TTY::Logger) }
|
15
|
+
def logger
|
16
|
+
end
|
17
|
+
|
18
|
+
sig { params(options: T::Hash[T.untyped, T.untyped]).returns TTY::Prompt }
|
19
|
+
def prompt(**options)
|
20
|
+
end
|
21
|
+
|
22
|
+
sig { params(cmd: String).returns T::Array[String] }
|
23
|
+
def which(cmd)
|
24
|
+
end
|
25
|
+
|
26
|
+
sig { params(cmd: String).returns T::Boolean }
|
27
|
+
def exec_exist?(cmd)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# typed: strict
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Lumise
|
5
|
+
class Configurations < T::Struct
|
6
|
+
include Singleton
|
7
|
+
|
8
|
+
prop :force, T::Boolean, default: false
|
9
|
+
prop :plugins, T.nilable(T::Array[String])
|
10
|
+
prop :repo, T.nilable(String)
|
11
|
+
prop :branch, T.nilable(String)
|
12
|
+
prop :update_gems, T.nilable(T::Boolean)
|
13
|
+
prop :update_files, T.nilable(T::Boolean)
|
14
|
+
prop :update_todo, T.nilable(T::Boolean)
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
# typed: strong
|
data/lib/lumise/error.rb
ADDED
data/lib/lumise/l.rb
ADDED
data/lib/lumise/l.rbi
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
# typed: strict
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Lumise
|
5
|
+
module Commands
|
6
|
+
class Rubocop < Lumise::Command
|
7
|
+
class RepoFiles
|
8
|
+
include Commands
|
9
|
+
include L
|
10
|
+
|
11
|
+
def self.call
|
12
|
+
new.call
|
13
|
+
end
|
14
|
+
|
15
|
+
def call
|
16
|
+
remove_tmp_lumise
|
17
|
+
recreate_tmp_lumise
|
18
|
+
clone_repo_onto_tmp_lumise
|
19
|
+
rubocop_files
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def rubocop_files
|
25
|
+
Dir['tmp/lumise/rubocop/**/{*,.*}']
|
26
|
+
end
|
27
|
+
|
28
|
+
def clone_repo_onto_tmp_lumise
|
29
|
+
command(printer: :null).run(git_clone_command) do |_out, err|
|
30
|
+
logger.info err.force_encoding(Encoding::UTF_8)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def git_clone_command
|
35
|
+
"git clone --single-branch --branch #{branch} #{repo} tmp/lumise"
|
36
|
+
end
|
37
|
+
|
38
|
+
def repo
|
39
|
+
T.must(l.repo)
|
40
|
+
end
|
41
|
+
|
42
|
+
def branch
|
43
|
+
l.branch || 'master'
|
44
|
+
end
|
45
|
+
|
46
|
+
def recreate_tmp_lumise
|
47
|
+
command(printer: :quiet).run('mkdir -p tmp/lumise')
|
48
|
+
end
|
49
|
+
|
50
|
+
def remove_tmp_lumise
|
51
|
+
command(printer: :quiet).run('rm -rf tmp/lumise')
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# typed: strong
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Lumise
|
5
|
+
module Commands
|
6
|
+
class Rubocop < Lumise::Command
|
7
|
+
class RepoFiles
|
8
|
+
include Commands
|
9
|
+
include L
|
10
|
+
|
11
|
+
sig { returns T::Array[String] }
|
12
|
+
def self.call
|
13
|
+
end
|
14
|
+
|
15
|
+
sig { returns T::Array[String] }
|
16
|
+
def call
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
sig { returns T::Array[String] }
|
22
|
+
def rubocop_files
|
23
|
+
end
|
24
|
+
|
25
|
+
sig { void }
|
26
|
+
def clone_repo_onto_tmp_lumise
|
27
|
+
end
|
28
|
+
|
29
|
+
sig { returns String }
|
30
|
+
def git_clone_command
|
31
|
+
end
|
32
|
+
|
33
|
+
sig { returns String }
|
34
|
+
def repo
|
35
|
+
end
|
36
|
+
|
37
|
+
sig { returns String }
|
38
|
+
def branch
|
39
|
+
end
|
40
|
+
|
41
|
+
sig { void }
|
42
|
+
def recreate_tmp_lumise
|
43
|
+
end
|
44
|
+
|
45
|
+
sig { void }
|
46
|
+
def remove_tmp_lumise
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
# typed: strict
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Lumise
|
5
|
+
module Commands
|
6
|
+
class Rubocop < Lumise::Command
|
7
|
+
class UpdateFiles
|
8
|
+
include Commands
|
9
|
+
include L
|
10
|
+
|
11
|
+
def self.call(plugins:)
|
12
|
+
new(plugins: plugins).send :perform
|
13
|
+
end
|
14
|
+
|
15
|
+
def initialize(plugins:)
|
16
|
+
@plugins = plugins
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
attr_reader :plugins
|
22
|
+
|
23
|
+
def perform
|
24
|
+
if yes?
|
25
|
+
files.each do |file|
|
26
|
+
parse_template file
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def parse_template(file)
|
32
|
+
generator.create_file File.basename(file), mustacho(file),
|
33
|
+
force: l.force
|
34
|
+
end
|
35
|
+
|
36
|
+
def mustacho(file)
|
37
|
+
Mustache.render File.read(file),
|
38
|
+
require: plugins?, plugins: plugins_list,
|
39
|
+
rspec: plugins.include?('rspec'),
|
40
|
+
sorbet: plugins.include?('sorbet')
|
41
|
+
end
|
42
|
+
|
43
|
+
def plugins_list
|
44
|
+
plugins.map do |plugin|
|
45
|
+
" - rubocop-#{plugin}"
|
46
|
+
end.join("\n")
|
47
|
+
rescue NoMethodError
|
48
|
+
[]
|
49
|
+
end
|
50
|
+
|
51
|
+
def files
|
52
|
+
if l.repo
|
53
|
+
repo_files
|
54
|
+
else
|
55
|
+
template_files
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def template_files
|
60
|
+
Dir[templates_path + '**/{*,.*}'].reject do |file|
|
61
|
+
file.scan(/\.$/).first
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def repo_files
|
66
|
+
RepoFiles.call
|
67
|
+
end
|
68
|
+
|
69
|
+
def templates_path
|
70
|
+
File.expand_path('../../../templates/rubocop', __dir__)
|
71
|
+
end
|
72
|
+
|
73
|
+
def plugins?
|
74
|
+
!plugins&.first.nil?
|
75
|
+
end
|
76
|
+
|
77
|
+
def yes?
|
78
|
+
if l.update_files.nil?
|
79
|
+
prompt.yes? 'Update .rubocop files?', suffix: 'Yeah/nah'
|
80
|
+
else
|
81
|
+
l.update_files
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# typed: strong
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Lumise
|
5
|
+
module Commands
|
6
|
+
class Rubocop < Lumise::Command
|
7
|
+
class UpdateFiles
|
8
|
+
include Commands
|
9
|
+
include L
|
10
|
+
|
11
|
+
sig { params(plugins: T::Array[String]).void }
|
12
|
+
def self.call(plugins:)
|
13
|
+
end
|
14
|
+
|
15
|
+
sig { params(plugins: T::Array[String]).void }
|
16
|
+
def initialize(plugins:)
|
17
|
+
@plugins = plugins
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
sig { returns T::Array[String] }
|
23
|
+
attr_reader :plugins
|
24
|
+
|
25
|
+
sig { void }
|
26
|
+
def perform
|
27
|
+
end
|
28
|
+
|
29
|
+
sig { params(file: T.any(String, Pathname)).void }
|
30
|
+
def parse_template(file)
|
31
|
+
end
|
32
|
+
|
33
|
+
sig { params(file: T.any(File, String, Pathname)).returns String }
|
34
|
+
def mustacho(file)
|
35
|
+
end
|
36
|
+
|
37
|
+
sig { returns T.any(T::Array[T.untyped], String) }
|
38
|
+
def plugins_list
|
39
|
+
end
|
40
|
+
|
41
|
+
sig { returns(T::Array[String]) }
|
42
|
+
def files
|
43
|
+
end
|
44
|
+
|
45
|
+
sig { returns T::Array[String] }
|
46
|
+
def template_files
|
47
|
+
end
|
48
|
+
|
49
|
+
sig { returns T::Array[String] }
|
50
|
+
def repo_files
|
51
|
+
end
|
52
|
+
|
53
|
+
sig { returns(String) }
|
54
|
+
def templates_path
|
55
|
+
end
|
56
|
+
|
57
|
+
sig { returns(T::Boolean) }
|
58
|
+
def plugins?
|
59
|
+
end
|
60
|
+
|
61
|
+
sig { returns(T::Boolean) }
|
62
|
+
def yes?
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# typed: strict
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Lumise
|
5
|
+
module Commands
|
6
|
+
class Rubocop < Lumise::Command
|
7
|
+
class UpdateGems
|
8
|
+
include Commands
|
9
|
+
include L
|
10
|
+
|
11
|
+
def self.call(plugins:)
|
12
|
+
new(plugins: plugins).send :perform
|
13
|
+
end
|
14
|
+
|
15
|
+
def initialize(plugins:)
|
16
|
+
@plugins = plugins
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
attr_reader :plugins
|
22
|
+
|
23
|
+
def perform
|
24
|
+
if yes?
|
25
|
+
logger.info "#Running #{bundle_update_command}"
|
26
|
+
bundle_update
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def bundle_update
|
31
|
+
command(printer: :quiet).run(bundle_update_command)
|
32
|
+
rescue TTY::Command::ExitError, StandardError => e
|
33
|
+
# Could not find gem 'rubocop'.
|
34
|
+
#
|
35
|
+
# Could not locate Gemfile
|
36
|
+
#
|
37
|
+
# This Bundle hasn't been installed yet. Run `bundle install` to
|
38
|
+
# update and install the bundled gems.
|
39
|
+
|
40
|
+
logger.error e.message
|
41
|
+
exit 1
|
42
|
+
end
|
43
|
+
|
44
|
+
def yes?
|
45
|
+
if l.update_gems.nil?
|
46
|
+
prompt.yes? 'Update rubocop gems?', suffix: 'Yeah/nah'
|
47
|
+
else
|
48
|
+
l.update_gems
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def bundle_update_command
|
53
|
+
"bundle update --conservative rubocop #{gems}"
|
54
|
+
end
|
55
|
+
|
56
|
+
def gems
|
57
|
+
plugins.map do |plugin|
|
58
|
+
'rubocop-' + plugin
|
59
|
+
end.join(' ')
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# typed: strong
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Lumise
|
5
|
+
module Commands
|
6
|
+
class Rubocop < Lumise::Command
|
7
|
+
class UpdateGems
|
8
|
+
include Commands
|
9
|
+
include L
|
10
|
+
|
11
|
+
sig { params(plugins: T::Array[String]).void }
|
12
|
+
def self.call(plugins:)
|
13
|
+
end
|
14
|
+
|
15
|
+
sig { params(plugins: T::Array[String]).void }
|
16
|
+
def initialize(plugins:)
|
17
|
+
@plugins = plugins
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
sig { returns T::Array[String] }
|
23
|
+
attr_reader :plugins
|
24
|
+
|
25
|
+
sig { void }
|
26
|
+
def perform
|
27
|
+
end
|
28
|
+
|
29
|
+
sig { void }
|
30
|
+
def bundle_update
|
31
|
+
end
|
32
|
+
|
33
|
+
sig { returns T::Boolean }
|
34
|
+
def yes?
|
35
|
+
end
|
36
|
+
|
37
|
+
sig { returns String }
|
38
|
+
def bundle_update_command
|
39
|
+
end
|
40
|
+
|
41
|
+
sig { returns String }
|
42
|
+
def gems
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|