module Flipper::Api

Constants

CONTENT_TYPE
Error

All flipper api errors inherit from this.

RequestMethodNotSupported

Raised when a request method (get, post, etc.) is called for an action that does not know how to handle it.

Public Class Methods

app(flipper = nil, options = {}) { |builder| ... } click to toggle source
# File lib/flipper/api.rb, line 10
def self.app(flipper = nil, options = {})
  env_key = options.fetch(:env_key, 'flipper')
  app = ->(_) { [404, { 'Content-Type'.freeze => CONTENT_TYPE }, ['{}'.freeze]] }
  builder = Rack::Builder.new
  yield builder if block_given?
  builder.use Flipper::Api::JsonParams
  builder.use Flipper::Middleware::SetupEnv, flipper, env_key: env_key
  builder.use Flipper::Api::Middleware, env_key: env_key
  builder.run app
  klass = self
  builder.define_singleton_method(:inspect) { klass.inspect } # pretty rake routes output
  builder
end