inspec/lib/utils/database_helpers.rb
Noel Georgi dd033fbf1b mssql_session - Handling cases where the data is nil (#2752)
* Fixing bug where the row data returned is nil

Signed-off-by: Noel Georgi <noel.georgi@reancloud.com>
2018-03-01 14:30:07 -05:00

77 lines
1.2 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 row(id)
SQLRow.new(self, @results[id])
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