class WebConsole::Testing::FakeMiddleware

Constants

DEFAULT_HEADERS

Public Class Methods

new(opts) click to toggle source
# File lib/web_console/testing/fake_middleware.rb, line 15
def initialize(opts)
  @headers        = opts.fetch(:headers, DEFAULT_HEADERS)
  @req_path_regex = opts[:req_path_regex]
  @view_path      = opts[:view_path]
end

Public Instance Methods

call(env) click to toggle source
# File lib/web_console/testing/fake_middleware.rb, line 21
def call(env)
  body = render(req_path(env))
  @headers[Rack::CONTENT_LENGTH] = body.bytesize.to_s

  [ 200, @headers, [ body ] ]
end
view() click to toggle source
# File lib/web_console/testing/fake_middleware.rb, line 28
def view
  @view = View.with_empty_template_cache.with_view_paths(@view_path)
end

Private Instance Methods

render(template) click to toggle source
# File lib/web_console/testing/fake_middleware.rb, line 39
def render(template)
  view.render(template: template, layout: nil)
end
req_path(env) click to toggle source

extract target path from REQUEST_PATH

# File lib/web_console/testing/fake_middleware.rb, line 35
def req_path(env)
  File.basename(env["REQUEST_PATH"].match(@req_path_regex)[1], ".*")
end