Sha256: 4c6f7ec55c589125b71795618c5b4d625f4148111a32227de4bca9948461f1c0

Contents?: true

Size: 961 Bytes

Versions: 3

Compression:

Stored size: 961 Bytes

Contents

module RSpecCandy
  module Switcher
    extend self

    def rspec_version
      begin
        require 'rspec/version'
        RSpec::Version::STRING.to_i
      rescue LoadError
        if defined?(Spec)
          1
        else
          raise 'Cannot determine RSpec version'
        end
      end
    end

    def active_record_version
      ActiveRecord::VERSION::MAJOR
    end

    def active_record_loaded?
      defined?(ActiveRecord)
    end

    def new_mock(*args)
      case rspec_version
      when 1
        Spec::Mocks::Mock.new(*args)
      when 2
        RSpec::Mocks::Mock.new(*args)
      else
        RSpec::Mocks::Double.new(*args)
      end
    end

    def rspec_root
      if rspec_version == 1
        Spec
      else
        RSpec
      end
    end

    def rspec_matcher_registry
      rspec_root.const_get(:Matchers)
    end

    def define_matcher(*args, &block)
      rspec_matcher_registry.define(*args, &block)
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rspec_candy-0.5.1 lib/rspec_candy/switcher.rb
rspec_candy-0.5.0 lib/rspec_candy/switcher.rb
rspec_candy-0.4.1 lib/rspec_candy/switcher.rb