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