
gems.virtus-1.0.5.spec.integration.custom_attributes_spec.rb Maven / Gradle / Ivy
The newest version!
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
© 2015 - 2025 Weber Informatics LLC | Privacy Policy