Sha256: b6fec8ebacb1a5c41ad5bb7f33e5d51ba05149ecbd2baec94b3e67944c1c9817
Contents?: true
Size: 1.04 KB
Versions: 3
Compression:
Stored size: 1.04 KB
Contents
module Locomotive module Middlewares class Fonts def initialize(app, opts = {}) @app = app @path_regexp = opts[:path] || %r{^/fonts/} @expires_in = opts[:expires_in] || 24.hour # varnish end def call(env) if env["PATH_INFO"] =~ @path_regexp if Locomotive.config.multi_sites? site = fetch_site(env['SERVER_NAME']) else site = Site.first end if site.nil? @app.call(env) else body = ThemeAssetUploader.build(site, env['PATH_INFO']).read.to_s [200, { 'Cache-Control' => "public; max-age=#{@expires_in}" }, [body]] end else @app.call(env) end end protected def fetch_site(domain_name) site_id = Rails.cache.fetch(domain_name, expires_in: @expires_in) do Site.match_domain(domain_name).only(:id).first._id.to_s rescue '' end site_id.blank? ? nil : Site.new(id: site_id) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
locomotive_cms-2.1.2 | lib/locomotive/middlewares/fonts.rb |
locomotive_cms-2.1.1 | lib/locomotive/middlewares/fonts.rb |
locomotive_cms-2.1.0 | lib/locomotive/middlewares/fonts.rb |