diaspora/config/bundler_helper.rb
Benjamin Neff 63fcc9c1bc
Fix compatibility with Bundler 1.6
Stop using `Bundler.settings.with`, because it will be removed from
Bundler 1.6.

Also, as described in #7653, we could use `Bundler.settings[:with]`, but
that would be internal API again, so it probably breaks again in the
future. That's why I added a `BundlerHelper` module to parse the
required optional group from our config files, without the use of any
internal Bundler API.

Fixes #7653
2017-11-01 00:45:18 +01:00

26 lines
828 B
Ruby

# frozen_string_literal: true
require "yaml"
module BundlerHelper
def self.rails_env
@rails_env ||= ENV["RAILS_ENV"] ||
parse_value_from_file("diaspora.yml", "configuration", "server", "rails_environment") ||
parse_value_from_file("defaults.yml", "defaults", "server", "rails_environment")
end
def self.database
@adapter ||= parse_value_from_file("database.yml", rails_env, "adapter")
raise "No database adapter found, please fix your config/database.yml!" unless @adapter
@adapter.sub("mysql2", "mysql")
end
private_class_method def self.parse_value_from_file(file, *keys)
path = File.join(__dir__, file)
return YAML.load_file(path).dig(*keys) if File.file?(path)
puts "Configuration file #{path} not found, ensure it's present" # rubocop:disable Rails/Output
end
end