inspec/lib/utils/database_helpers.rb
Stanislav Voroniy a16877f427 A number of bug fixes and new features for oracledb_session resource (#3170)
Signed-off-by: Stanislav Voroniy <stas@voroniy.com>
2018-07-09 13:57:45 -04:00

89 lines
1.3 KiB
Ruby

# 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