deebee 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/deebee.rb +31 -18
- data/lib/deebee/version.rb +1 -1
- metadata +1 -1
data/lib/deebee.rb
CHANGED
@@ -7,32 +7,45 @@ require 'cgi'
|
|
7
7
|
|
8
8
|
module Deebee
|
9
9
|
class Error < StandardError; end
|
10
|
-
|
11
10
|
class ConnectionError < Error
|
12
|
-
def
|
13
|
-
@url = url
|
14
|
-
end
|
15
|
-
|
16
|
-
def message
|
17
|
-
"Invalid DATABASE_URL value: #{ENV['DATABASE_URL'].inspect}"
|
18
|
-
end
|
11
|
+
def message; 'Invalid DATABASE_URL or database.yml'; end
|
19
12
|
end
|
20
13
|
|
21
14
|
class App < Sinatra::Base
|
22
15
|
set :root, File.expand_path('../deebee', __FILE__)
|
23
16
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
17
|
+
before do
|
18
|
+
@@db ||= nil
|
19
|
+
|
20
|
+
unless @@db
|
21
|
+
begin
|
22
|
+
if ENV['DATABASE_URL']
|
23
|
+
@@db = Sequel.connect(ENV['DATABASE_URL'])
|
24
|
+
else
|
25
|
+
config = Rails.configuration.database_configuration[Rails.env]
|
26
|
+
|
27
|
+
# TODO Test other adapters
|
28
|
+
config['adapter'] = 'postgres' if config['adapter'] =~ /postgres/
|
29
|
+
|
30
|
+
@@db = Sequel.connect(
|
31
|
+
adapter: config['adapter'],
|
32
|
+
encoding: config['encoding'],
|
33
|
+
database: config['database'],
|
34
|
+
host: config['host'],
|
35
|
+
port: config['port'],
|
36
|
+
password: config['password'],
|
37
|
+
user: config['username'],
|
38
|
+
max_connections: config['pool'],
|
39
|
+
)
|
40
|
+
end
|
41
|
+
@@tables = @@db.tables.sort
|
42
|
+
rescue Sequel::Error, NameError
|
43
|
+
raise ConnectionError
|
44
|
+
end
|
30
45
|
end
|
31
|
-
end
|
32
46
|
|
33
|
-
|
34
|
-
@
|
35
|
-
@tables = settings.tables
|
47
|
+
@db = @@db
|
48
|
+
@tables = @@tables
|
36
49
|
redirect request.path_info.sub(/\/$/, '') if request.path_info =~ /.+\/$/
|
37
50
|
end
|
38
51
|
|
data/lib/deebee/version.rb
CHANGED