# Composite Specificationsspec = CompositeSpecification.newspec.add_specification(SizeSpecification.new(6, :username))spec.add_specification(CollectionSpecification.new(18..30, :age))spec.add_specification(ConfirmationSpecification.new(:password))spec.satisfied_by?(User.new)#=> false# Custom Specification Classclass UserSpecification < ActiveSpec::Base requires_presence_of :username, :password requires_size 6, :password requires_confirmation_of :password requires_inclusion_in 18..30, :ageendUserSpecification.satisfied_by?(some_user)
# Composite Specificationsspec = CompositeSpecification.newspec.add_specification(SizeSpecification.new(6, :username))spec.add_specification(CollectionSpecification.new(18..30, :age))spec.add_specification(ConfirmationSpecification.new(:password))spec.satisfied_by?(User.new)#=> false
# Custom Specification Classclass UserSpecification < ActiveSpec::Base requires_presence_of :username, :password requires_size 6, :password requires_confirmation_of :password requires_inclusion_in 18..30, :ageendUserSpecification.satisfied_by?(some_user)
# pure ruby selectionUser.find_by_specification(SomeAdvancedUserSpecification)# specifications for SQL queries?User.find(:all, :conditions => SomeAdvancedUserSpecification.to_sql)
Remember Me
Powered by: newtelligence dasBlog 1.9.6264.0
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.
© Copyright 2008, Steve Eichert
E-mail