Skip to content
This repository has been archived by the owner on Oct 26, 2023. It is now read-only.

Commit

Permalink
Deprecate typecasting of default property values.
Browse files Browse the repository at this point in the history
  • Loading branch information
gix authored and dkubb committed Mar 16, 2013
1 parent f4ae661 commit 3863da6
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion lib/dm-core/resource/persistence_state/transient.rb
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,20 @@ def set_default_values

def set_default_value(subject)
return if subject.loaded?(resource) || !subject.default?
set(subject, subject.default_for(resource))
default = typecast_default(subject, subject.default_for(resource))
set(subject, default)
end

def typecast_default(subject, default)
return default unless subject.respond_to?(:typecast)

typecasted_default = subject.send(:typecast, default)
unless typecasted_default.eql?(default)
warn "Automatic typecasting of default property values is deprecated " +
"(#{default.inspect} was casted to #{typecasted_default.inspect}). " +
"Specify the correct type for #{resource.class}."
end
typecasted_default
end

def track(subject)
Expand Down

0 comments on commit 3863da6

Please sign in to comment.