neopoly/rohbau

View on GitHub
lib/rohbau/it_behaves_like.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'minitest/spec'

module Rohbau
  module ItBehavesLike
    def get_shared_example(spec_name)
      Rohbau::SharedSpec::SpecIndex.get spec_name
    end

    def it_behaves_like(spec)
      if spec.kind_of? Proc
        shared_example = spec
      else
        shared_example = get_shared_example(spec)
      end
      raise "No shared spec for #{spec.inspect} found" unless shared_example

      instance_eval(&shared_example)
    end
  end
end

class MiniTest::Spec
  extend Rohbau::ItBehavesLike
end