Module: Simple::SQL::Config
Overview
private
Instance Method Summary collapse
-
#determine_url ⇒ Object
determines the database_url from either the DATABASE_URL environment setting or a config/database.yml file.
-
#parse_url(url) ⇒ Object
parse a DATABASE_URL, return PG::Connection settings.
Instance Method Details
#determine_url ⇒ Object
determines the database_url from either the DATABASE_URL environment setting or a config/database.yml file.
33 34 35 |
# File 'lib/simple/sql/config.rb', line 33 def determine_url ENV["DATABASE_URL"] || database_url_from_database_yml end |
#parse_url(url) ⇒ Object
parse a DATABASE_URL, return PG::Connection settings.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/simple/sql/config.rb', line 11 def parse_url(url) require "uri" raise ArgumentError, "Invalid URL #{url.inspect}" unless url.is_a?(String) raise ArgumentError, "Invalid URL #{url.inspect}" unless url =~ /^postgres(ql)?s?:\/\// uri = URI.parse(url) raise ArgumentError, "Invalid URL #{url}" unless uri.hostname && uri.path config = { dbname: uri.path.sub(%r{^/}, ""), host: uri.hostname } config[:port] = uri.port if uri.port config[:user] = uri.user if uri.user config[:password] = uri.password if uri.password config[:sslmode] = uri.scheme == "postgress" || uri.scheme == "postgresqls" ? "require" : "prefer" config end |