Sha256: 6cf72df39e3c48209b3332011f821323b356fcfd6d66f7806bec5e9a3c0a963b

Contents?: true

Size: 1.09 KB

Versions: 8

Compression:

Stored size: 1.09 KB

Contents

module RSpec
  module Core
    module Pending
      class PendingDeclaredInExample < StandardError; end

      DEFAULT_MESSAGE = 'No reason given'

      def pending(*args)
        return self.class.before(:each) { pending(*args) } unless example

        options = args.last.is_a?(Hash) ? args.pop : {}
        message = args.first || DEFAULT_MESSAGE

        if options[:unless] || (options.has_key?(:if) && !options[:if])
          return block_given? ? yield : nil
        end

        example.metadata[:pending] = true
        example.metadata[:execution_result][:pending_message] = message
        if block_given?
          begin
            result = begin
                       yield
                       example.example_group_instance.instance_eval { verify_mocks_for_rspec }
                     end
            example.metadata[:pending] = false
          rescue Exception
          ensure
            teardown_mocks_for_rspec
          end
          raise RSpec::Core::PendingExampleFixedError.new if result
        end
        raise PendingDeclaredInExample.new(message)
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
rspec-core-2.6.4 lib/rspec/core/pending.rb
rspec-core-2.6.3 lib/rspec/core/pending.rb
rspec-core-2.6.3.beta1 lib/rspec/core/pending.rb
rspec-core-2.6.2.rc lib/rspec/core/pending.rb
rspec-core-2.6.0 lib/rspec/core/pending.rb
rspec-core-2.6.0.rc6 lib/rspec/core/pending.rb
rspec-core-2.6.0.rc4 lib/rspec/core/pending.rb
rspec-core-2.6.0.rc2 lib/rspec/core/pending.rb