class StaticRails::MatchesRequestToStaticSite
Public Instance Methods
call(request)
click to toggle source
# File lib/static-rails/matches_request_to_static_site.rb, line 3 def call(request) StaticRails.config.sites.find { |site| subdomain_match?(site, request) && path_match?(site, request) && !skip_path?(site, request) } end
Private Instance Methods
path_match?(site, request)
click to toggle source
# File lib/static-rails/matches_request_to_static_site.rb, line 20 def path_match?(site, request) request.path_info.start_with?(site.url_root_path) end
skip_path?(site, request)
click to toggle source
# File lib/static-rails/matches_request_to_static_site.rb, line 24 def skip_path?(site, request) site.url_skip_paths_starting_with.any? { |path_start| request.path_info.start_with?(path_start) } end
subdomain_match?(site, request)
click to toggle source
# File lib/static-rails/matches_request_to_static_site.rb, line 11 def subdomain_match?(site, request) return true if site.url_subdomain.nil? expected = site.url_subdomain.split(".") actual = request.host.split(".") expected.enum_for.with_index.all? { |sub, i| actual[i] == sub } end