Sha256: 73dc62775f2fe2dd52815bbd6558c152334b6926131bd73730f65fb5dfdda54e

Contents?: true

Size: 796 Bytes

Versions: 3

Compression:

Stored size: 796 Bytes

Contents

require 'bundler'
require 'appraisal'

module Tests
  class CurrentBundle
    AppraisalNotSpecified = Class.new(ArgumentError)

    include Singleton

    def assert_appraisal!
      unless appraisal?
        message = <<EOT


Please run tests starting with `appraisal <appraisal_name>`.
Possible appraisals are: #{possible_appraisals}

EOT
        raise AppraisalNotSpecified, message
      end
    end

    private

    def possible_appraisals
      appraisals = []

      Appraisal::File.each do |appraisal|
        appraisals << appraisal.name
      end

      appraisals
    end

    def path
      Bundler.default_gemfile
    end

    def appraisal?
      path.dirname == root.join('gemfiles')
    end

    def root
      Pathname.new('../../../..').expand_path(__FILE__)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
shoulda-matchers-3.0.1 spec/support/tests/current_bundle.rb
shoulda-matchers-3.0.0 spec/support/tests/current_bundle.rb
shoulda-matchers-3.0.0.rc1 spec/support/tests/current_bundle.rb