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)