class ConnectionUrlResolver::URIDecorator
Attributes
uri[R]
Public Class Methods
new(url)
click to toggle source
# File lib/connection_url_resolver/uri_decorator.rb, line 7 def initialize(url) @uri = parser.parse(url) end
Public Instance Methods
to_hash()
click to toggle source
# File lib/connection_url_resolver/uri_decorator.rb, line 11 def to_hash connection_hash end
Private Instance Methods
adapter()
click to toggle source
# File lib/connection_url_resolver/uri_decorator.rb, line 46 def adapter @_adapter ||= begin adapter = uri.scheme && uri.scheme.tr("-", "_") if adapter == "postgres" "postgresql" else adapter end end end
connection_hash()
click to toggle source
# File lib/connection_url_resolver/uri_decorator.rb, line 23 def connection_hash unescape_values(connection_hash_with_values) end
connection_hash_with_values()
click to toggle source
# File lib/connection_url_resolver/uri_decorator.rb, line 27 def connection_hash_with_values query_hash.merge( "adapter" => adapter, "username" => user, "password" => password, "port" => port, "database" => database, "host" => host ).reject { |_key, value| value.nil? || value.empty? } end
database()
click to toggle source
# File lib/connection_url_resolver/uri_decorator.rb, line 70 def database if adapter == "sqlite3" uri.path else uri.path.sub %r(^/), "" end end
host()
click to toggle source
# File lib/connection_url_resolver/uri_decorator.rb, line 78 def host uri.hostname end
parser()
click to toggle source
# File lib/connection_url_resolver/uri_decorator.rb, line 19 def parser @_parser ||= URI::Parser.new end
password()
click to toggle source
# File lib/connection_url_resolver/uri_decorator.rb, line 62 def password uri.password end
port()
click to toggle source
# File lib/connection_url_resolver/uri_decorator.rb, line 66 def port uri.port.to_s end
query()
click to toggle source
# File lib/connection_url_resolver/uri_decorator.rb, line 42 def query uri.query || "" end
query_hash()
click to toggle source
# File lib/connection_url_resolver/uri_decorator.rb, line 38 def query_hash query.split("&").map { |pair| pair.split("=") }.to_h end
unescape(value)
click to toggle source
# File lib/connection_url_resolver/uri_decorator.rb, line 86 def unescape(value) if value.is_a?(String) parser.unescape(value) end end
unescape_values(hash)
click to toggle source
# File lib/connection_url_resolver/uri_decorator.rb, line 82 def unescape_values(hash) hash.transform_values { |value| unescape(value) } end
user()
click to toggle source
# File lib/connection_url_resolver/uri_decorator.rb, line 58 def user uri.user end