Sha256: b347c3a1b9655e0a2eadf4a84df2836628b926ff67b6d972121b4638a49fa43c
Contents?: true
Size: 1.21 KB
Versions: 5
Compression:
Stored size: 1.21 KB
Contents
require 'spec_helper' describe 'I can define attributes within a module' do before do module Examples module Common include Virtus end module Name include Common attribute :name, String end module Age include Common attribute :age, Integer end class User include Name end class Admin < User include Age end class Moderator; end end end specify 'including a module with attributes into a class' do Examples::User.attribute_set[:name].should be_instance_of(Virtus::Attribute::String) Examples::Admin.attribute_set[:name].should be_instance_of(Virtus::Attribute::String) Examples::Admin.attribute_set[:age].should be_instance_of(Virtus::Attribute::Integer) user = Examples::Admin.new(:name => 'Piotr', :age => 29) user.name.should eql('Piotr') user.age.should eql(29) end specify 'including a module with attributes into an instance' do moderator = Examples::Moderator.new moderator.extend(Examples::Name, Examples::Age) moderator.attributes = { :name => 'John', :age => 21 } moderator.name.should eql('John') moderator.age.should eql(21) end end
Version data entries
5 entries across 5 versions & 2 rubygems