module Rackrack::Stub

Public Class Methods

build(&block) click to toggle source
# File lib/rackrack/stub.rb, line 8
def build(&block)
  Class.new do
    class << self
      def stub(&block)
        if block_given?
          @stub = Class.new(Sinatra::Base) do
            instance_eval(&block)
          end
        else
          @stub ||= raise Rackrack::Stub::NoStubException
        end
      end

      def reset!
        @stub = nil
      end
    end

    def initialize(app)
      @app = app
    end

    def call(env)
      response = begin
        self.class.stub.new(@app).call(env)
      rescue Rackrack::Stub::NoStubException
        @app.call(env)
      end
    end
  end
end
call(env) click to toggle source
# File lib/rackrack/stub.rb, line 30
def call(env)
  response = begin
    self.class.stub.new(@app).call(env)
  rescue Rackrack::Stub::NoStubException
    @app.call(env)
  end
end
initialize(app) click to toggle source
# File lib/rackrack/stub.rb, line 26
def initialize(app)
  @app = app
end
reset!() click to toggle source
# File lib/rackrack/stub.rb, line 21
def reset!
  @stub = nil
end
stub(&block) click to toggle source
# File lib/rackrack/stub.rb, line 11
def stub(&block)
  if block_given?
    @stub = Class.new(Sinatra::Base) do
      instance_eval(&block)
    end
  else
    @stub ||= raise Rackrack::Stub::NoStubException
  end
end