Sha256: 36de7b858b90aa1f2329a989eb5b88811cab748a13ee90989b73a2267fb16beb

Contents?: true

Size: 1.16 KB

Versions: 8

Compression:

Stored size: 1.16 KB

Contents

require File.dirname(__FILE__)+'/../spec_helper'
require 'gorillib/metaprogramming/cattr_accessor'

describe 'metaprogramming' do
  describe 'cattr_accessor' do
    before do
      @class = Class.new do
        cattr_accessor :foo
        cattr_accessor :bar,  :instance_writer => false
        cattr_reader   :shaq, :instance_reader => false
      end
      @object = @class.new
    end

    it 'does not have an effect if already provided by another library.'

    it 'uses mattr default' do
      @class.foo.should be_nil
      @object.foo.should be_nil
    end

    it 'sets mattr value' do
      @class.foo = :test
      @object.foo.should == :test

      @object.foo = :test2
      @class.foo.should == :test2
    end

    it 'with instance_writer => false, does not create an instance writer' do
      @class.should respond_to(:foo)
      @class.should respond_to(:foo=)
      @object.should respond_to(:bar)
      @object.should_not respond_to(:bar=)
    end

    it 'with instance_reader => false, does not create an instance reader' do
      @class.should respond_to(:shaq)
      @object.should_not respond_to(:shaq)
      @object.should_not respond_to(:shaq=)
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
gorillib-0.1.7 spec/metaprogramming/cattr_accessor_spec.rb
gorillib-0.1.6 spec/metaprogramming/cattr_accessor_spec.rb
gorillib-0.1.5 spec/metaprogramming/cattr_accessor_spec.rb
gorillib-0.1.4 spec/metaprogramming/cattr_accessor_spec.rb
gorillib-0.1.3 spec/metaprogramming/cattr_accessor_spec.rb
gorillib-0.1.2 spec/metaprogramming/cattr_accessor_spec.rb
gorillib-0.1.1 spec/metaprogramming/cattr_accessor_spec.rb
gorillib-0.1.0 spec/metaprogramming/cattr_accessor_spec.rb