Sha256: 76b394ae1bf121562b06b8f6541ade22513518c504db0b8b40490bd5404f1c94

Contents?: true

Size: 912 Bytes

Versions: 6

Compression:

Stored size: 912 Bytes

Contents

require 'spec_helper'

describe NonSharedAccessors do

  context 'Native Class Accessor in Ruby' do

    it 'should explain native behavior (shared class variable)' do
      class A
        cattr_accessor :value
      end

      class B < A

      end

      expect(A.value).to be_nil
      expect(B.value).to be_nil

      A.value = 2

      expect(A.value).to eq(2)
      expect(B.value).to eq(2)

      B.value = 3

      expect(A.value).to eq(3)
      expect(B.value).to eq(3)
    end
  end

  it 'should behave as a separate accessor(separate class valiable)' do

    class A
      include NonSharedAccessors
      non_shared_cattr_accessor :value
    end

    class B < A

    end

    expect(A.value).to be_nil
    expect(B.value).to be_nil

    A.value = 2

    expect(A.value).to eq(2)
    expect(B.value).to eq(nil)

    B.value = 3

    expect(A.value).to eq(2)
    expect(B.value).to eq(3)
  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
tarvit-helpers-0.0.9 spec/modules/non_shared_accessors_spec.rb
tarvit-helpers-0.0.8 spec/modules/non_shared_accessors_spec.rb
tarvit-helpers-0.0.6 spec/modules/non_shared_accessors_spec.rb
tarvit-helpers-0.0.5 spec/modules/non_shared_accessors_spec.rb
tarvit-helpers-0.0.4 spec/modules/non_shared_accessors_spec.rb
tarvit-helpers-0.0.3 spec/modules/non_shared_accessors_spec.rb