Module: CriticalPathCss

Defined in:
lib/critical-path-css-rails.rb,
lib/critical_path_css/css_fetcher.rb,
lib/critical_path_css/rails/engine.rb,
lib/critical_path_css/configuration.rb,
lib/critical_path_css/rails/config_loader.rb,
lib/generators/critical_path_css/install_generator.rb

Defined Under Namespace

Modules: Rails Classes: Configuration, CssFetcher, InstallGenerator

Constant Summary collapse

CACHE_NAMESPACE =
'critical-path-css'.freeze

Class Method Summary collapse

Class Method Details

.clear(route) ⇒ Object



18
19
20
# File 'lib/critical-path-css-rails.rb', line 18

def self.clear(route)
  ::Rails.cache.delete(route, namespace: CACHE_NAMESPACE)
end

.clear_matched(routes) ⇒ Object



22
23
24
# File 'lib/critical-path-css-rails.rb', line 22

def self.clear_matched(routes)
  ::Rails.cache.delete_matched(routes, namespace: CACHE_NAMESPACE)
end

.config_loaderObject



34
35
36
# File 'lib/critical-path-css-rails.rb', line 34

def self.config_loader
  @config_loader ||= CriticalPathCss::Rails::ConfigLoader.new
end

.fetch(route) ⇒ Object



26
27
28
# File 'lib/critical-path-css-rails.rb', line 26

def self.fetch(route)
  ::Rails.cache.read(route, namespace: CACHE_NAMESPACE) || ''
end

.fetcherObject



30
31
32
# File 'lib/critical-path-css-rails.rb', line 30

def self.fetcher
  @fetcher ||= CssFetcher.new(Configuration.new(config_loader.config))
end

.generate(route) ⇒ Object



8
9
10
# File 'lib/critical-path-css-rails.rb', line 8

def self.generate(route)
  ::Rails.cache.write(route, fetcher.fetch_route(route), namespace: CACHE_NAMESPACE, expires_in: nil)
end

.generate_allObject



12
13
14
15
16
# File 'lib/critical-path-css-rails.rb', line 12

def self.generate_all
  fetcher.fetch.each do |route, css|
    ::Rails.cache.write(route, css, namespace: CACHE_NAMESPACE, expires_in: nil)
  end
end