Class: MonoRM::DBConnection

Inherits:
Object
  • Object
show all
Defined in:
lib/monorm/adapters/pg_connection.rb,
lib/monorm/adapters/sqlite_connection.rb

Class Method Summary collapse

Class Method Details

.cols_exec(*args) ⇒ Object



49
50
51
52
53
# File 'lib/monorm/adapters/pg_connection.rb', line 49

def self.cols_exec(*args)
  args = args.join("\n")

  instance.exec(args)[0].keys
end

.execute(*args) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/monorm/adapters/pg_connection.rb', line 24

def self.execute(*args)
  sql_statement = args[0]

  args_counter = 1

  should_return_id = false

  interpolated_sql_statement_elements = sql_statement.split(' ').map do |arg|
    should_return_id = true if /\bINSERT\b/.match(arg)
    if /\bINTERPOLATOR_MARK\b/.match(arg)
      interpolated_arg = arg.gsub(/\bINTERPOLATOR_MARK\b/, "$#{args_counter}")
      args_counter += 1
      interpolated_arg
    else
      arg
    end
  end
  interpolated_sql_statement = interpolated_sql_statement_elements.join(' ')

  args[0] = interpolated_sql_statement
  interpolated_args = args.slice(1..-1)
  interpolated_sql_statement << ' RETURNING id' if should_return_id
  @returned_id = instance.exec(interpolated_sql_statement, interpolated_args)
end

.instanceObject



18
19
20
21
22
# File 'lib/monorm/adapters/pg_connection.rb', line 18

def self.instance
  MonoRM::DBConnection.open if @conn.nil?

  @conn
end

.last_insert_row_idObject



55
56
57
# File 'lib/monorm/adapters/pg_connection.rb', line 55

def self.last_insert_row_id
  @returned_id
end

.load_db_pathObject



48
49
50
51
52
# File 'lib/monorm/adapters/sqlite_connection.rb', line 48

def self.load_db_path
  dir = File.dirname(__FILE__)
  db_name = URI.parse(ENV['DATABASE_URL']).path[1..-1]
  @db_path = File.join(MonoRM::PROJECT_ROOT_DIR, "db", "sqlite_db", "#{db_name}.db")
end

.openObject



5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/monorm/adapters/pg_connection.rb', line 5

def self.open
  uri = URI.parse(ENV['DATABASE_URL'])
  @conn = PG::Connection.new(
  user: uri.user,
  password: uri.password,
  host: uri.host,
  port: uri.port,
  dbname: uri.path[1..-1]
  )

  @conn
end