Sha256: 3251a1eef43b396137ca86a4219c6f2ee8b47282e00c548735ef68254976848b

Contents?: true

Size: 1.29 KB

Versions: 1

Compression:

Stored size: 1.29 KB

Contents

require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')

describe "Miscellaneous" do
  it "#apply" do
    klass = Class.new do
      def value
        @value ||= []
      end

      def test
        value << "test"
      end

      def do_this
        value << "do_this"
      end
    end

    aspect = Aspector do
      before :test, :do_this
    end

    aspect.apply(klass)

    obj = klass.new
    obj.test
    obj.value.should == %w"do_this test"
  end

  it "can add method to target" do
     klass = Class.new do
      def value
        @value ||= []
      end

      def test
        value << "test"
      end
    end

    aspect = Aspector do
      target do
        def do_this
          value << "do_this"
        end
      end

      before :test, :do_this
    end

    aspect.apply(klass)

    obj = klass.new
    obj.test
    obj.value.should == %w"do_this test"
  end

  it "target takes String too" do
     klass = Class.new do
      def value
        @value ||= []
      end

      def test
        value << "test"
      end
    end

    aspect = Aspector do
      target '
        def do_this
          value << "do_this"
        end
      '

      before :test, :do_this
    end

    aspect.apply(klass)

    obj = klass.new
    obj.test
    obj.value.should == %w"do_this test"
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
aspector-0.7.0 spec/aspector/aspect_spec.rb