Sha256: a66c5b5a724de4e4252ae7f125df33647d1defa3d9915cd944c204631ec2479d
Contents?: true
Size: 1.68 KB
Versions: 3
Compression:
Stored size: 1.68 KB
Contents
require 'spec_helper' describe WrapIt::DerivedAttributes, type: :wrapped do describe '::get_derived' do it 'retrieves nil by default' do expect(wrapper_class.get_derived(:@var)).to be_nil end it 'retrieves var, defined in class' do wrapper_class.class_eval { @var = 1 } sub1 = Class.new(wrapper_class) { @var = 2 } sub2 = Class.new(sub1) expect(wrapper_class.get_derived(:@var)).to eq 1 expect(sub1.get_derived(:@var)).to eq 2 expect(sub2.get_derived(:@var)).to eq 2 end end describe '::collect_derived' do it 'collects in array by default' do expect(wrapper_class.collect_derived(:@var)).to eq [] end it 'collects vars in correct order' do wrapper_class.class_eval { @var = '1' } sub1 = Class.new(wrapper_class) { @var = '2' } sub2 = Class.new(sub1) expect(wrapper_class.collect_derived(:@var, [], :push)).to eq %w(1) expect(sub1.collect_derived(:@var, [], :push)).to eq %w(2 1) expect(sub2.collect_derived(:@var, [], :push)).to eq %w(2 1) end it 'collects arrays by default' do wrapper_class.class_eval { @var = %w(1 2) } sub1 = Class.new(wrapper_class) { @var = %w(2 3) } expect(wrapper_class.collect_derived(:@var)).to eq %w(1 2) expect(sub1.collect_derived(:@var)).to eq %w(2 3 1 2) end it 'collects hashes' do wrapper_class.class_eval { @var = { one: 1, two: 2 } } sub1 = Class.new(wrapper_class) { @var = { three: 3 } } expect( wrapper_class.collect_derived(:@var, {}, :merge) ).to eq(one: 1, two: 2) expect( sub1.collect_derived(:@var, {}, :merge) ).to eq(one: 1, two: 2, three: 3) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
wrap_it-1.0.2 | spec/lib/derived_attributes_spec.rb |
wrap_it-1.0.1 | spec/lib/derived_attributes_spec.rb |
wrap_it-1.0.0 | spec/lib/derived_attributes_spec.rb |