class RubyFly::Commands::Status

Public Class Methods

new(*args) click to toggle source
# File lib/ruby_fly/commands/status.rb, line 10
def initialize(*args)
  super(*args)
  @stdout = StringIO.new unless
      (defined?(@stdout) && @stdout.respond_to?(:string))
  @stderr = StringIO.new unless
      (defined?(@stderr) && @stderr.respond_to?(:string))
end

Public Instance Methods

configure_command(builder, opts) click to toggle source
# File lib/ruby_fly/commands/status.rb, line 18
def configure_command(builder, opts)
  builder = super(builder, opts)

  missing_params = [
      :target
  ].select { |param| opts[param].nil? }

  unless missing_params.empty?
    description = missing_params.map { |p| "'#{p}'" }.join(', ')
    raise(
        ArgumentError,
        "Error: #{description} required but not provided.")
  end

  target = opts[:target]

  builder
    .with_subcommand('status') do |sub|
      sub = sub.with_option('-t', target)
      sub
    end
end
do_after(opts) click to toggle source
# File lib/ruby_fly/commands/status.rb, line 49
def do_after(opts)
  output = stdout.string
  error = stderr.string

  return :logged_in if output =~ /logged in successfully/
  return :logged_out if error =~ /logged out/
  return :session_expired if error =~ /please login again/
  return :unknown_target if error =~ /error: unknown target/

  :unknown_status
end
do_around(opts, &block) click to toggle source
# File lib/ruby_fly/commands/status.rb, line 41
def do_around(opts, &block)
  begin
    block.call(opts)
  rescue Open4::SpawnError => e
    raise e unless e.status.exitstatus == 1
  end
end