module Spectre::MySQL
Public Class Methods
mysql(name = nil, &block)
click to toggle source
# File lib/spectre/mysql.rb, line 43 def mysql name = nil, &block query = {} if name != nil and @@mysql_cfg.key? name query.merge! @@mysql_cfg[name] raise "No `host' set for MySQL client '#{name}'. Check your MySQL config in your environment." if !query['host'] elsif name != nil query['host'] = name elsif @@last_conn == nil raise 'No name given and there was no previous MySQL connection to use' end MySqlQuery.new(query).instance_eval(&block) if block_given? if name != nil @@last_conn = { host: query['host'], username: query['username'], password: query['password'], database: query['database'] } end @@logger.info "Connecting to database #{query['username']}@#{query['host']}:#{query['database']}" client = ::Mysql2::Client.new(**@@last_conn) res = [] query['query'].each do |statement| @@logger.info 'Executing statement "' + statement + '"' res = client.query(statement, cast_booleans: true) end if query['query'] @@result = res.map { |row| OpenStruct.new row } if res client.close end
result()
click to toggle source
# File lib/spectre/mysql.rb, line 82 def result raise 'No MySQL query has been executed yet' unless @@result @@result end