Class: Rack::Identicon::Response

Inherits:
Object
  • Object
show all
Defined in:
lib/rack/identicon/response.rb

Constant Summary collapse

DEFAULT_SIZE =
128
DEFAULT_BG =
"ffffff".freeze
ONE_YEAR =
31536000

Instance Method Summary collapse

Constructor Details

#initialize(env) ⇒ Response

Returns a new instance of Response.



11
12
13
14
15
# File 'lib/rack/identicon/response.rb', line 11

def initialize env
  @request = Rack::Request.new env
  @size = @request.params["s"] || DEFAULT_SIZE
  @bg = parse_color @request.params.fetch "b", DEFAULT_BG
end

Instance Method Details

#bodyObject



17
18
19
# File 'lib/rack/identicon/response.rb', line 17

def body
  cache { ::Identicon.blob_for hashed_payload, @size.to_i, @bg }
end

#headersObject



21
22
23
24
25
26
# File 'lib/rack/identicon/response.rb', line 21

def headers
  {
    "Content-Type" => valid_request? ? "image/png" : "text/plain",
    "Cache-Control" => "public, max-age=#{ONE_YEAR}"
  }
end

#tripletObject



28
29
30
31
32
33
34
# File 'lib/rack/identicon/response.rb', line 28

def triplet
  if valid_request?
    [ 200, headers, [ body ] ]
  else
    [ 404, headers, [ "Not Found" ] ]
  end
end