lib/scrivito/attribute_deserializer.rb in scrivito_sdk-0.60.0.rc1 vs lib/scrivito/attribute_deserializer.rb in scrivito_sdk-0.60.0.rc2

- old
+ new

@@ -10,10 +10,11 @@ when 'link' then deserialize_link_value(attribute_value) when 'linklist' then deserialize_linklist_value(attribute_value) when 'multienum' then deserialize_multienum_value(attribute_value, attribute_definition) when 'reference' then deserialize_reference_value(attribute_value) when 'referencelist' then deserialize_referencelist_value(attribute_value) + when 'string' then deserialize_string_value(attribute_value) when 'widget' then deserialize_legacy_widget_value(attribute_value, attribute_definition) when 'widgetlist' then deserialize_widgetlist_value(attribute_value, attribute_definition) else attribute_value end end @@ -33,11 +34,11 @@ def deserialize_enum_value(attribute_value, attribute_definition) attribute_value if attribute_definition.values.include?(attribute_value) end def deserialize_html_value(attribute_value) - StringTagging.tag_as_html(attribute_value) + StringTagging.tag_as_html(attribute_value || '') end def deserialize_link_value(attribute_value) return unless attribute_value if attribute_value['destination'] @@ -62,28 +63,36 @@ [] end end def deserialize_multienum_value(attribute_value, attribute_definition) - attribute_value & attribute_definition.values + if attribute_value + attribute_value & attribute_definition.values + else + [] + end end def deserialize_reference_value(attribute_value) workspace.objs.find([attribute_value]).first end def deserialize_referencelist_value(attribute_value) - workspace.objs.find(attribute_value).compact + attribute_value ? workspace.objs.find(attribute_value).compact : [] end def deserialize_internal_link(attribute_value) Link.new(attribute_value.slice('title', 'query', 'fragment', 'target').symbolize_keys .merge(obj: workspace.objs.find(attribute_value['destination']))) rescue ResourceNotFound end def deserialize_external_link(attribute_value) Link.new(attribute_value.slice('url', 'title', 'target').symbolize_keys) + end + + def deserialize_string_value(attribute_value) + attribute_value || '' end def deserialize_legacy_widget_value(widget_ids, attribute_definition) if workspace.uses_obj_classes deserialize_widgetlist_value(widget_ids, attribute_definition)