Sha256: faa92ee0491f025f9b167997b087aac34a0570179cb97c958eb33fdac5946c8a

Contents?: true

Size: 937 Bytes

Versions: 6

Compression:

Stored size: 937 Bytes

Contents

require 'rest-core/promise'
require 'rest-core/middleware'

class RestCore::Engine
  def self.members; [:config_engine]; end
  include RestCore::Middleware

  def call env, &k
    req     = env.merge(REQUEST_URI => request_uri(env))
    promise = Promise.new(req, k, req[ASYNC])
    promise.defer{ request(promise, req) }
    promise.future_response
  end

  private
  def payload_and_headers env
    if has_payload?(env)
      Payload.generate_with_headers(env[REQUEST_PAYLOAD],
                                    env[REQUEST_HEADERS])
    else
      [{}, env[REQUEST_HEADERS]]
    end
  end

  def normalize_headers headers
    headers.inject({}){ |r, (k, v)|
      r[k.to_s.upcase.tr('-', '_')] = if v.kind_of?(Array) && v.size == 1
                                        v.first
                                      else
                                        v
                                      end
      r
    }
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rest-core-3.6.0 lib/rest-core/engine.rb
rest-core-3.5.92 lib/rest-core/engine.rb
rest-core-3.5.91 lib/rest-core/engine.rb
rest-core-3.5.9 lib/rest-core/engine.rb
rest-core-3.5.8 lib/rest-core/engine.rb
rest-core-3.5.7 lib/rest-core/engine.rb