lib/sitehub/core.rb in sitehub-0.5.0.alpha5 vs lib/sitehub/core.rb in sitehub-0.5.0.alpha6

- old
+ new

@@ -1,36 +1,26 @@ -require 'sitehub/route_builder' +require 'sitehub/collection_methods' +require 'sitehub/candidate_routes' require 'forwardable' class SiteHub class InvalidProxyDefinitionException < Exception end class ConfigError < Exception end - module CollectionMethods - def collection(hash, item) - hash[item] || [] - end - - def collection!(hash, item) - return hash[item] if hash[item] - raise ConfigError, "missing: #{item}" - end - end - class Core class << self # TODO: default action for missing key, throw exception? def from_hash(config) new do extend CollectionMethods sitehub_cookie_name config[:sitehub_cookie_name] if config[:sitehub_cookie_name] collection!(config, :proxies).each do |proxy| - routes.add_route route_builder: RouteBuilder.from_hash(proxy, sitehub_cookie_name) + mappings.add_route route_builder: CandidateRoutes.from_hash(proxy, sitehub_cookie_name) end collection(config, :reverse_proxies).each do |proxy| reverse_proxy proxy[:downstream_url] => proxy[:path] end @@ -39,28 +29,28 @@ end include Equality extend Forwardable - attr_reader :routes, :reverse_proxies - def_delegator :routes, :sitehub_cookie_name + attr_reader :mappings, :reverse_proxies + def_delegator :mappings, :sitehub_cookie_name def initialize(&block) @reverse_proxies = {} - @routes = Middleware::Routes.new + @mappings = Middleware::CandidateRouteMappings.new instance_eval(&block) if block end def build - Middleware::ReverseProxy.new(routes.init, reverse_proxies) + Middleware::ReverseProxy.new(mappings.init, reverse_proxies) end def proxy(opts = {}, &block) mapped_path, url = *(opts.respond_to?(:to_a) ? opts.to_a : [opts]).flatten - routes.add_route(url: url, - mapped_path: mapped_path, - &block) + mappings.add_route(url: url, + mapped_path: mapped_path, + &block) end def reverse_proxy(hash) reverse_proxies.merge!(hash) end