Class: MiniSql::Connection
- Inherits:
-
Object
- Object
- MiniSql::Connection
- Defined in:
- lib/mini_sql/connection.rb
Class Method Summary collapse
Instance Method Summary collapse
- #build(sql) ⇒ Object
- #exec(sql, params = nil) ⇒ Object
-
#initialize(conn, deserializer_cache = nil, type_map = nil) ⇒ Connection
constructor
A new instance of Connection.
- #query(sql, params = nil) ⇒ Object
- #query_single(sql, params = nil) ⇒ Object
Constructor Details
#initialize(conn, deserializer_cache = nil, type_map = nil) ⇒ Connection
Returns a new instance of Connection.
17 18 19 20 21 22 |
# File 'lib/mini_sql/connection.rb', line 17 def initialize(conn, deserializer_cache = nil, type_map = nil) # TODO adapter to support other databases @conn = conn @deserializer_cache = deserializer_cache || Connection.default_deserializer_cache @type_map = type_map || Connection.type_map(conn) end |
Class Method Details
.default_deserializer_cache ⇒ Object
4 5 6 |
# File 'lib/mini_sql/connection.rb', line 4 def self.default_deserializer_cache @deserializer_cache ||= DeserializerCache.new end |
.type_map(conn) ⇒ Object
8 9 10 11 12 13 14 15 |
# File 'lib/mini_sql/connection.rb', line 8 def self.type_map(conn) @type_map ||= begin map = PG::BasicTypeMapForResults.new(conn) map.add_coder(MiniSql::Coders::NumericCoder.new(name: "numeric", oid: 1700, format: 0)) map.add_coder(MiniSql::Coders::IPAddrCoder.new(name: "inet", oid: 869, format: 0)) end end |
Instance Method Details
#build(sql) ⇒ Object
47 48 49 |
# File 'lib/mini_sql/connection.rb', line 47 def build(sql) Builder.new(self, sql) end |
#exec(sql, params = nil) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/mini_sql/connection.rb', line 40 def exec(sql, params=nil) result = run(sql, params) result.cmd_tuples ensure result.clear if result end |
#query(sql, params = nil) ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/mini_sql/connection.rb', line 32 def query(sql, params=nil) result = run(sql, params) result.type_map = @type_map @deserializer_cache.materialize(result) ensure result.clear if result end |
#query_single(sql, params = nil) ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/mini_sql/connection.rb', line 24 def query_single(sql, params=nil) result = run(sql, params) result.type_map = @type_map result.column_values(0) ensure result.clear if result end |