Sha256: 3f0ddabb599a74a286bea07b0a1fabf81aac78c791a218c11e3a49b25be95533
Contents?: true
Size: 1.75 KB
Versions: 1
Compression:
Stored size: 1.75 KB
Contents
class SiteFramework::Routing::SiteConstraint attr_reader :logger def initialize(mapper) @logger = Rails.logger @mapper = mapper end def domain(name) return @domain if @domain_name == name if defined? ActiveRecord @domain = SiteFramework::Domain.find_by(name: name) elsif defined? Mongoid @domain = SiteFramework::Site.where('domains.name' => name).domains.first else nil end end def matches?(request) return true if @domain_obj return false if @domain_obj == false if @domain_obj = domain(request.host) @domain_name = request.host logger.debug("'#{@domain_name}' matched.") setup(@domain_obj, request) initialize_site_default_state true else logger.info("Domain name '#{request.host}' does not match with any exist domains") set_request_data_to_nil(request) @domain_name = request.host false end end private def setup(domain_, request) SiteFramework::CurrentState.instance.domain_name = domain_.name SiteFramework::CurrentState.instance.domain = domain_ SiteFramework::CurrentState.instance.site = domain_.site @site = domain_.site request.instance_eval do def site SiteFramework::CurrentState.instance.site end def domain SiteFramework::CurrentState.instance.domain end def domain_name SiteFramework::CurrentState.instance.domain_name end end end def set_request_data_to_nil(request) request.instance_eval do def site end def domain end def domain_name end end end def initialize_site_default_state @site.try(:before_dispatch, @mapper) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
site_framework-4.3.2 | lib/site_framework/routing/site_constraint.rb |