lib/rectify/form_attribute.rb
module Rectify class FormAttribute < SimpleDelegator def value_from(model_value) return declared_class.from_model(model_value) if form_object? if collection_of_form_objects? return model_value.map { |child| element_class.from_model(child) } end model_value end private def form_object? declared_class.respond_to?(:from_model) end def collection_of_form_objects? collection? && element_class.respond_to?(:from_model) end def collection? type.respond_to?(:member_type) end def element_class type.member_type end def declared_class primitive end end end