class MultiTest::AssertionLibrary

Public Class Methods

detect_best() click to toggle source
# File lib/multi_test/assertion_library.rb, line 5
def self.detect_best
  available.detect(&:require?)
end
new(requirer, extender) click to toggle source
# File lib/multi_test/assertion_library.rb, line 9
def initialize(requirer, extender)
  @requirer = requirer
  @extender = extender
end

Private Class Methods

available() click to toggle source
# File lib/multi_test/assertion_library.rb, line 29
def self.available
  @available ||= [
    AssertionLibrary.new(
      proc { require 'rspec/expectations' },
      proc { |object| object.extend(::RSpec::Matchers) }
    ),
    AssertionLibrary.new(
      proc {
        require 'spec/expectations'
        require 'spec/runner/differs/default'
        require 'ostruct'
      },
      proc { |object|
        options = OpenStruct.new(:diff_format => :unified, :context_lines => 3)
        Spec::Expectations.differ = Spec::Expectations::Differs::Default.new(options)
        object.extend(Spec::Matchers)
      }
    ),
    AssertionLibrary.new(
      proc { require 'minitest/assertions' },
      proc { |object| object.extend(MinitestWorld) }
    ),
    AssertionLibrary.new(
      proc { require 'minitest/unit' },
      proc { |object| object.extend(MiniTest::Assertions) }
    ),
    AssertionLibrary.new(
      proc { require 'test/unit/assertions' },
      proc { |object| object.extend(Test::Unit::Assertions) }
    ),
  ]
end

Public Instance Methods

extend_world(world) click to toggle source
# File lib/multi_test/assertion_library.rb, line 23
def extend_world(world)
  @extender.call(world)
end
require?() click to toggle source
# File lib/multi_test/assertion_library.rb, line 14
def require?
  begin
    @requirer.call
    true
  rescue LoadError
    false
  end
end