Sha256: 6d5feb1de714831cc77b99c5b8aa3267a82a8680512689f898e9e3b1f54ecd7d

Contents?: true

Size: 1.34 KB

Versions: 21

Compression:

Stored size: 1.34 KB

Contents

module DataMapper
  module Spec
    module PendingHelpers

      def pending_if(*args)
        message, boolean = parse_args(*args)

        if boolean
          pending(message) { yield }
        else
          yield
        end
      end

      def rescue_if(*args)
        message, boolean = parse_args(*args)

        if boolean
          raised = nil
          begin
            yield
            raised = false
          rescue Exception
            raised = true
          end

          raise "should have raised: #{message || 'TODO'}" if raised == false
        else
          yield
        end
      end

      private

      def parse_args(*args)
        case args.map { |arg| arg.class }
          when [ String, TrueClass ], [ String, FalseClass ] then args
          when [ String, NilClass ]                          then [ args.first, false      ]
          when [ String ]                                    then [ args.first, true       ]
          when [ TrueClass ], [ FalseClass ]                 then [ '',         args.first ]
          when [ NilClass ]                                  then [ '',         false      ]
          when []                                            then [ '',         true       ]  # defaults
          else
            raise ArgumentError, "Invalid arguments: #{args.inspect}"
        end
      end

    end
  end
end

Version data entries

21 entries across 21 versions & 4 rubygems

Version Path
sbf-dm-core-1.5.0 lib/dm-core/spec/lib/pending_helpers.rb
sbf-dm-core-1.4.0 lib/dm-core/spec/lib/pending_helpers.rb
sbf-dm-core-1.3.0 lib/dm-core/spec/lib/pending_helpers.rb
sbf-dm-core-1.3.0.beta lib/dm-core/spec/lib/pending_helpers.rb
ardm-core-1.3.0 lib/dm-core/spec/lib/pending_helpers.rb
ardm-core-1.2.1 lib/dm-core/spec/lib/pending_helpers.rb
dm-core-1.2.1 lib/dm-core/spec/lib/pending_helpers.rb
ghost_dm-core-1.3.0.beta lib/dm-core/spec/lib/pending_helpers.rb
dm-core-1.2.0 lib/dm-core/spec/lib/pending_helpers.rb
dm-core-1.2.0.rc2 lib/dm-core/spec/lib/pending_helpers.rb
dm-core-1.2.0.rc1 lib/dm-core/spec/lib/pending_helpers.rb
dm-core-1.1.0 lib/dm-core/spec/lib/pending_helpers.rb
dm-core-1.1.0.rc3 lib/dm-core/spec/lib/pending_helpers.rb
dm-core-1.1.0.rc2 lib/dm-core/spec/lib/pending_helpers.rb
dm-core-1.1.0.rc1 lib/dm-core/spec/lib/pending_helpers.rb
dm-core-1.0.2 lib/dm-core/spec/lib/pending_helpers.rb
dm-core-1.0.1 lib/dm-core/spec/lib/pending_helpers.rb
dm-core-1.0.0 lib/dm-core/spec/lib/pending_helpers.rb
dm-core-1.0.0.rc3 lib/dm-core/spec/lib/pending_helpers.rb
dm-core-1.0.0.rc2 lib/dm-core/spec/lib/pending_helpers.rb