module RuboCop::Cop::DatabaseTypeResolvable
def database
def database cop_config['Database'] || database_from_yaml || database_from_env end
def database_adapter
def database_adapter database_yaml['adapter'] || database_yaml.first.last['adapter'] end
def database_from_env
def database_from_env url = ENV.fetch('DATABASE_URL', '') return if url.blank? case url when %r{\A(mysql2|trilogy)://} MYSQL when %r{\Apostgres(ql)?://} POSTGRESQL end end
def database_from_yaml
def database_from_yaml return unless database_yaml case database_adapter when 'mysql2', 'trilogy' MYSQL when 'postgresql', 'postgis' POSTGRESQL end end
def database_yaml
def database_yaml return unless File.exist?('config/database.yml') yaml = if YAML.respond_to?(:unsafe_load_file) YAML.unsafe_load_file('config/database.yml') else YAML.load_file('config/database.yml') end return unless yaml.is_a? Hash config = yaml['development'] return unless config.is_a?(Hash) config rescue Psych::SyntaxError # noop end