Class: WritersRoom::CLI
- Inherits:
-
Thor
- Object
- Thor
- WritersRoom::CLI
- Defined in:
- lib/writers_room/cli.rb
Class Method Summary collapse
Instance Method Summary collapse
- #chat ⇒ Object
- #config ⇒ Object
- #direct(scene_file) ⇒ Object
- #help(command = nil) ⇒ Object
- #init(project_name) ⇒ Object
-
#initialize(*args) ⇒ CLI
constructor
Handle global options.
- #produce(*scene_files) ⇒ Object
- #report ⇒ Object
- #status ⇒ Object
- #version ⇒ Object
Constructor Details
#initialize(*args) ⇒ CLI
Handle global options
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/writers_room/cli.rb', line 38 def initialize(*args) super # Handle --help if [:help] require_relative "help_formatter" HelpFormatter.print_comprehensive_help exit 0 end # Handle --version if [:version] puts "WritersRoom #{WritersRoom::VERSION}" exit 0 end end |
Class Method Details
.exit_on_failure? ⇒ Boolean
30 31 32 |
# File 'lib/writers_room/cli.rb', line 30 def self.exit_on_failure? true end |
Instance Method Details
#chat ⇒ Object
73 74 75 76 |
# File 'lib/writers_room/cli.rb', line 73 def chat require_relative "cli/chat" Commands::Chat.new.chat end |
#config ⇒ Object
112 113 114 115 |
# File 'lib/writers_room/cli.rb', line 112 def config require_relative "cli/config" Commands::Config.new.config end |
#direct(scene_file) ⇒ Object
131 132 133 134 |
# File 'lib/writers_room/cli.rb', line 131 def direct(scene_file) require_relative "cli/direct" Commands::Direct.new([], ).direct(scene_file) end |
#help(command = nil) ⇒ Object
61 62 63 64 65 66 67 68 69 70 |
# File 'lib/writers_room/cli.rb', line 61 def help(command = nil) if [:verbose] require_relative "help_formatter" HelpFormatter.print_comprehensive_help elsif command self.class.command_help(shell, command) else super end end |
#init(project_name) ⇒ Object
106 107 108 109 |
# File 'lib/writers_room/cli.rb', line 106 def init(project_name) require_relative "cli/init" Commands::Init.new([], ).init(project_name) end |
#produce(*scene_files) ⇒ Object
150 151 152 153 |
# File 'lib/writers_room/cli.rb', line 150 def produce(*scene_files) require_relative "cli/produce" Commands::Produce.new([], ).produce(*scene_files) end |
#report ⇒ Object
165 166 167 168 |
# File 'lib/writers_room/cli.rb', line 165 def report require_relative "cli/report" Commands::Report.new.report end |
#status ⇒ Object
174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 |
# File 'lib/writers_room/cli.rb', line 174 def status context = WritersRoom::ContextDetector.new.detect unless context.in_project? say "Not inside a WritersRoom project.", :yellow say "Run 'wr init PROJECT_NAME' to create one.", :white return end state = context.project_state say state.summary workflow = WritersRoom::Workflow.new(context.medium) steps = workflow.next_steps(context.project_path) if steps.any? say "\nNext steps:", :cyan steps.each { |s| say " - #{s}", :white } end end |
#version ⇒ Object
79 80 81 82 |
# File 'lib/writers_room/cli.rb', line 79 def version require_relative "cli/version" Commands::Version.new.version end |