ncbo / goo

Graph Oriented Objects (GOO) for Ruby. A RDF/SPARQL based ORM.
http://ncbo.github.io/goo/
Other
15 stars 6 forks source link

Default values show as nil during validation #56

Closed palexander closed 11 years ago

palexander commented 11 years ago

Using this user model

module LinkedData
  module Models
    class User < LinkedData::Models::Base
      model :user
      attribute :username, :unique => true, :single_value => true, :not_nil => true
      attribute :firstName, :single_value => true
      attribute :lastName, :single_value => true
      attribute :created, :date_time_xsd => true, :single_value => true, :not_nil => true, :default => lambda { |record| DateTime.now }
    end
  end
end

The following happens

u = LinkedData::Models::User.new
u.username = "test_user"
u.valid?
=> false
u.errors
=> {:created=>
  ["created is nil. It does not satisfy cardinality {:max=>1, :min=>1, :instance=>#<Goo::Validators::CardinalityValidator:0x007fb3b42b7a68 @options={...}>}"]}
u.created = u.created
u.valid?
=> true
msalvadores commented 11 years ago

Basically here we should always ignore :min=>1 when we have :default. Fixing it.