Sha256: aef66501d3ccf93d504ab7293ad03c7b7d468925ba68621b226da41550e16c28

Contents?: true

Size: 575 Bytes

Versions: 2

Compression:

Stored size: 575 Bytes

Contents

require 'dicer/delegator'

module Dicer
  class Context
    class Description
      def initialize(described_class, &block)
        @described_class = described_class
        @behaviors = []

        instance_eval(&block) if block_given?
      end
      attr_reader :described_class, :behaviors

      def it_behaves_like(behavior)
        @behaviors << behavior
      end

      def merge!(other)
        @behaviors.concat(other.behaviors)
      end

      def delegator
        @delegator ||= Dicer::Delegator.make(@described_class, @behaviors)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dicer-0.1.0 lib/dicer/context/description.rb
dicer-0.0.1 lib/dicer/context/description.rb