class Mysql2Wrapper::Db

Public Class Methods

new(db_params) click to toggle source
# File lib/mysql2_wrapper.rb, line 6
def initialize(db_params)
  @connection = connect(db_params)
end

Public Instance Methods

close() click to toggle source
# File lib/mysql2_wrapper.rb, line 64
def close
  @connection.close
end
connect(db_params) click to toggle source
# File lib/mysql2_wrapper.rb, line 14
def connect(db_params)
  Mysql2::Client.new(db_params)
end
connected?() click to toggle source
# File lib/mysql2_wrapper.rb, line 18
def connected?
  @connection.ping
end
count(query, *values) click to toggle source
# File lib/mysql2_wrapper.rb, line 44
def count(query, *values)
  count = query[/count\(.*\)/]&.to_sym
  raise ArgumentError, 'No count on the query.' if count.nil?
  get_one(query, *values)[count]
end
escape(string) click to toggle source
# File lib/mysql2_wrapper.rb, line 22
def escape(string)
  @connection.escape(string)
end
get_all(query, *values) click to toggle source
# File lib/mysql2_wrapper.rb, line 40
def get_all(query, *values)
  query(query, *values).entries
end
get_one(query, *values) click to toggle source
# File lib/mysql2_wrapper.rb, line 36
def get_one(query, *values)
  query(query, *values).first
end
get_one!(query, *values) click to toggle source
# File lib/mysql2_wrapper.rb, line 30
def get_one!(query, *values)
  results = query(query, *values)
  raise 'More than one result.' unless results.one?
  results.first
end
query(query, *values) click to toggle source
# File lib/mysql2_wrapper.rb, line 26
def query(query, *values)
  @connection.prepare(query).execute(*values)
end
to_s() click to toggle source
# File lib/mysql2_wrapper.rb, line 10
def to_s
  @connection.to_s
end
transaction() { || ... } click to toggle source
# File lib/mysql2_wrapper.rb, line 50
def transaction
  raise ArgumentError, 'No block was given' unless block_given?

  begin
    @connection.query('BEGIN')
    yield
    @connection.query('COMMIT')
  rescue StandardError => e
    warn e.message
    @connection.query('ROLLBACK')
    return nil
  end
end