Sha256: 8b6567e7e8b2e0485029d673e0e6c98ea80eeeb9364a484c53431cc2f4476323

Contents?: true

Size: 738 Bytes

Versions: 2

Compression:

Stored size: 738 Bytes

Contents

class SlashPort::Exec
  def initialize(cmd)
    @cmd = cmd
  end

  def run
    output = `#{@cmd}`
    code = $?.exitstatus

    return [output, code]
  end

  def to_tuple
    data = []

    output, code = run
    lines = output.split(/\r?\n/)

    if lines.length == 0
      tuple = SlashPort::Tuple.new
      tuple.data["output-lines"] = lines.length
      tuple.data["exit-code"] = code
      data << tuple
    end

    lines.each do |line|
      tuple = SlashPort::Tuple.new
      tuple.data["exit-code"] = code
      begin
        tuple.data["value"] = Float(line)
      rescue ArgumentError => e
        tuple.labels["string"] = 1
        tuple.data["value"] = line
      end

      data << tuple
    end
    return data
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
slashport-0.15.12 app/models/base/exec.rb
slashport-0.15.10 app/models/base/exec.rb