Class: RailsEngineToolkit::CLI

Inherits:
Thor
  • Object
show all
Defined in:
lib/rails_engine_toolkit/cli.rb

Constant Summary collapse

KNOWN_COMMANDS =
%w[
  help
  init
  new_engine
  update_engine_readme
  new_engine_migration
  delete_engine_migration
  new_engine_model
  install_engine_migrations
  uninstall_engine_migrations
  remove_engine
].freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.command_help_textObject



83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/rails_engine_toolkit/cli.rb', line 83

def self.command_help_text
  <<~TEXT
    Commands:
      init
      new_engine ENGINE_NAME
      update_engine_readme ENGINE_NAME
      new_engine_migration ENGINE_NAME MIGRATION_NAME [ARGS...]
      delete_engine_migration ENGINE_NAME PATTERN
      new_engine_model ENGINE_NAME MODEL_NAME [ATTRS...]
      install_engine_migrations ENGINE_NAME
      uninstall_engine_migrations ENGINE_NAME
      remove_engine ENGINE_NAME
  TEXT
end

.exit_on_failure?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/rails_engine_toolkit/cli.rb', line 20

def self.exit_on_failure?
  true
end

.start(argv) ⇒ Object



69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/rails_engine_toolkit/cli.rb', line 69

def self.start(argv)
  first = argv.first
  if first && !first.start_with?('-') && !KNOWN_COMMANDS.include?(first)
    puts(command_help_text)
    return 1
  end

  super
  0
rescue Error => e
  warn("Error: #{e.message}")
  1
end

Instance Method Details

#delete_engine_migration(engine_name, pattern) ⇒ Object



45
46
47
# File 'lib/rails_engine_toolkit/cli.rb', line 45

def delete_engine_migration(engine_name, pattern)
  run_action(Actions::DeleteEngineMigration, [engine_name, pattern])
end

#initObject



25
26
27
# File 'lib/rails_engine_toolkit/cli.rb', line 25

def init
  run_action(Actions::Init, [])
end

#install_engine_migrations(engine_name) ⇒ Object



55
56
57
# File 'lib/rails_engine_toolkit/cli.rb', line 55

def install_engine_migrations(engine_name)
  run_action(Actions::InstallEngineMigrations, [engine_name])
end

#new_engine(engine_name) ⇒ Object



30
31
32
# File 'lib/rails_engine_toolkit/cli.rb', line 30

def new_engine(engine_name)
  run_action(Actions::NewEngine, [engine_name])
end

#new_engine_migration(engine_name, migration_name, *args) ⇒ Object



40
41
42
# File 'lib/rails_engine_toolkit/cli.rb', line 40

def new_engine_migration(engine_name, migration_name, *args)
  run_action(Actions::NewEngineMigration, [engine_name, migration_name, *args])
end

#new_engine_model(engine_name, model_name, *attrs) ⇒ Object



50
51
52
# File 'lib/rails_engine_toolkit/cli.rb', line 50

def new_engine_model(engine_name, model_name, *attrs)
  run_action(Actions::NewEngineModel, [engine_name, model_name, *attrs])
end

#remove_engine(engine_name) ⇒ Object



65
66
67
# File 'lib/rails_engine_toolkit/cli.rb', line 65

def remove_engine(engine_name)
  run_action(Actions::RemoveEngine, [engine_name])
end

#uninstall_engine_migrations(engine_name) ⇒ Object



60
61
62
# File 'lib/rails_engine_toolkit/cli.rb', line 60

def uninstall_engine_migrations(engine_name)
  run_action(Actions::UninstallEngineMigrations, [engine_name])
end

#update_engine_readme(engine_name) ⇒ Object



35
36
37
# File 'lib/rails_engine_toolkit/cli.rb', line 35

def update_engine_readme(engine_name)
  run_action(Actions::UpdateEngineReadme, [engine_name])
end