class Allinone::SiteSelector
Public Class Methods
new(request_host)
click to toggle source
# File lib/allinone/site_selector.rb, line 4 def initialize(request_host) @request_host = request_host.downcase @@domains_map_last_build_at ||= Time.at(0).to_datetime.utc setup_domains_map end
Public Instance Methods
fetch()
click to toggle source
# File lib/allinone/site_selector.rb, line 10 def fetch site_id = @@domains_map[@request_host] Site.where(id: site_id).first end
Private Instance Methods
build_domains_map()
click to toggle source
# File lib/allinone/site_selector.rb, line 22 def build_domains_map @@domains_map = domains_map @@domains_map_last_build_at = 1.second.ago.to_datetime.utc end
domains_map()
click to toggle source
# File lib/allinone/site_selector.rb, line 27 def domains_map Hash[*Domain.select([:name,:site_id]).all.collect{|p| [p.name.downcase, p.site_id]}.flatten] end
domains_table_last_updated_at()
click to toggle source
# File lib/allinone/site_selector.rb, line 31 def domains_table_last_updated_at Domain.order('updated_at').last.updated_at end
setup_domains_map()
click to toggle source
# File lib/allinone/site_selector.rb, line 16 def setup_domains_map if domains_table_last_updated_at > @@domains_map_last_build_at build_domains_map end end