Class: Mysql2Wrapper::Db

Inherits:
Object
  • Object
show all
Defined in:
lib/mysql2_wrapper.rb

Instance Method Summary collapse

Constructor Details

#initialize(db_params) ⇒ Db

Returns a new instance of Db.



6
7
8
# File 'lib/mysql2_wrapper.rb', line 6

def initialize(db_params)
  @connection = connect(db_params)
end

Instance Method Details

#closeObject



64
65
66
# File 'lib/mysql2_wrapper.rb', line 64

def close
  @connection.close
end

#connect(db_params) ⇒ Object



14
15
16
# File 'lib/mysql2_wrapper.rb', line 14

def connect(db_params)
  Mysql2::Client.new(db_params)
end

#connected?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/mysql2_wrapper.rb', line 18

def connected?
  @connection.ping
end

#count(query, *values) ⇒ Object

Raises:

  • (ArgumentError)


44
45
46
47
48
# 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) ⇒ Object



22
23
24
# File 'lib/mysql2_wrapper.rb', line 22

def escape(string)
  @connection.escape(string)
end

#get_all(query, *values) ⇒ Object



40
41
42
# File 'lib/mysql2_wrapper.rb', line 40

def get_all(query, *values)
  query(query, *values).entries
end

#get_one(query, *values) ⇒ Object



36
37
38
# File 'lib/mysql2_wrapper.rb', line 36

def get_one(query, *values)
  query(query, *values).first
end

#get_one!(query, *values) ⇒ Object



30
31
32
33
34
# 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) ⇒ Object



26
27
28
# File 'lib/mysql2_wrapper.rb', line 26

def query(query, *values)
  @connection.prepare(query).execute(*values)
end

#to_sObject



10
11
12
# File 'lib/mysql2_wrapper.rb', line 10

def to_s
  @connection.to_s
end

#transactionObject

Raises:

  • (ArgumentError)


50
51
52
53
54
55
56
57
58
59
60
61
62
# 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