Sha256: 76dd7efd603977f303e05c08846781a30531b0033789dbca970d1bbd6b06fd95
Contents?: true
Size: 834 Bytes
Versions: 16
Compression:
Stored size: 834 Bytes
Contents
require 'spec_helper' describe 'custom attributes' do before do module Examples class NoisyString < Virtus::Attribute lazy true def coerce(input) input.to_s.upcase end end class RegularExpression < Virtus::Attribute primitive Regexp end class User include Virtus attribute :name, String attribute :scream, NoisyString attribute :expression, RegularExpression end end end subject { Examples::User.new } specify 'allows you to define custom attributes' do regexp = /awesome/ subject.expression = regexp expect(subject.expression).to eq(regexp) end specify 'allows you to define coercion methods' do subject.scream = 'welcome' expect(subject.scream).to eq('WELCOME') end end
Version data entries
16 entries across 14 versions & 5 rubygems