lib/active_data/model/attributes/reflections/represents.rb in active_data-1.0.0 vs lib/active_data/model/attributes/reflections/represents.rb in active_data-1.1.0
- old
+ new
@@ -1,23 +1,22 @@
module ActiveData
module Model
module Attributes
module Reflections
class Represents < Attribute
- def self.build target, generated_methods, name, *args, &block
+ def self.build(target, generated_methods, name, *args, &block)
options = args.extract_options!
reference = target.reflect_on_association(options[:of]) if target.respond_to?(:reflect_on_association)
reference ||= target.reflect_on_attribute(options[:of]) if target.respond_to?(:reflect_on_attribute)
- if reference
- options[:of] = reference.name
- target.validates_nested options[:of]
- end
+ options[:of] = reference.name if reference
+ validates_nested = target.respond_to?(:validates_nested) && !target.validates_nested?(options[:of])
+ target.validates_nested(options[:of]) if validates_nested
super(target, generated_methods, name, *args, options, &block)
end
- def initialize name, options
+ def initialize(name, options)
super
raise ArgumentError, "Undefined reference for `#{name}`" if reference.blank?
end
def type