Module: ActionDispatch::Http::Cache::Response

Included in:
Response
Defined in:
actionpack/lib/action_dispatch/http/cache.rb

Constant Summary

Instance Attribute Summary (collapse)

Instance Method Summary (collapse)

Instance Attribute Details

- (Object) cache_control (readonly)

Returns the value of attribute cache_control



42
43
44
# File 'actionpack/lib/action_dispatch/http/cache.rb', line 42

def cache_control
  @cache_control
end

Instance Method Details

- (Object) etag



73
74
75
# File 'actionpack/lib/action_dispatch/http/cache.rb', line 73

def etag
  @etag
end

- (Object) etag=(etag)



81
82
83
84
# File 'actionpack/lib/action_dispatch/http/cache.rb', line 81

def etag=(etag)
  key = ActiveSupport::Cache.expand_cache_key(etag)
  @etag = self["ETag"] = %("#{Digest::MD5.hexdigest(key)}")
end

- (Boolean) etag?



77
78
79
# File 'actionpack/lib/action_dispatch/http/cache.rb', line 77

def etag?
  @etag
end

- (Object) initialize



44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'actionpack/lib/action_dispatch/http/cache.rb', line 44

def initialize(*)
  status, header, body = super

  @cache_control = {}
  @etag = self["ETag"]

  if cache_control = self["Cache-Control"]
    cache_control.split(/,\s*/).each do |segment|
      first, last = segment.split("=")
      last ||= true
      @cache_control[first.to_sym] = last
    end
  end
end

- (Object) last_modified



59
60
61
62
63
# File 'actionpack/lib/action_dispatch/http/cache.rb', line 59

def last_modified
  if last = headers['Last-Modified']
    Time.httpdate(last)
  end
end

- (Object) last_modified=(utc_time)



69
70
71
# File 'actionpack/lib/action_dispatch/http/cache.rb', line 69

def last_modified=(utc_time)
  headers['Last-Modified'] = utc_time.httpdate
end

- (Boolean) last_modified?



65
66
67
# File 'actionpack/lib/action_dispatch/http/cache.rb', line 65

def last_modified?
  headers.include?('Last-Modified')
end