Class: Divide::CLI
- Inherits:
-
Object
- Object
- Divide::CLI
- Defined in:
- lib/divide/cli.rb
Instance Attribute Summary collapse
-
#options ⇒ Object
readonly
Returns the value of attribute options.
Instance Method Summary collapse
- #current_app_name ⇒ Object
- #current_directory ⇒ Object
- #error(type) ⇒ Object
- #exit_with_message(message, code = 0) ⇒ Object
- #extract_processes ⇒ Object
- #extracted_processes ⇒ Object
- #extractor ⇒ Object
-
#initialize(argv = []) ⇒ CLI
constructor
A new instance of CLI.
- #show_help ⇒ Object
- #show_version ⇒ Object
- #start_processes(processes) ⇒ Object
- #terminal ⇒ Object
Constructor Details
#initialize(argv = []) ⇒ CLI
Returns a new instance of CLI.
5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/divide/cli.rb', line 5 def initialize(argv=[]) = argv.each_slice(2).to_a show_version if argv.grep(/^-v|--version$/).any? show_help if argv.grep(/^-h|--help$/).any? error(:app_not_supported) unless terminal processes = extract_processes start_processes(processes) end |
Instance Attribute Details
#options ⇒ Object (readonly)
Returns the value of attribute options.
3 4 5 |
# File 'lib/divide/cli.rb', line 3 def end |
Instance Method Details
#current_app_name ⇒ Object
48 49 50 |
# File 'lib/divide/cli.rb', line 48 def current_app_name @current_app_name ||= TerminalBridge.current_app_name end |
#current_directory ⇒ Object
56 57 58 |
# File 'lib/divide/cli.rb', line 56 def current_directory @current_directory ||= Dir.pwd end |
#error(type) ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/divide/cli.rb', line 26 def error(type) errors = { no_procfile: "#{current_directory}: There is no Procfile in this directory", app_not_supported: "#{current_app_name} is not yet supported, please fill in a request https://github.com/EtienneLem/divide/issues", } (errors[type], 1) end |
#exit_with_message(message, code = 0) ⇒ Object
43 44 45 46 |
# File 'lib/divide/cli.rb', line 43 def (, code=0) STDOUT.puts() exit code end |
#extract_processes ⇒ Object
21 22 23 24 |
# File 'lib/divide/cli.rb', line 21 def extract_processes error(:no_procfile) unless extracted_processes extracted_processes.to_a.map { |a| a[1] } end |
#extracted_processes ⇒ Object
52 53 54 |
# File 'lib/divide/cli.rb', line 52 def extracted_processes @extracted_processes ||= extractor.extract_processes! end |
#extractor ⇒ Object
68 69 70 |
# File 'lib/divide/cli.rb', line 68 def extractor @extractor ||= Extractor.new() end |
#show_help ⇒ Object
39 40 41 |
# File 'lib/divide/cli.rb', line 39 def show_help ("Usage: divide [options]") end |
#show_version ⇒ Object
35 36 37 |
# File 'lib/divide/cli.rb', line 35 def show_version ("Divide #{VERSION}") end |
#start_processes(processes) ⇒ Object
17 18 19 |
# File 'lib/divide/cli.rb', line 17 def start_processes(processes) terminal.exec(processes) end |
#terminal ⇒ Object
60 61 62 63 64 65 66 |
# File 'lib/divide/cli.rb', line 60 def terminal @terminal ||= case current_app_name.downcase when 'terminal' then TerminalBridge::Terminal.new when 'iterm' then TerminalBridge::ITerm.new else nil end end |