Sha256: d99cf5e9b0660e3c5fba564df1feb5e99ac31b06d5617a08ce9c85699fbb1c05

Contents?: true

Size: 1.54 KB

Versions: 11

Compression:

Stored size: 1.54 KB

Contents

$:.unshift(File.expand_path("../lib", File.dirname(__FILE__)))

require "rubygems"

if ENV['COVERAGE']
  require 'coverage'
  require 'simplecov'

  def SimpleCov.roda_coverage(opts = {})
    start do
      add_filter "/spec/"
      add_group('Missing'){|src| src.covered_percent < 100}
      add_group('Covered'){|src| src.covered_percent == 100}
      yield self if block_given?
    end
  end

  ENV.delete('COVERAGE')
  SimpleCov.roda_coverage
end

require "roda"
require "stringio"
gem 'minitest'
require "minitest/autorun"

#def (Roda::RodaPlugins).warn(s); end

class Minitest::Spec
  def app(type=nil, &block)
    case type
    when :new
      @app = _app{route(&block)}
    when :bare
      @app = _app(&block)
    when Symbol
      @app = _app do
        plugin type
        route(&block)
      end
    else
      @app ||= _app{route(&block)}
    end
  end

  def req(path='/', env={})
    if path.is_a?(Hash)
      env = path
    else
      env['PATH_INFO'] = path.dup
    end

    env = {"REQUEST_METHOD" => "GET", "PATH_INFO" => "/", "SCRIPT_NAME" => ""}.merge(env)
    @app.call(env)
  end
  
  def status(path='/', env={})
    req(path, env)[0]
  end

  def header(name, path='/', env={})
    req(path, env)[1][name]
  end

  def body(path='/', env={})
    s = String.new
    b = req(path, env)[2]
    b.each{|x| s << x}
    b.close if b.respond_to?(:close)
    s
  end

  def _app(&block)
    c = Class.new(Roda)
    c.class_eval(&block)
    c
  end

  def with_rack_env(env)
    ENV['RACK_ENV'] = env
    yield
  ensure
    ENV.delete('RACK_ENV')
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
roda-2.20.0 spec/spec_helper.rb
roda-2.19.0 spec/spec_helper.rb
roda-2.18.0 spec/spec_helper.rb
roda-2.17.0 spec/spec_helper.rb
roda-2.16.0 spec/spec_helper.rb
roda-2.15.0 spec/spec_helper.rb
roda-2.14.0 spec/spec_helper.rb
roda-2.13.0 spec/spec_helper.rb
roda-2.12.0 spec/spec_helper.rb
roda-2.11.0 spec/spec_helper.rb
roda-2.10.0 spec/spec_helper.rb