Sha256: 01d466c67f7f245d53413ac89a8c67a6b6b08bc8d4974c8fd33fef0c3eda86d3

Contents?: true

Size: 689 Bytes

Versions: 12

Compression:

Stored size: 689 Bytes

Contents

$:.push(File.dirname(__FILE__) + "/../lib")

# Just run `ruby examples/middleware.rb` and then use something like
# `curl http://localhost:2345/api/v1/`.

require "rack/api"
require "json"

class ResponseTime
  def initialize(app)
    @app = app
  end

  def call(env)
    start = Time.now
    status, headers, response = @app.call(env)
    elapsed = Time.now - start
    response = JSON.load(response.first).merge(:response_time => elapsed)
    [status, headers, [response.to_json]]
  end
end

Rack::API.app do
  prefix "api"
  use ResponseTime

  version :v1 do
    get "/" do
      {:message => "Hello, awesome API!"}
    end
  end
end

Rack::Handler::Thin.run Rack::API, :Port => 2345

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
rack-api-1.1.0 examples/middleware.rb
rack-api-1.0.2 examples/middleware.rb
rack-api-1.0.1 examples/middleware.rb
rack-api-1.0.0 examples/middleware.rb
rack-api-0.3.1 examples/middleware.rb
rack-api-0.3.0 examples/middleware.rb
rack-api-0.2.2 examples/middleware.rb
rack-api-0.2.1 examples/middleware.rb
rack-api-0.2.0 examples/middleware.rb
rack-api-0.1.2 examples/middleware.rb
rack-api-0.1.1 examples/middleware.rb
rack-api-0.1.0 examples/middleware.rb