Sha256: 38f3409acca5c10e8f3b4f4bad953347b6b68975dc225c4c97b9a4dc6622ba86

Contents?: true

Size: 735 Bytes

Versions: 9

Compression:

Stored size: 735 Bytes

Contents

require 'deas/exceptions'

module Deas

  class Route

    attr_reader :method, :path, :handler_proxies

    def initialize(method, path, handler_proxies)
      @method, @path, @handler_proxies = method, path, handler_proxies
    end

    def validate!
      @handler_proxies.each do |request_type_name, proxy|
        proxy.validate!
      end
    end

    def run(server_data, sinatra_call)
      type = server_data.router.request_type_name(sinatra_call.request)
      proxy = begin
        @handler_proxies[type]
      rescue HandlerProxyNotFound
        sinatra_call.halt(404)
      end
      # TODO: eventually stop sending sinatra call (part of phasing out Sinatra)
      proxy.run(server_data, sinatra_call)
    end

  end

end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
deas-0.42.0 lib/deas/route.rb
deas-0.41.0 lib/deas/route.rb
deas-0.40.0 lib/deas/route.rb
deas-0.39.2 lib/deas/route.rb
deas-0.39.1 lib/deas/route.rb
deas-0.39.0 lib/deas/route.rb
deas-0.38.0 lib/deas/route.rb
deas-0.37.1 lib/deas/route.rb
deas-0.37.0 lib/deas/route.rb