Module: PgPipeline::SessionOps
- Defined in:
- lib/pg_pipeline/session.rb
Class Method Summary collapse
- .close!(session) ⇒ Object
- .connection(session) ⇒ Object
- .ensure_active!(session) ⇒ Object
- .exec(session, sql, params = nil) ⇒ Object
- .exec_prepared(session, name, params) ⇒ Object
- .prepare(session, name, sql, param_types) ⇒ Object
- .query(session, sql, params) ⇒ Object
Class Method Details
.close!(session) ⇒ Object
67 68 69 70 71 |
# File 'lib/pg_pipeline/session.rb', line 67 def close!(session) session.__send__(:active=, false) session.__send__(:conn=, nil) nil end |
.connection(session) ⇒ Object
73 74 75 |
# File 'lib/pg_pipeline/session.rb', line 73 def connection(session) session.__send__(:conn) end |
.ensure_active!(session) ⇒ Object
31 32 33 34 35 36 37 |
# File 'lib/pg_pipeline/session.rb', line 31 def ensure_active!(session) conn = connection(session) raise Error, "session handle is no longer active" unless session.active? && conn return if Fiber.current.equal?(session.owner_fiber) raise Error, "session handle is fiber-local and cannot be used from another fiber" end |
.exec(session, sql, params = nil) ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'lib/pg_pipeline/session.rb', line 44 def exec(session, sql, params = nil) ensure_active!(session) if params.nil? connection(session).exec(sql) else connection(session).exec_params(sql, params) end end |
.exec_prepared(session, name, params) ⇒ Object
62 63 64 65 |
# File 'lib/pg_pipeline/session.rb', line 62 def exec_prepared(session, name, params) ensure_active!(session) connection(session).exec_prepared(name, params) end |
.prepare(session, name, sql, param_types) ⇒ Object
53 54 55 56 57 58 59 60 |
# File 'lib/pg_pipeline/session.rb', line 53 def prepare(session, name, sql, param_types) ensure_active!(session) if param_types connection(session).prepare(name, sql, param_types) else connection(session).prepare(name, sql) end end |
.query(session, sql, params) ⇒ Object
39 40 41 42 |
# File 'lib/pg_pipeline/session.rb', line 39 def query(session, sql, params) ensure_active!(session) connection(session).exec_params(sql, params) end |