Class: Corn::Rack::RequestEnv

Inherits:
Object
  • Object
show all
Defined in:
lib/corn/rack/request_env.rb

Constant Summary collapse

KEYS =
[:request_method, :path_info, :http_host, :query_string]

Instance Method Summary collapse

Constructor Details

#initialize(env, start_time = Time.now) ⇒ RequestEnv

Returns a new instance of RequestEnv.



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/corn/rack/request_env.rb', line 5

def initialize(env, start_time=Time.now)
  @env = KEYS.inject({}) do |memo, k|
    v = env[k.to_s.upcase]
    if v.nil? || v.empty?
      memo
    else
      memo.merge(k => v)
    end
  end
  @env.merge!(:start_time => start_time)
end

Instance Method Details

#end_atObject



21
22
23
# File 'lib/corn/rack/request_env.rb', line 21

def end_at
  Time.now
end

#timeObject



17
18
19
# File 'lib/corn/rack/request_env.rb', line 17

def time
  end_at - @env[:start_time]
end

#to_reportObject



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/corn/rack/request_env.rb', line 25

def to_report
  name = File.join(@env[:http_host].to_s, @env[:path_info].to_s)
  if @env[:request_method]
    name = "#{@env[:request_method]} #{name}"
  end
  if @env[:query_string]
    name = "#{name}?#{@env[:query_string]}"
  end
  {
    'report[name]' => name,
    'report[start_at]' => @env[:start_time].iso8601,
    'report[end_at]' => end_at.iso8601
  }
end