ksylvest/specifier

View on GitHub
lib/specifier/example.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
module Specifier

  # Configures an example (used for it statements).
  #
  # Usage:
  #
  #   example = Specifier::Example.new("...") do
  #     expect(value).to equal(value)
  #   end
  #
  #   world = Specifier::World.new
  #   example.run(world)
  #
  class Example
    Result = Struct.new(:status, :message)

    attr_accessor :description

    def initialize(description, &block)
      @description = description
      @block = block
    end

    def run(world)
      world.instance_eval(&@block)
      Result.new(:pass)
    rescue StandardError => e
      Result.new(:fail, e)
    end

  end
end