Class: RuntimeCommand::Builder
- Inherits:
-
Object
- Object
- RuntimeCommand::Builder
- Defined in:
- lib/runtime_command/builder.rb
Instance Attribute Summary collapse
-
#buffered_log ⇒ Object
readonly
Returns the value of attribute buffered_log.
Instance Method Summary collapse
- #exec(command, chdir = nil) ⇒ RuntimeCommand::Logger
- #exec_capture(command, chdir = nil) ⇒ RuntimeCommand::Logger
- #initialize(options = {}) ⇒ RuntimeCommand::Builder constructor
- #puts(message) ⇒ RuntimeCommand::Logger
- #puts_error(message) ⇒ RuntimeCommand::Logger
Constructor Details
#initialize(options = {}) ⇒ RuntimeCommand::Builder
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/runtime_command/builder.rb', line 16 def initialize( = {}) [:base_dir] ||= '.' [:colors] ||= {} [:logger] ||= nil [:output] ||= true [:stdin_prefix] ||= '>' @options = @buffered_log = '' end |
Instance Attribute Details
#buffered_log ⇒ Object (readonly)
Returns the value of attribute buffered_log.
7 8 9 |
# File 'lib/runtime_command/builder.rb', line 7 def buffered_log @buffered_log end |
Instance Method Details
#exec(command, chdir = nil) ⇒ RuntimeCommand::Logger
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/runtime_command/builder.rb', line 30 def exec(command, chdir = nil) chdir ||= @options[:base_dir] logger = Logger.new(output: @options[:output], colors: @options[:colors], logger: @options[:logger]) logger.stdin(@options[:stdin_prefix] + ' ' + command) invoke_command(logger) do Open3.popen3(command, chdir: chdir) do |stdin, stdout, stderr| stdin.close stdout.each do || logger.stdout() end stderr.each do || logger.stderr() end end end logger end |
#exec_capture(command, chdir = nil) ⇒ RuntimeCommand::Logger
56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/runtime_command/builder.rb', line 56 def exec_capture(command, chdir = nil) chdir ||= @options[:base_dir] logger = Logger.new(output: @options[:output], colors: @options[:colors], logger: @options[:logger]) invoke_command(logger) do stdout, stderr = Open3.capture3(command, chdir: chdir) logger.stdout(stdout) unless stdout.empty? logger.stderr(stderr) unless stderr.empty? end logger end |
#puts(message) ⇒ RuntimeCommand::Logger
71 72 73 74 75 76 77 |
# File 'lib/runtime_command/builder.rb', line 71 def puts() logger = Logger.new(output: @options[:output], colors: @options[:colors], logger: @options[:logger]) logger.stdout() unless .nil? @buffered_log << logger.buffered_log + "\n" logger end |
#puts_error(message) ⇒ RuntimeCommand::Logger
81 82 83 84 85 86 87 |
# File 'lib/runtime_command/builder.rb', line 81 def puts_error() logger = Logger.new(output: @options[:output], colors: @options[:colors], logger: @options[:logger]) logger.stderr() unless .nil? @buffered_log << logger.buffered_log + "\n" logger end |