class FakeServer::Server

Attributes

logger[R]
remote_api[R]

Public Class Methods

new(host, log_file=nil) click to toggle source
# File lib/fake_server/server.rb, line 7
def initialize(host, log_file=nil)
  @remote_api = RemoteAPI.new(host)
  @logger = Logger.new(log_file || STDOUT)
end

Public Instance Methods

call(env) click to toggle source
# File lib/fake_server/server.rb, line 14
def call(env)
  url = env["REQUEST_URI"]
  method = env["REQUEST_METHOD"]

  logger.info("#{method} #{url}")
  if method == "GET"
    name = cassette_name(url)
    logger.info("using cassette #{name}")
    VCR.use_cassette(name) { remote_api.request(method, url) }
  else
    remote_api.request(method, url)
  end

end

Private Instance Methods

cassette_name(url) click to toggle source
# File lib/fake_server/server.rb, line 31
def cassette_name(url)
  name = url.sub(/\/\z/, '')
  name.empty? ? "_root" : name
end