class Rack::PageCaching::Environment

Public Class Methods

new(options = {}) click to toggle source
# File lib/rack/page_caching/environment.rb, line 4
def initialize(options = {})
  @options = options
  set_defaults
end

Public Instance Methods

enabled?() click to toggle source
# File lib/rack/page_caching/environment.rb, line 21
def enabled?
  @options[:enable]
end
include_hostname?() click to toggle source
# File lib/rack/page_caching/environment.rb, line 17
def include_hostname?
  @options[:include_hostname]
end
instrument(name, path) { || ... } click to toggle source
# File lib/rack/page_caching/environment.rb, line 25
def instrument(name, path)
  if defined? ActiveSupport::Notifications
    ActiveSupport::Notifications.instrument("#{name}.action_controller", path: path) do
      yield
    end
  else
    yield
  end
end
page_cache_compression() click to toggle source
# File lib/rack/page_caching/environment.rb, line 9
def page_cache_compression
  @options[:page_cache_compression]
end
page_cache_directory() click to toggle source
# File lib/rack/page_caching/environment.rb, line 13
def page_cache_directory
  @options[:page_cache_directory]
end

Private Instance Methods

normalize_values() click to toggle source
# File lib/rack/page_caching/environment.rb, line 43
def normalize_values
  @options.merge!(
    page_cache_compression: Rack::PageCaching::Utils.gzip_level(
      @options[:page_cache_compression]),
    page_cache_directory: @options[:page_cache_directory].to_s,
  )
end
set_defaults() click to toggle source
# File lib/rack/page_caching/environment.rb, line 37
def set_defaults
  set_rails_defaults if defined? ::Rails
  normalize_values
  toggle_caching
end
set_rails_defaults() click to toggle source
# File lib/rack/page_caching/environment.rb, line 56
def set_rails_defaults
  @options = {
    page_cache_directory: ::Rails.root.join('public'),
    enable: ::Rails.application.config.action_controller.perform_caching
  }.merge(@options)
end
toggle_caching() click to toggle source
# File lib/rack/page_caching/environment.rb, line 51
def toggle_caching
  @options[:enable] = false if @options[:page_cache_directory].strip == ''
  @options[:enable] = true unless @options.has_key?(:enable)
end