Sha256: eabda14f76cf3ba225b4fb95c460e76ea9edd60c00d69535b12ea505c8000ccb

Contents?: true

Size: 936 Bytes

Versions: 2

Compression:

Stored size: 936 Bytes

Contents

spec_dir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
require File.join(spec_dir, "spec_helper")

class ImageControl < Instrument::Control
  def source
    return self.options[:source] || self.options[:src]
  end

  def alternate_text
    return self.options[:alternate_text] || self.options[:alt]
  end
end

# Verifies that Kernel#select isn't accidentally being called.
class Select < Instrument::Control
end

describe Instrument::ControlBuilder do
  class ExtendedObject
    include Instrument::ControlBuilder
  end
  
  before :all do
    @extended_object = ExtendedObject.new
  end
  
  it "should enable mixins to function" do
    @extended_object.image_control.class.should == ImageControl
    @extended_object.select.class.should == Select
  end
  
  it "should still raise an Exception for non-existent methods" do
    (lambda do
      @extended_object.bogus
    end).should raise_error(NoMethodError)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
instrument-0.1.0 spec/instrument/control_builder_spec.rb
instrument-0.1.1 spec/instrument/control_builder_spec.rb