Class: MonoRM::DBConnection
- Inherits:
-
Object
- Object
- MonoRM::DBConnection
- Defined in:
- lib/monorm/adapters/pg_connection.rb,
lib/monorm/adapters/sqlite_connection.rb
Class Method Summary collapse
- .cols_exec(*args) ⇒ Object
- .execute(*args) ⇒ Object
- .instance ⇒ Object
- .last_insert_row_id ⇒ Object
- .load_db_path ⇒ Object
- .open ⇒ Object
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 |
.instance ⇒ Object
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_id ⇒ Object
55 56 57 |
# File 'lib/monorm/adapters/pg_connection.rb', line 55 def self.last_insert_row_id @returned_id end |
.load_db_path ⇒ Object
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 |
.open ⇒ Object
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 |