Sha256: 4de145dcfbf6c5c7089b719427b1759052faac33330f5b1ed7451da5f261989f

Contents?: true

Size: 1.61 KB

Versions: 14

Compression:

Stored size: 1.61 KB

Contents

require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))

describe "DataMapper::Is" do
  describe ".is" do

    module DataMapper

      module Is
        module Example

          def is_example(*args)
            @args = args

            extend DataMapper::Is::Example::ClassMethods
          end

          def is_example_args
            @args
          end

          module ClassMethods
            def example_class_method

            end
          end

        end
      end

      module Model
        include DataMapper::Is::Example
      end # module Model
    end # module DataMapper

    class House
      include DataMapper::Resource
    end

    class Cabin
      include DataMapper::Resource
    end

    it "should raise error unless it finds the plugin" do
      lambda do
        class House
          is :no_plugin_by_this_name
        end
      end.should raise_error(DataMapper::PluginNotFoundError)
    end

    it "should call plugin is_* method" do
      lambda do
        class House
          is :example
        end
      end.should_not raise_error
    end

    it "should pass through arguments to plugin is_* method" do
      class House
        is :example ,:option1 => :ping, :option2 => :pong
      end

      House.is_example_args.length.should == 1
      House.is_example_args.first[:option2].should == :pong
    end

    it "should not add class_methods before the plugin is activated" do
      Cabin.respond_to?(:example_class_method).should be_false

      class Cabin
        is :example
      end

      Cabin.respond_to?(:example_class_method).should be_true

    end

  end
end

Version data entries

14 entries across 14 versions & 3 rubygems

Version Path
joevandyk-dm-core-0.9.6 spec/unit/is_spec.rb
sam-dm-core-0.9.10 spec/unit/is_spec.rb
sam-dm-core-0.9.6 spec/unit/is_spec.rb
sam-dm-core-0.9.7 spec/unit/is_spec.rb
sam-dm-core-0.9.8 spec/unit/is_spec.rb
sam-dm-core-0.9.9 spec/unit/is_spec.rb
dm-core-0.9.2 spec/unit/is_spec.rb
dm-core-0.9.4 spec/unit/is_spec.rb
dm-core-0.9.5 spec/unit/is_spec.rb
dm-core-0.9.3 spec/unit/is_spec.rb
dm-core-0.9.7 spec/unit/is_spec.rb
dm-core-0.9.6 spec/unit/is_spec.rb
dm-core-0.9.9 spec/unit/is_spec.rb
dm-core-0.9.8 spec/unit/is_spec.rb