cobra_commander 1.0.1 → 1.2.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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/cobra_commander.gemspec +15 -20
  3. data/docs/CHANGELOG.md +10 -0
  4. data/lib/cobra_commander/affected.rb +6 -41
  5. data/lib/cobra_commander/cli/filters.rb +1 -1
  6. data/lib/cobra_commander/cli/output/ascii_tree.rb +2 -2
  7. data/lib/cobra_commander/cli/output/change.rb +12 -52
  8. data/lib/cobra_commander/cli.rb +21 -30
  9. data/lib/cobra_commander/component.rb +29 -0
  10. data/lib/cobra_commander/executor/buffered_printer.rb +41 -0
  11. data/lib/cobra_commander/executor/command.rb +22 -45
  12. data/lib/cobra_commander/executor/isolated_pty.rb +20 -0
  13. data/lib/cobra_commander/executor/output_prompt.rb +59 -0
  14. data/lib/cobra_commander/executor/package_criteria.rb +0 -3
  15. data/lib/cobra_commander/executor/run_script.rb +25 -0
  16. data/lib/cobra_commander/executor/script.rb +16 -30
  17. data/lib/cobra_commander/executor/worker_pool.rb +104 -0
  18. data/lib/cobra_commander/executor.rb +33 -31
  19. data/lib/cobra_commander/git_changed.rb +2 -2
  20. data/lib/cobra_commander/package.rb +5 -1
  21. data/lib/cobra_commander/source.rb +13 -2
  22. data/lib/cobra_commander/version.rb +1 -1
  23. metadata +48 -89
  24. data/.gitignore +0 -16
  25. data/.rspec +0 -3
  26. data/.rubocop.yml +0 -8
  27. data/Gemfile +0 -12
  28. data/Guardfile +0 -14
  29. data/Rakefile +0 -10
  30. data/bin/console +0 -15
  31. data/bin/setup +0 -8
  32. data/doc/dependency_decisions.yml +0 -9
  33. data/lib/cobra_commander/executor/execution.rb +0 -52
  34. data/lib/cobra_commander/executor/interactive_printer.rb +0 -53
  35. data/lib/cobra_commander/executor/job.rb +0 -51
  36. data/lib/cobra_commander/executor/markdown_printer.rb +0 -21
  37. data/lib/cobra_commander/executor/spinners.rb +0 -40
  38. data/mkdocs.yml +0 -8
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CobraCommander
4
+ module Executor
5
+ module RunScript
6
+ def run_script(tty, script, path, env: {})
7
+ result = tty.run!(env, script, chdir: path, err: :out)
8
+
9
+ return [:error, result.out] if result.failed?
10
+
11
+ [:success, result.out]
12
+ end
13
+
14
+ def run_many(collection, &block)
15
+ collection.lazy.map(&block)
16
+ .reduce do |(_, prev_output), (result, output)|
17
+ new_output = [prev_output&.strip, output&.strip].join("\n")
18
+ return [:error, new_output] if result == :error
19
+
20
+ [:success, new_output]
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -1,44 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "./job"
4
-
5
3
  module CobraCommander
6
4
  module Executor
7
- # This is a script job. It can tarket any CobraCommander::Package.
5
+ # This is a script job. It can target any CobraCommander::Component.
8
6
  #
9
- # If you want to target a Component, you can use Script.for to target
10
- # individual paths for each given component.
7
+ # Script runs the given script once for each Component#root_paths
11
8
  #
12
- # @see Script.for
13
9
  class Script
14
- include ::CobraCommander::Executor::Job
15
-
16
- # Returns a set of scripts to be executed on the given commends.
17
- #
18
- # If a component has two packages in the same path, only one script for that component will be
19
- # returned.
20
- #
21
- # @param components [Enumerable<CobraCommander::Component>] the target components
22
- # @param script [String] shell script to run from the directories of the component's packages
23
- # @return [Array<CobraCommander::Executor::Script>]
24
- def self.for(components, script)
25
- components.flat_map(&:packages).uniq(&:path).map do |package|
26
- new(package, script)
27
- end
28
- end
10
+ include ::CobraCommander::Executor::RunScript
29
11
 
30
- def initialize(package, script)
31
- @package = package
12
+ def initialize(script)
32
13
  @script = script
33
14
  end
34
15
 
35
- def to_s
36
- @package.name
37
- end
38
-
39
- # @see CobraCommander::Executor::Job
40
- def call
41
- run_script @script, @package.path
16
+ # Runs the script in the given component
17
+ #
18
+ # It runs the script once for each Component#root_paths. If a component has two packages in the
19
+ # same path, it will run the script only once.
20
+ #
21
+ # @param tty [CobraComander::Executor::IsolatedPTY] tty to execute shell scripts
22
+ # @param component [CobraComander::Component] target component
23
+ # @return [Array<Symbol, String>]
24
+ def call(tty, component)
25
+ component.around_command do |env|
26
+ run_many(component.root_paths) { run_script(tty, @script, _1, env: env) }
27
+ end
42
28
  end
43
29
  end
44
30
  end
@@ -0,0 +1,104 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CobraCommander
4
+ module Executor
5
+ # @private
6
+ #
7
+ # This WorkerPooll will queue up jobs, and execute them using
8
+ # Worker's, each with a thread running our work loop using the
9
+ # given runner.
10
+ #
11
+ # - A *job* is defined by a group of arguments to be passed to the runner.
12
+ # - A *runner* is an object that respond to #call(tty, *args), where TTY is
13
+ # an instance of TTY::Command, and *args are the arguments queued in the
14
+ # worker pool.
15
+ # - The *runner* call method must return an array of [status, output]
16
+ # - A worker manages a thread running the job wirh runner.call and updates
17
+ # the job result and output.
18
+ #
19
+ class WorkerPool
20
+ Job = Struct.new(:name, :args) do
21
+ attr_reader :output, :status
22
+
23
+ def resolve!(status, output)
24
+ @status = status
25
+ @output = output
26
+ end
27
+
28
+ def resolved?
29
+ !@status.nil?
30
+ end
31
+ end
32
+
33
+ class Worker
34
+ attr_reader :id
35
+
36
+ def initialize(id, pool)
37
+ @id = id
38
+ @pool = pool
39
+ end
40
+
41
+ def kill
42
+ @thread&.kill
43
+ end
44
+
45
+ def spawn
46
+ @thread = Thread.new do
47
+ loop { break if @pool.run_next == :exit }
48
+ end
49
+ end
50
+
51
+ def wait
52
+ @thread.join
53
+ end
54
+ end
55
+
56
+ attr_reader :jobs
57
+
58
+ def initialize(runner:, workers:, printer:, jobs:, &name_f)
59
+ @tty = ::CobraCommander::Executor::IsolatedPTY.new(printer: printer)
60
+ @runner = runner
61
+ @workers = Array.new(workers) { |id| Worker.new(id, self) }
62
+ @jobs = []
63
+ @queue = Queue.new
64
+
65
+ push_all(jobs, &name_f || :describe)
66
+ end
67
+
68
+ def error?
69
+ jobs.map(&:status).any?(:error)
70
+ end
71
+
72
+ def push_all(jobs, &name_f)
73
+ jobs.each { push(name_f&.call(_1), *Array(_1)) }
74
+ end
75
+
76
+ def push(name, *args)
77
+ Job.new(name, args).tap do |job|
78
+ @jobs.push(job)
79
+ @queue.push(job)
80
+ end
81
+ end
82
+
83
+ def start
84
+ @stop = false
85
+ @workers.each(&:spawn)
86
+ @queue.close
87
+ begin
88
+ @workers.each(&:wait)
89
+ rescue Interrupt
90
+ @workers.each(&:kill) if @stop
91
+ @stop = true
92
+ retry
93
+ end
94
+ end
95
+
96
+ def run_next
97
+ return :exit if @stop
98
+ return :exit unless (job = @queue.pop)
99
+
100
+ job.resolve!(*@runner.call(@tty, *job.args))
101
+ end
102
+ end
103
+ end
104
+ end
@@ -1,45 +1,47 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "executor/execution"
4
- require_relative "executor/job"
5
- require_relative "executor/script"
6
- require_relative "executor/command"
7
- require_relative "executor/spinners"
8
- require_relative "executor/interactive_printer"
9
- require_relative "executor/markdown_printer"
3
+ require "pastel"
4
+ require "tty-command"
5
+ require "tty-prompt"
10
6
 
11
7
  module CobraCommander
12
8
  # Execute a command on all given packages
13
9
  module Executor
10
+ autoload :BufferedPrinter, "cobra_commander/executor/buffered_printer"
11
+ autoload :Command, "cobra_commander/executor/command"
12
+ autoload :OutputPrompt, "cobra_commander/executor/output_prompt"
13
+ autoload :IsolatedPTY, "cobra_commander/executor/isolated_pty"
14
+ autoload :PackageCriteria, "cobra_commander/executor/package_criteria"
15
+ autoload :Printers, "cobra_commander/executor/printers"
16
+ autoload :RunScript, "cobra_commander/executor/run_script"
17
+ autoload :Script, "cobra_commander/executor/script"
18
+ autoload :WorkerPool, "cobra_commander/executor/worker_pool"
19
+
14
20
  module_function
15
21
 
16
- # Executes the given jobs in an CobraCommander::Executor::Execution.
17
- #
18
- # This facade also allows to execute the jobs with a spinner (@see CobraCommander::Executor::Spinners) to display
19
- # the execution status of each job.
22
+ # Executes the given jobs in an CobraCommander::Executor::WorkerPool.
20
23
  #
21
- # You can also determine how to display the execution once it's completed, by setting `output_mode` to either
22
- # :interactive or :markdown. When using :interactive, a menu with each job will be displayed allowing the user
23
- # to select a job and see its output. When using :markdown, a markdown will be printed to `output` with the
24
- # output of each job.
24
+ # When only one job is queued, it choses the :quiet printer, to print the
25
+ # output as it happens.
26
+ # When more than one job is queued in interactive mode, it uses the :progress
27
+ # printer, which will display a green dot or a red F depending on the result
28
+ # of each script execution.
29
+ # If not in interactive mode, it will print the output in a buffered way to
30
+ # make it easier to read each output.
25
31
  #
26
32
  # @param jobs [Enumerable<CobraCommander::Executor::Job>] the jobs to run
27
- # @param status_output [IO,nil] if not nil, will print the spinners for each job in this output
28
- # @param workers [Integer] number of workers processing the jobs queue (see CobraCommander::Executor::Execution)
29
- # @param output_mode [:interactive,:markdown,nil] how the output will be printed after execution
30
- # @param workers [Integer] number of workers processing the jobs queue (see CobraCommander::Executor::Execution)
31
- # @return [CobraCommander::Executor::Execution]
32
- # @see CobraCommander::Executor::Execution
33
- # @see CobraCommander::Executor::Spinners
34
- # @see CobraCommander::Executor::InterativePrinter
35
- # @see CobraCommander::Executor::MarkdownPrinter
36
- def execute(jobs:, status_output: nil, output_mode: nil, output: nil, **kwargs)
37
- Execution.new(jobs, **kwargs).tap do |execution|
38
- Spinners.start(execution, output: status_output) if status_output
39
- execution.wait
40
- InteractivePrinter.run(execution, output) if output_mode == :interactive
41
- MarkdownPrinter.run(execution, output) if output_mode == :markdown
42
- end
33
+ # @param interactive [Boolean] prefer interactive output
34
+ # @see CobraCommander::Executor::WorkerPool for more options
35
+ def execute_and_handle_exit(jobs:, interactive: false, **, &name_f)
36
+ printer = if jobs.size == 1 then :quiet
37
+ elsif interactive then :progress
38
+ else
39
+ ::CobraCommander::Executor::BufferedPrinter
40
+ end
41
+ pool = WorkerPool.new(jobs: jobs, printer: printer, **, &name_f).tap(&:start)
42
+ return CobraCommander::Executor::OutputPrompt.run(pool) if interactive && jobs.size > 1
43
+
44
+ exit(1) if pool.error?
43
45
  end
44
46
  end
45
47
  end
@@ -19,8 +19,8 @@ module CobraCommander
19
19
  @base_branch = base_branch
20
20
  end
21
21
 
22
- def each(&block)
23
- changes.each(&block)
22
+ def each(&)
23
+ changes.each(&)
24
24
  end
25
25
 
26
26
  private
@@ -9,7 +9,7 @@ module CobraCommander
9
9
 
10
10
  attr_reader :source, :path, :name, :dependencies
11
11
 
12
- def_delegators :source, :key
12
+ def_delegators :source, :key, :around_command
13
13
 
14
14
  def initialize(source, path:, dependencies:, name:)
15
15
  @source = source
@@ -17,5 +17,9 @@ module CobraCommander
17
17
  @name = name
18
18
  @dependencies = dependencies
19
19
  end
20
+
21
+ def describe
22
+ "#{name} (#{key})"
23
+ end
20
24
  end
21
25
  end
@@ -22,8 +22,19 @@ module CobraCommander
22
22
  to_a
23
23
  end
24
24
 
25
- def each(&block)
26
- packages.each(&block)
25
+ # Wraps the execution of commands on this source's packages, letting the
26
+ # source enhance the surrounding process (e.g. Bundler isolation) and
27
+ # contribute environment variables to the command. The base implementation
28
+ # yields an empty env; plugins override it (see CobraCommander::Ruby::Bundle).
29
+ #
30
+ # @yieldparam env [Hash{String => String}] env vars to pass to the command
31
+ # @return the value returned by the block
32
+ def around_command
33
+ yield({})
34
+ end
35
+
36
+ def each(&)
37
+ packages.each(&)
27
38
  rescue Errno::ENOENT => e
28
39
  raise Error, e.message
29
40
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CobraCommander
4
- VERSION = "1.0.1"
4
+ VERSION = "1.2.0"
5
5
  end
metadata CHANGED
@@ -1,16 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cobra_commander
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Langfeld
8
8
  - Garett Arrowood
9
9
  - Carlos Palhares
10
- autorequire:
11
10
  bindir: exe
12
11
  cert_chain: []
13
- date: 2023-01-05 00:00:00.000000000 Z
12
+ date: 1980-01-02 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: bundler
@@ -18,28 +17,14 @@ dependencies:
18
17
  requirements:
19
18
  - - ">="
20
19
  - !ruby/object:Gem::Version
21
- version: '0'
20
+ version: 2.4.17
22
21
  type: :runtime
23
22
  prerelease: false
24
23
  version_requirements: !ruby/object:Gem::Requirement
25
24
  requirements:
26
25
  - - ">="
27
26
  - !ruby/object:Gem::Version
28
- version: '0'
29
- - !ruby/object:Gem::Dependency
30
- name: concurrent-ruby
31
- requirement: !ruby/object:Gem::Requirement
32
- requirements:
33
- - - "~>"
34
- - !ruby/object:Gem::Version
35
- version: '1.1'
36
- type: :runtime
37
- prerelease: false
38
- version_requirements: !ruby/object:Gem::Requirement
39
- requirements:
40
- - - "~>"
41
- - !ruby/object:Gem::Version
42
- version: '1.1'
27
+ version: 2.4.17
43
28
  - !ruby/object:Gem::Dependency
44
29
  name: thor
45
30
  requirement: !ruby/object:Gem::Requirement
@@ -88,146 +73,132 @@ dependencies:
88
73
  - - "~>"
89
74
  - !ruby/object:Gem::Version
90
75
  version: 0.23.1
91
- - !ruby/object:Gem::Dependency
92
- name: tty-spinner
93
- requirement: !ruby/object:Gem::Requirement
94
- requirements:
95
- - - "~>"
96
- - !ruby/object:Gem::Version
97
- version: 0.9.3
98
- type: :runtime
99
- prerelease: false
100
- version_requirements: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - "~>"
103
- - !ruby/object:Gem::Version
104
- version: 0.9.3
105
76
  - !ruby/object:Gem::Dependency
106
77
  name: aruba
107
78
  requirement: !ruby/object:Gem::Requirement
108
79
  requirements:
109
- - - "~>"
80
+ - - '='
110
81
  - !ruby/object:Gem::Version
111
- version: 0.14.2
82
+ version: 0.14.14
112
83
  type: :development
113
84
  prerelease: false
114
85
  version_requirements: !ruby/object:Gem::Requirement
115
86
  requirements:
116
- - - "~>"
87
+ - - '='
117
88
  - !ruby/object:Gem::Version
118
- version: 0.14.2
89
+ version: 0.14.14
119
90
  - !ruby/object:Gem::Dependency
120
- name: bundler
91
+ name: guard-rspec
121
92
  requirement: !ruby/object:Gem::Requirement
122
93
  requirements:
123
- - - ">="
94
+ - - '='
124
95
  - !ruby/object:Gem::Version
125
- version: '0'
96
+ version: 4.7.3
126
97
  type: :development
127
98
  prerelease: false
128
99
  version_requirements: !ruby/object:Gem::Requirement
129
100
  requirements:
130
- - - ">="
101
+ - - '='
131
102
  - !ruby/object:Gem::Version
132
- version: '0'
103
+ version: 4.7.3
133
104
  - !ruby/object:Gem::Dependency
134
- name: guard-rspec
105
+ name: license_finder
135
106
  requirement: !ruby/object:Gem::Requirement
136
107
  requirements:
137
- - - ">="
108
+ - - '='
138
109
  - !ruby/object:Gem::Version
139
- version: '0'
110
+ version: '7.1'
140
111
  type: :development
141
112
  prerelease: false
142
113
  version_requirements: !ruby/object:Gem::Requirement
143
114
  requirements:
144
- - - ">="
115
+ - - '='
145
116
  - !ruby/object:Gem::Version
146
- version: '0'
117
+ version: '7.1'
147
118
  - !ruby/object:Gem::Dependency
148
- name: license_finder
119
+ name: ostruct
149
120
  requirement: !ruby/object:Gem::Requirement
150
121
  requirements:
151
- - - ">="
122
+ - - '='
152
123
  - !ruby/object:Gem::Version
153
- version: '7.0'
124
+ version: 0.6.3
154
125
  type: :development
155
126
  prerelease: false
156
127
  version_requirements: !ruby/object:Gem::Requirement
157
128
  requirements:
158
- - - ">="
129
+ - - '='
159
130
  - !ruby/object:Gem::Version
160
- version: '7.0'
131
+ version: 0.6.3
161
132
  - !ruby/object:Gem::Dependency
162
133
  name: pry
163
134
  requirement: !ruby/object:Gem::Requirement
164
135
  requirements:
165
- - - ">="
136
+ - - '='
166
137
  - !ruby/object:Gem::Version
167
- version: '0'
138
+ version: 0.14.2
168
139
  type: :development
169
140
  prerelease: false
170
141
  version_requirements: !ruby/object:Gem::Requirement
171
142
  requirements:
172
- - - ">="
143
+ - - '='
173
144
  - !ruby/object:Gem::Version
174
- version: '0'
145
+ version: 0.14.2
175
146
  - !ruby/object:Gem::Dependency
176
147
  name: rake
177
148
  requirement: !ruby/object:Gem::Requirement
178
149
  requirements:
179
- - - ">="
150
+ - - '='
180
151
  - !ruby/object:Gem::Version
181
- version: 12.3.3
152
+ version: 13.0.6
182
153
  type: :development
183
154
  prerelease: false
184
155
  version_requirements: !ruby/object:Gem::Requirement
185
156
  requirements:
186
- - - ">="
157
+ - - '='
187
158
  - !ruby/object:Gem::Version
188
- version: 12.3.3
159
+ version: 13.0.6
189
160
  - !ruby/object:Gem::Dependency
190
161
  name: rspec
191
162
  requirement: !ruby/object:Gem::Requirement
192
163
  requirements:
193
- - - "~>"
164
+ - - '='
194
165
  - !ruby/object:Gem::Version
195
- version: '3.5'
166
+ version: 3.13.0
196
167
  type: :development
197
168
  prerelease: false
198
169
  version_requirements: !ruby/object:Gem::Requirement
199
170
  requirements:
200
- - - "~>"
171
+ - - '='
201
172
  - !ruby/object:Gem::Version
202
- version: '3.5'
173
+ version: 3.13.0
203
174
  - !ruby/object:Gem::Dependency
204
175
  name: rubocop
205
176
  requirement: !ruby/object:Gem::Requirement
206
177
  requirements:
207
178
  - - '='
208
179
  - !ruby/object:Gem::Version
209
- version: 1.30.1
180
+ version: 1.82.1
210
181
  type: :development
211
182
  prerelease: false
212
183
  version_requirements: !ruby/object:Gem::Requirement
213
184
  requirements:
214
185
  - - '='
215
186
  - !ruby/object:Gem::Version
216
- version: 1.30.1
187
+ version: 1.82.1
217
188
  - !ruby/object:Gem::Dependency
218
189
  name: rubocop-powerhome
219
190
  requirement: !ruby/object:Gem::Requirement
220
191
  requirements:
221
- - - ">="
192
+ - - '='
222
193
  - !ruby/object:Gem::Version
223
- version: 0.5.0
194
+ version: 0.6.1
224
195
  type: :development
225
196
  prerelease: false
226
197
  version_requirements: !ruby/object:Gem::Requirement
227
198
  requirements:
228
- - - ">="
199
+ - - '='
229
200
  - !ruby/object:Gem::Version
230
- version: 0.5.0
201
+ version: 0.6.1
231
202
  description: |
232
203
  Tools for working with Component Based Rails Apps (see https://cbra.info).
233
204
  Includes tools for graphing the components of an app and their relationships, as well as selectively
@@ -241,16 +212,7 @@ executables:
241
212
  extensions: []
242
213
  extra_rdoc_files: []
243
214
  files:
244
- - ".gitignore"
245
- - ".rspec"
246
- - ".rubocop.yml"
247
- - Gemfile
248
- - Guardfile
249
- - Rakefile
250
- - bin/console
251
- - bin/setup
252
215
  - cobra_commander.gemspec
253
- - doc/dependency_decisions.yml
254
216
  - docs/CHANGELOG.md
255
217
  - docs/README.md
256
218
  - exe/cobra
@@ -263,21 +225,20 @@ files:
263
225
  - lib/cobra_commander/cli/output/dot_graph.rb
264
226
  - lib/cobra_commander/component.rb
265
227
  - lib/cobra_commander/executor.rb
228
+ - lib/cobra_commander/executor/buffered_printer.rb
266
229
  - lib/cobra_commander/executor/command.rb
267
- - lib/cobra_commander/executor/execution.rb
268
- - lib/cobra_commander/executor/interactive_printer.rb
269
- - lib/cobra_commander/executor/job.rb
270
- - lib/cobra_commander/executor/markdown_printer.rb
230
+ - lib/cobra_commander/executor/isolated_pty.rb
231
+ - lib/cobra_commander/executor/output_prompt.rb
271
232
  - lib/cobra_commander/executor/package_criteria.rb
233
+ - lib/cobra_commander/executor/run_script.rb
272
234
  - lib/cobra_commander/executor/script.rb
273
- - lib/cobra_commander/executor/spinners.rb
235
+ - lib/cobra_commander/executor/worker_pool.rb
274
236
  - lib/cobra_commander/git_changed.rb
275
237
  - lib/cobra_commander/package.rb
276
238
  - lib/cobra_commander/registry.rb
277
239
  - lib/cobra_commander/source.rb
278
240
  - lib/cobra_commander/umbrella.rb
279
241
  - lib/cobra_commander/version.rb
280
- - mkdocs.yml
281
242
  homepage: http://tech.powerhrg.com/cobra_commander/
282
243
  licenses:
283
244
  - MIT
@@ -286,7 +247,6 @@ metadata:
286
247
  homepage_uri: http://tech.powerhrg.com/cobra_commander/
287
248
  source_code_uri: https://github.com/powerhome/cobra_commander
288
249
  changelog_uri: https://github.com/powerhome/cobra_commander/blob/main/cobra_commander/docs/CHANGELOG.md
289
- post_install_message:
290
250
  rdoc_options: []
291
251
  require_paths:
292
252
  - lib
@@ -294,15 +254,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
294
254
  requirements:
295
255
  - - ">="
296
256
  - !ruby/object:Gem::Version
297
- version: '0'
257
+ version: 3.2.0
298
258
  required_rubygems_version: !ruby/object:Gem::Requirement
299
259
  requirements:
300
260
  - - ">="
301
261
  - !ruby/object:Gem::Version
302
262
  version: '0'
303
263
  requirements: []
304
- rubygems_version: 3.4.1
305
- signing_key:
264
+ rubygems_version: 3.6.9
306
265
  specification_version: 4
307
266
  summary: Tools for working with Component Based Rails Apps
308
267
  test_files: []
data/.gitignore DELETED
@@ -1,16 +0,0 @@
1
- /.bundle/
2
- /.DS_store
3
- /.yardoc
4
- /Gemfile.lock
5
- /_yardoc/
6
- /coverage/
7
- /graph.*
8
- /pkg/
9
- /spec/examples.txt
10
- /spec/reports/
11
- /spec/fixtures/app/node_modules/
12
- /spec/fixtures/app/node_manifest/node_modules/
13
- /spec/fixtures/app/components/*/node_modules/
14
- /tmp/
15
-
16
- .bundle
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --require spec_helper
data/.rubocop.yml DELETED
@@ -1,8 +0,0 @@
1
- require:
2
- - rubocop-powerhome
3
-
4
- Rails:
5
- Enabled: false
6
-
7
- Style/ClassAndModuleChildren:
8
- Enabled: false
data/Gemfile DELETED
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- gemspec
6
-
7
- bundler_version = ENV.fetch("BUNDLER_VERSION", "2")
8
- gem "bundler", "~> #{bundler_version}"
9
-
10
- group :cobra do
11
- gem "cobra_commander-stub", path: "./spec/support/", require: "stub_source"
12
- end