Parent

Merb::Cache::PageStore

Store well suited for page caching.

Public Instance Methods

delete(dispatch, parameters = {}) click to toggle source
# File lib/merb-cache/stores/strategy/page_store.rb, line 43
def delete(dispatch, parameters = {})
  if writable?(dispatch, parameters)
    @stores.map {|s| s.delete(normalize(dispatch), {})}.any?
  end
end
delete_all!() click to toggle source
# File lib/merb-cache/stores/strategy/page_store.rb, line 49
def delete_all!
  @stores.map {|s| s.delete_all!}.all?
end
exists?(dispatch, parameters = {}) click to toggle source
# File lib/merb-cache/stores/strategy/page_store.rb, line 37
def exists?(dispatch, parameters = {})
  if writable?(dispatch, parameters)
    @stores.capture_first {|s| s.exists?(normalize(dispatch), {})}
  end
end
fetch(dispatch, parameters = {}, conditions = {}, &blk) click to toggle source
# File lib/merb-cache/stores/strategy/page_store.rb, line 31
def fetch(dispatch, parameters = {}, conditions = {}, &blk)
  if writable?(dispatch, parameters, conditions)
    read(dispatch, parameters) || @stores.capture_first {|s| s.fetch(normalize(dispatch), data || dispatch.body, {}, conditions, &blk)}
  end
end
normalize(dispatch) click to toggle source
# File lib/merb-cache/stores/strategy/page_store.rb, line 53
def normalize(dispatch)
  key = dispatch.request.uri.split('?').first
  key << "index" if key =~ /\/$/
  key << ".#{dispatch.content_type}" unless key =~ /\.\w{2,6}/
  key
end
query_string_present?(dispatch) click to toggle source
# File lib/merb-cache/stores/strategy/page_store.rb, line 60
def query_string_present?(dispatch)
  dispatch.request.env["REQUEST_URI"] == dispatch.request.uri
end
read(dispatch, parameters = {}) click to toggle source
# File lib/merb-cache/stores/strategy/page_store.rb, line 15
def read(dispatch, parameters = {})
  nil
end
writable?(dispatch, parameters = {}, conditions = {}) click to toggle source
# File lib/merb-cache/stores/strategy/page_store.rb, line 4
def writable?(dispatch, parameters = {}, conditions = {})
  if Merb::Controller === dispatch && dispatch.request.method == :get &&
      !dispatch.request.uri.nil? && !dispatch.request.uri.empty? &&
      !conditions.has_key?(:if) && !conditions.has_key?(:unless) &&
      query_string_present?(dispatch)
    @stores.any? {|s| s.writable?(normalize(dispatch), parameters, conditions)}
  else
    false
  end
end
write(dispatch, data = nil, parameters = {}, conditions = {}) click to toggle source
# File lib/merb-cache/stores/strategy/page_store.rb, line 19
def write(dispatch, data = nil, parameters = {}, conditions = {})
  if writable?(dispatch, parameters, conditions)
    @stores.capture_first {|s| s.write(normalize(dispatch), data || dispatch.body, {}, conditions)}
  end
end
write_all(dispatch, data = nil, parameters = {}, conditions = {}) click to toggle source
# File lib/merb-cache/stores/strategy/page_store.rb, line 25
def write_all(dispatch, data = nil, parameters = {}, conditions = {})
  if writable?(dispatch, parameters, conditions)
    @stores.map {|s| s.write_all(normalize(dispatch), data || dispatch.body, {}, conditions)}.all?
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.