Sha256: eea0c8c10d8c3f105f5f9729f664c7ef55798e2851b4807b2c5e7efc8e5025ec

Contents?: true

Size: 1.06 KB

Versions: 16

Compression:

Stored size: 1.06 KB

Contents

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

include Parser

describe YARD::Handlers::Base, "#handles and inheritance" do
  before do
    Handlers::Base.stub!(:inherited)
  end
  
  it "should keep track of subclasses" do
    Handlers::Base.should_receive(:inherited).once
    class TestHandler < Handlers::Base; end
  end
  
  it "should raise NotImplementedError if process is called on a class with no #process" do
    class TestNotImplementedHandler < Handlers::Base
    end
    
    lambda { TestNotImplementedHandler.new(0, 0).process }.should raise_error(NotImplementedError)
  end
  
  it "should allow multiple handles arguments" do
    Handlers::Base.should_receive(:inherited).once
    class TestHandler1 < Handlers::Base
      handles :a, :b, :c
    end
    TestHandler1.handlers.should == [:a, :b, :c]
  end

  it "should allow multiple handles calls" do
    Handlers::Base.should_receive(:inherited).once
    class TestHandler2 < Handlers::Base
      handles :a
      handles :b
      handles :c
    end
    TestHandler2.handlers.should == [:a, :b, :c]
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
yard-0.5.8 spec/handlers/base_spec.rb
yard-0.5.7 spec/handlers/base_spec.rb
yard-0.5.6 spec/handlers/base_spec.rb
yard-0.5.5 spec/handlers/base_spec.rb
yard-0.5.4 spec/handlers/base_spec.rb
yard-0.5.3 spec/handlers/base_spec.rb
yard-0.5.2 spec/handlers/base_spec.rb
yard-0.5.1p1 spec/handlers/base_spec.rb
yard-0.5.1 spec/handlers/base_spec.rb
yard-0.5.0 spec/handlers/base_spec.rb
yard-0.4.0 spec/handlers/base_spec.rb
yard-0.2.3.5 spec/handlers/base_spec.rb
yard-0.2.3.4 spec/handlers/base_spec.rb
yard-0.2.3.2 spec/handlers/base_spec.rb
yard-0.2.3.3 spec/handlers/base_spec.rb
yard-0.2.3 spec/handlers/base_spec.rb