lib/frenetic/connection.rb in frenetic-1.0.0.alpha.1 vs lib/frenetic/connection.rb in frenetic-1.0.0

- old
+ new

@@ -27,19 +27,12 @@ @errors.empty? end def process_config(raw_cfg) @config = {}.merge(raw_cfg.to_hash) - @config[:url] = Addressable::URI.parse(raw_cfg[:url]) - cfgs = @config.inject({builder:{}, conn:{}}) do |conf, (k,v)| - if ConnectionConfigKeys.include?(k) - conf[:conn][k] = v - else - conf[:builder][k] = v - end - conf - end + @config[:url] = process_url_config(raw_cfg) + cfgs = process_config_options(@config) [ @builder_config = cfgs[:builder], @connection_config = cfgs[:conn] ] end @@ -64,12 +57,29 @@ builder.adapter(builder_config[:adapter]) end private + def process_url_config(raw_cfg) + url = Addressable::URI.parse(raw_cfg[:url]) + return if !url + url.port = url.inferred_port if url.port.nil? + url + end + + def process_config_options(options) + options.each_with_object(builder:{}, conn:{}) do |(k, v), conf| + if ConnectionConfigKeys.include?(k) + conf[:conn][k] = v + else + conf[:builder][k] = v + end + end + end + def validate_configuration! - raise ConfigError.new(self) if !valid? + fail ConfigError.new(self) if !valid? end def use_basic_auth(builder) builder.request :basic_auth, builder_config[:username], builder_config[:password] end @@ -81,15 +91,13 @@ def use_rack_cache(builder) require_lib('rack-cache', 'Frenetic Rack::Cache caching strategy') builder.use( FaradayMiddleware::RackCompatible, Rack::Cache::Context, - { - metastore: "file:tmp/rack/meta/#{cache_key}", - entitystore: "file:tmp/rack/body/#{cache_key}", - ignore_headers: %w{Authorization Set-Cookie X-Content-Digest} - } + metastore: "file:tmp/rack/meta/#{cache_key}", + entitystore: "file:tmp/rack/body/#{cache_key}", + ignore_headers: %w(Authorization Set-Cookie X-Content-Digest) ) end def use_rails_cache(builder) require_lib 'faraday-http-cache', 'Frenetic Rails caching strategy' @@ -102,9 +110,9 @@ def require_lib(lib = nil, context = nil) lib ? require(lib) : yield rescue NameError, LoadError => err context ||= self - raise ConfigError, "Could not load required `#{lib}` dependency for #{context}: #{err.message}" + raise MissingDependency.new(lib, context, err) end end -end \ No newline at end of file +end