mirror of
https://gitea.invidious.io/iv-org/shard-crystal-db.git
synced 2024-08-15 00:53:32 +00:00
Use ConnectionBuilder instead of procs
This commit is contained in:
parent
83c3e91ec2
commit
9370f5784b
5 changed files with 46 additions and 12 deletions
|
@ -36,6 +36,15 @@ class FooValue
|
|||
end
|
||||
|
||||
class FooDriver < DB::Driver
|
||||
class FooConnectionBuilder < DB::ConnectionBuilder
|
||||
def initialize(@options : DB::Connection::Options)
|
||||
end
|
||||
|
||||
def build : DB::Connection
|
||||
FooConnection.new(@options)
|
||||
end
|
||||
end
|
||||
|
||||
alias Any = DB::Any | FooValue
|
||||
@@row = [] of Any
|
||||
|
||||
|
@ -47,10 +56,9 @@ class FooDriver < DB::Driver
|
|||
@@row
|
||||
end
|
||||
|
||||
def connection_builder(uri : URI) : Proc(DB::Connection)
|
||||
def connection_builder(uri : URI) : DB::ConnectionBuilder
|
||||
params = HTTP::Params.parse(uri.query || "")
|
||||
options = connection_options(params)
|
||||
->{ FooConnection.new(options).as(DB::Connection) }
|
||||
FooConnectionBuilder.new(connection_options(params))
|
||||
end
|
||||
|
||||
class FooConnection < DB::Connection
|
||||
|
@ -101,6 +109,15 @@ class BarValue
|
|||
end
|
||||
|
||||
class BarDriver < DB::Driver
|
||||
class BarConnectionBuilder < DB::ConnectionBuilder
|
||||
def initialize(@options : DB::Connection::Options)
|
||||
end
|
||||
|
||||
def build : DB::Connection
|
||||
BarConnection.new(@options)
|
||||
end
|
||||
end
|
||||
|
||||
alias Any = DB::Any | BarValue
|
||||
@@row = [] of Any
|
||||
|
||||
|
@ -112,10 +129,9 @@ class BarDriver < DB::Driver
|
|||
@@row
|
||||
end
|
||||
|
||||
def connection_builder(uri : URI) : Proc(DB::Connection)
|
||||
def connection_builder(uri : URI) : DB::ConnectionBuilder
|
||||
params = HTTP::Params.parse(uri.query || "")
|
||||
options = connection_options(params)
|
||||
->{ BarConnection.new(options).as(DB::Connection) }
|
||||
BarConnectionBuilder.new(connection_options(params))
|
||||
end
|
||||
|
||||
class BarConnection < DB::Connection
|
||||
|
|
|
@ -2,10 +2,18 @@ require "spec"
|
|||
require "../src/db"
|
||||
|
||||
class DummyDriver < DB::Driver
|
||||
def connection_builder(uri : URI) : Proc(DB::Connection)
|
||||
class DummyConnectionBuilder < DB::ConnectionBuilder
|
||||
def initialize(@options : DB::Connection::Options)
|
||||
end
|
||||
|
||||
def build : DB::Connection
|
||||
DummyConnection.new(@options)
|
||||
end
|
||||
end
|
||||
|
||||
def connection_builder(uri : URI) : DB::ConnectionBuilder
|
||||
params = HTTP::Params.parse(uri.query || "")
|
||||
options = connection_options(params)
|
||||
->{ DummyConnection.new(options).as(DB::Connection) }
|
||||
DummyConnectionBuilder.new(connection_options(params))
|
||||
end
|
||||
|
||||
class DummyConnection < DB::Connection
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue