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
65 66 67 68 69 |
# File 'lib/pg_pipeline/session.rb', line 65 def close!(session) session.__send__(:active=, false) session.__send__(:conn=, nil) nil end |
.connection(session) ⇒ Object
71 72 73 |
# File 'lib/pg_pipeline/session.rb', line 71 def connection(session) session.__send__(:conn) end |
.ensure_active!(session) ⇒ Object
29 30 31 32 33 34 35 |
# File 'lib/pg_pipeline/session.rb', line 29 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
42 43 44 45 46 47 48 49 |
# File 'lib/pg_pipeline/session.rb', line 42 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
60 61 62 63 |
# File 'lib/pg_pipeline/session.rb', line 60 def exec_prepared(session, name, params) ensure_active!(session) connection(session).exec_prepared(name, params) end |
.prepare(session, name, sql, param_types) ⇒ Object
51 52 53 54 55 56 57 58 |
# File 'lib/pg_pipeline/session.rb', line 51 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
37 38 39 40 |
# File 'lib/pg_pipeline/session.rb', line 37 def query(session, sql, params) ensure_active!(session) connection(session).exec_params(sql, params) end |