lib/browse_everything.rb in browse-everything-1.0.0.rc1 vs lib/browse_everything.rb in browse-everything-1.0.0.rc2

- old
+ new

@@ -38,10 +38,11 @@ autoload :RequestParameters, 'browse_everything/auth/google/request_parameters' end end class InitializationError < RuntimeError; end + class ConfigurationError < StandardError; end class NotImplementedError < StandardError; end class NotAuthorizedError < StandardError; end class << self attr_writer :config @@ -49,14 +50,18 @@ def configure(value) return if value.nil? if value.is_a?(Hash) @config = ActiveSupport::HashWithIndifferentAccess.new value elsif value.is_a?(String) - config_file_content = File.read(value) - config_file_template = ERB.new(config_file_content) - config_values = YAML.safe_load(config_file_template.result, [Symbol]) - @config = ActiveSupport::HashWithIndifferentAccess.new config_values - @config.deep_symbolize_keys + begin + config_file_content = File.read(value) + config_file_template = ERB.new(config_file_content) + config_values = YAML.safe_load(config_file_template.result, [Symbol]) + @config = ActiveSupport::HashWithIndifferentAccess.new config_values + @config.deep_symbolize_keys + rescue Errno::ENOENT + raise ConfigurationError, 'Missing browse_everything_providers.yml configuration file' + end else raise InitializationError, "Unrecognized configuration: #{value.inspect}" end if @config.include? 'drop_box' # rubocop:disable Style/GuardClause