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