Module: DbUrlHelper::Helper

Included in:
DbUrlHelper
Defined in:
lib/db_url_helper/helper.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.adaptersObject



11
12
13
# File 'lib/db_url_helper/helper.rb', line 11

def adapters
  @@adapters ||= DbUrlHelper::Adapter::Set.new 
end

.format(o) {|sub| ... } ⇒ Object

Yields:



20
21
22
23
24
25
26
# File 'lib/db_url_helper/helper.rb', line 20

def format o
  sub = -> (p,e) do
    o = DbUrlHelper::Helper.sub(o,p,e)
  end
  yield sub
  o
end

.initObject



4
5
6
7
8
9
10
# File 'lib/db_url_helper/helper.rb', line 4

def init
  DbUrlHelper::Lookup.all do |lookup|
    lookup.working_adapters.each do |adapter|
      adapters << adapter.via(lookup)
    end
  end
end

.sub(o, p, e) ⇒ Object



14
15
16
17
18
19
# File 'lib/db_url_helper/helper.rb', line 14

def sub o,p,e
  if v = adapters.best.get(e)
    o = o.gsub p, "#{v}"
  end
  o
end

Instance Method Details

#default_stringsObject



28
29
30
31
32
33
34
35
# File 'lib/db_url_helper/helper.rb', line 28

def default_strings
  {
    "production"  => "%s://%U:%P@%h:%p/%d",
    "staging"     => "%s://%U:%P@%h:%p/%d",
    "development" => "%s://%h:%p/%d",
    "test"        => "%s://%h:%p/%d",
  }
end

#url(s = "production") ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/db_url_helper/helper.rb', line 36

def url s="production"
  s=s.to_s
  s = default_strings[s] if default_strings[s]
  h = DbUrlHelper::Helper
  h.init
  h.format(s) do |sub|
    sub.call(/%s/, :scheme)
    sub.call(/%U/, :user)
    sub.call(/%P/, :password)
    sub.call(/%h/, :host)
    sub.call(/%p/, :port)
    sub.call(/%d/, :database)
  end
end