class Jets::CLI::Main
Constants
- RESERVED_COMMANDS
Public Class Methods
exit_on_failure?()
click to toggle source
# File lib/jets/cli/main.rb, line 13 def self.exit_on_failure? true end
Public Instance Methods
bundle(*args)
click to toggle source
# File lib/jets/cli/main.rb, line 21 def bundle(*args) exec_command("bundle", *args) end
console()
click to toggle source
# File lib/jets/cli/main.rb, line 36 def console exec_command("./bin/console") end
method_missing(engine_or_gem, *args)
click to toggle source
Calls superclass method
# File lib/jets/cli/main.rb, line 57 def method_missing(engine_or_gem, *args) options = case engine_or_gem.to_s when "all" {all: true} when "all-gems" {all_gems: true} when "all-engines" {all_engines: true} when *engines {engine: engine_or_gem.to_s} when *gems {engine: engine_or_gem.to_s, gem: true} end return super if options.nil? self.class.start(args, class_options: options) end
rails(*args)
click to toggle source
# File lib/jets/cli/main.rb, line 45 def rails(*args) exec_command("./bin/rails", *args) end
respond_to_missing?(engine_or_gem, *args)
click to toggle source
# File lib/jets/cli/main.rb, line 77 def respond_to_missing?(engine_or_gem, *args) case engine_or_gem.to_s when "all" true when "all-gems" true when "all-engines" true when *engines true when *gems true else false end end
yarn(*args)
click to toggle source
# File lib/jets/cli/main.rb, line 53 def yarn(*args) exec_command("yarn", *args) end
Private Instance Methods
app_root()
click to toggle source
# File lib/jets/cli/main.rb, line 112 def app_root # @app_root ||= File.expand_path("../../..", __dir__) @app_root ||= if defined?(Rails) Rails.root else Dir.pwd end end
engine()
click to toggle source
# File lib/jets/cli/main.rb, line 96 def engine @engine ||= options[:engine] || ENV["ENGINE"] end
engine_root()
click to toggle source
# File lib/jets/cli/main.rb, line 108 def engine_root @engine_root ||= "#{options[:gem] ? "gems" : "engines"}/#{engine}" end
engines()
click to toggle source
# File lib/jets/cli/main.rb, line 100 def engines @engines ||= Dir["*", base: "engines"] end
exec_command(*args)
click to toggle source
rubocop:disable Lint/MixedRegexpCaptureTypes
# File lib/jets/cli/main.rb, line 122 def exec_command(*args) if engine.nil? || engine.empty? @engine = args.each do |arg| next unless match = arg&.match(%r{^(engines|gems)/(?<name>[a-z_]+)}) # rubocop:disable Lint/AssignmentInCondition break match[:name] end if engine args.map! { |arg| arg ? arg.sub("#{engine_root}/", "") : arg } else raise "You did not provide an engine name." end end subshell(engine_root, *args) end
gems()
click to toggle source
# File lib/jets/cli/main.rb, line 104 def gems @gems ||= Dir["*", base: "gems"] end
subshell(dir, command, *args)
click to toggle source
rubocop:enable Lint/MixedRegexpCaptureTypes
# File lib/jets/cli/main.rb, line 140 def subshell(dir, command, *args) Bundler.with_original_env do new_root = File.join(app_root, dir) Dir.chdir(new_root) do return if Kernel.system(command, *args) end end message = "Command `#{command}` (from #{dir}) returned non-zero exit code" $stdout.puts message raise ::Jets::CLI::Exceptions::CommandFailed, message unless options[:ignore_failures] end