Fetching contributors…
Cannot retrieve contributors at this time
114 lines (93 sloc) 2.35 KB
$: << '.' # for ruby 1.9
require 'stringio'
$_spec_spec = true # Prevents Kernel.exit in various places
require 'spec'
require 'spec/mocks'
require 'spec/runner/differs/default'
require 'spec/autorun'
require 'support/spec_classes'
require 'support/macros'
def jruby?
::RUBY_PLATFORM == 'java'
end
module Spec
module Example
class NonStandardError < Exception; end
end
module Matchers
def fail
raise_error(Spec::Expectations::ExpectationNotMetError)
end
def fail_with(message)
raise_error(Spec::Expectations::ExpectationNotMetError, message)
end
def exception_from(&block)
exception = nil
begin
yield
rescue StandardError => e
exception = e
end
exception
end
def run_with(options)
::Spec::Runner::CommandLine.run(options)
end
def with_ruby(version)
yield if RUBY_VERSION =~ Regexp.compile("^#{version.to_s}")
end
end
end
def with_sandboxed_options
attr_reader :options
before(:each) do
@original_rspec_options = ::Spec::Runner.options
::Spec::Runner.use(@options = ::Spec::Runner::Options.new(StringIO.new, StringIO.new))
end
after(:each) do
::Spec::Runner.use(@original_rspec_options)
end
yield
end
def with_sandboxed_config
attr_reader :config
before(:each) do
@config = ::Spec::Runner::Configuration.new
@original_configuration = ::Spec::Runner.configuration
spec_configuration = @config
::Spec::Runner.instance_eval {@configuration = spec_configuration}
end
after(:each) do
original_configuration = @original_configuration
::Spec::Runner.instance_eval {@configuration = original_configuration}
::Spec::Example::ExampleGroupFactory.reset
end
yield
end
module Spec
module Example
module Resettable
def reset # :nodoc:
@before_all_parts = nil
@after_all_parts = nil
@before_each_parts = nil
@after_each_parts = nil
end
end
class ExampleGroup
extend Resettable
end
class ExampleGroupDouble < ExampleGroup
::Spec::Runner.options.remove_example_group self
def register_example_group(klass)
#ignore
end
def initialize(proxy=nil, &block)
super(proxy || ExampleProxy.new, &block)
end
end
end
end
Spec::Runner.configure do |config|
config.extend(Macros)
end