Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
inspec / lib / utils / database_helpers.rb
Size: Mime:
# encoding: utf-8
# author: Christoph Hartmann
# author: Dominik Richter

module DatabaseHelper
  class SQLColumn
    def initialize(row, name)
      @row = row
      @name = name
    end

    def value
      @row.nil? ? '' : @row[@name.downcase]
    end

    def to_s
      'SQL Column'
    end
  end

  class SQLRow
    def initialize(query, row)
      @query = query
      @row = row
    end

    def column(column)
      SQLColumn.new(@row, column)
    end

    def to_s
      'SQL Row'
    end
  end

  class SQLQueryResult
    attr_reader :error
    def initialize(cmd, results)
      @cmd = cmd
      @results = results
    end

    def empty?
      @results.empty?
    end

    def successful?
      @cmd.exit_status == 0 && @error.nil?
    end

    def rows
      @results
    end

    def row(id)
      SQLRow.new(self, @results[id])
    end

    def column(column)
      result = []
      @results.each do |row|
        result << row[column]
      end
      result
    end

    def size
      @results.size
    end

    def stdout
      warn '[DEPRECATION] The `stdout` method is deprecated. Use `row` instead.'
      @cmd.stdout
    end

    def stderr
      warn '[DEPRECATION] The `stderr` method is deprecated. Use `successful?` instead.'
      @cmd.stderr
    end

    def inspect
      to_s
    end

    def to_s
      'SQL ResultSet'
    end
  end
end