class ROM::Rails::ActiveRecord::UriBuilder
Public Instance Methods
build(adapter, uri_options)
click to toggle source
# File lib/rom/rails/active_record/uri_builder.rb, line 7 def build(adapter, uri_options) builder_method = :"#{adapter}_uri" uri = if respond_to?(builder_method) send(builder_method, uri_options) else generic_uri(uri_options) end # JRuby connection strings require special care. if RUBY_ENGINE == 'jruby' && adapter != 'postgresql' uri = "jdbc:#{uri}" end uri end
build_uri(attrs)
click to toggle source
# File lib/rom/rails/active_record/uri_builder.rb, line 60 def build_uri(attrs) Addressable::URI.new(attrs).to_s end
escape_option(option)
click to toggle source
# File lib/rom/rails/active_record/uri_builder.rb, line 64 def escape_option(option) option.nil? ? option : CGI.escape(option) end
generic_uri(config)
click to toggle source
# File lib/rom/rails/active_record/uri_builder.rb, line 49 def generic_uri(config) build_uri( scheme: config.fetch(:scheme), user: escape_option(config[:username]), password: escape_option(config[:password]), host: config[:host], port: config[:port], path: config[:database] ) end
mysql_uri(config)
click to toggle source
# File lib/rom/rails/active_record/uri_builder.rb, line 41 def mysql_uri(config) if config.key?(:username) && !config.key?(:password) config.update(password: '') end generic_uri(config) end
postgresql_uri(config)
click to toggle source
# File lib/rom/rails/active_record/uri_builder.rb, line 34 def postgresql_uri(config) generic_uri(config.merge( host: config.fetch(:host) { '' }, scheme: 'postgres' )) end
sqlite3_uri(config)
click to toggle source
# File lib/rom/rails/active_record/uri_builder.rb, line 24 def sqlite3_uri(config) path = Pathname.new(config.fetch(:root)).join(config.fetch(:database)) build_uri( scheme: 'sqlite', host: '', path: path.to_s ) end