Sha256: 385f5161f358cc686bc685ec0180b88d95f373fde4fc4dca3e1ecca246639d70

Contents?: true

Size: 887 Bytes

Versions: 5

Compression:

Stored size: 887 Bytes

Contents

module OpalSpec
  class Example
    attr_reader :description, :example_group, :exception

    def initialize(group, desc, block)
      @example_group = group
      @description   = desc
      @__block__     = block
    end

    def run_before_hooks
      @example_group.before_hooks.each do |before|
        instance_eval &before
      end
    end

    def run_after_hooks
      @example_group.after_hooks.each do |after|
        instance_eval &after
      end
    end

    def run runner
      begin
        runner.example_started self
        run_before_hooks
        instance_eval &@__block__
      rescue => e
        @exception = e
      ensure
        begin
          run_after_hooks
        rescue => e
          @exception = e
        end
      end

      if @exception
        runner.example_failed self
      else
        runner.example_passed self
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
opal-spec-0.2.0 lib/opal-spec/example.rb
opal-spec-0.1.6 lib/opal-spec/example.rb
opal-spec-0.1.5 lib/opal-spec/example.rb
opal-spec-0.1.1 lib/opal-spec/example.rb
opal-spec-0.0.3 lib/opal/spec/example.rb