class RhetButler::Stasis::ResourceMapping

Attributes

default_uri[W]

Public Instance Methods

absolute_uri(uri) click to toggle source
# File lib/rhet-butler/stasis/resource-mapping.rb, line 15
def absolute_uri(uri)
  uri = default_uri.join(uri)
  if uri == default_uri
    uri = uri.join("index.html")
  end
  return uri
end
default_uri() click to toggle source
# File lib/rhet-butler/stasis/resource-mapping.rb, line 11
def default_uri
  Addressable::URI.parse(@default_uri)
end
initalize(queue) click to toggle source
# File lib/rhet-butler/stasis/resource-mapping.rb, line 5
def initalize(queue)
  @queue = queue
end
localized(uri) click to toggle source
# File lib/rhet-butler/stasis/resource-mapping.rb, line 27
def localized(uri)
  return "/index.html" if uri == "/"

  uri = relative_uri(uri)

  if uri.relative?
    return uri.to_s
  end

  query_values = uri.query_values(Array)
  [
    [uri.host, uri.port, uri.user, uri.scheme == 'http' ? nil : uri.scheme].compact.join("-"),
    uri.path,
    (query_values ? query_values.map{|pair| pair.join("=")}.join(",") : nil)
  ].compact.map do |part|
    part.sub(%r{\A/},'').sub(%r{/\Z},'')
  end.join("/")
end
relative_uri(uri) click to toggle source
# File lib/rhet-butler/stasis/resource-mapping.rb, line 23
def relative_uri(uri)
  default_uri.route_to(absolute_uri(uri))
end
storage_for(uri) click to toggle source
# File lib/rhet-butler/stasis/resource-mapping.rb, line 46
def storage_for(uri)
  localized(uri).sub(%r{^/},'')
end