-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdburl.go
More file actions
42 lines (34 loc) · 690 Bytes
/
dburl.go
File metadata and controls
42 lines (34 loc) · 690 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package fixture
import (
"github.com/xo/dburl"
)
type DatabaseURL struct {
url *dburl.URL
}
func Parse(rawurl string) (*DatabaseURL, error) {
u, err := dburl.Parse(rawurl)
if err != nil {
return nil, err
}
// only support mysql currently
if u.Driver != "mysql" {
return nil, ErrDriverNotSupported
}
dbURL := &DatabaseURL{u}
return dbURL, nil
}
func (dbURL *DatabaseURL) DBName() string {
if dbURL.url.Path != "" {
return dbURL.url.Path[1:]
}
return ""
}
func (dbURL *DatabaseURL) Driver() string {
return dbURL.url.Driver
}
func (dbURL *DatabaseURL) DSN() string {
return dbURL.url.DSN
}
func (dbURL *DatabaseURL) String() string {
return dbURL.url.String()
}