class Ettu

Constants

VERSION

Attributes

options[R]

Public Class Methods

configure() { |config| ... } click to toggle source
# File lib/ettu.rb, line 18
def configure
  yield @@config
end
new(record_or_options = nil, additional_options = {}, controller = nil) click to toggle source
# File lib/ettu.rb, line 23
def initialize(record_or_options = nil, additional_options = {}, controller = nil)
  @controller, @asset_etags = controller, {}
  if record_or_options.is_a? Hash
    @record, @options = nil, record_or_options
  else
    @record, @options = record_or_options, additional_options
  end
end

Public Instance Methods

asset_etags() click to toggle source
# File lib/ettu.rb, line 53
def asset_etags
  assets = @options.fetch(:assets, @@config.assets)
  [*assets].map { |asset| asset_etag(asset) }
end
etags() click to toggle source
# File lib/ettu.rb, line 32
def etags
  etags = [*response_etag]
  etags << view_etag
  etags.concat asset_etags
  etags.compact
end
last_modified() click to toggle source
# File lib/ettu.rb, line 39
def last_modified
  @options.fetch(:last_modified, @record.try(:updated_at))
end
response_etag() click to toggle source
# File lib/ettu.rb, line 43
def response_etag
  @options.fetch(:etag, @record)
end
view_etag() click to toggle source
# File lib/ettu.rb, line 47
def view_etag
  default_view = @@config.fetch(:view, "#{@controller.controller_name}/#{@controller.action_name}")
  view = @options.fetch(:view, default_view)
  @view_etag ||= view_digest(view)
end

Private Instance Methods

asset_digest(asset) click to toggle source

Jeremy Kemper gist.github.com/jeremy/4211803

# File lib/ettu.rb, line 74
def asset_digest(asset)
  return nil unless asset.present?
  # Check already computed assets (production)
  if digest = ActionView::Base.assets_manifest.assets[asset]
    digest
  else
    # Compute it
    Rails.application.assets[asset].digest
  end
end
asset_etag(asset) click to toggle source
# File lib/ettu.rb, line 60
def asset_etag(asset)
  @asset_etags[asset] ||= asset_digest(asset)
end
view_digest(view) click to toggle source

Jeremy Kemper gist.github.com/jeremy/4211803

# File lib/ettu.rb, line 66
def view_digest(view)
  return nil unless view.present?

  @@config.template_digestor.digest(name: view, finder: @controller.lookup_context)
end