inspec/lib/utils/database_helpers.rb

80 lines
1.1 KiB
Ruby
Raw Normal View History

# 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 inspect
to_s
end
def to_s
'SQL ResultSet'
end
end
end