Class: DataPackage::ModelSerializer
- Inherits:
-
BaseSerializer
- Object
- BaseSerializer
- DataPackage::ModelSerializer
- Defined in:
- app/serializers/data_package/model_serializer.rb
Instance Method Summary collapse
Methods inherited from BaseSerializer
Constructor Details
This class inherits a constructor from DataPackage::BaseSerializer
Instance Method Details
#serialize ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'app/serializers/data_package/model_serializer.rb', line 3 def serialize { "$schema": "https://manyfold.app/profiles/0.0/datapackage.json", name: @object.name.parameterize, title: @object.name, caption: @object.caption, description: @object.notes, homepage: Rails.application.routes.url_helpers.url_for(@object), image: @object.preview_file&.is_image? ? @object.preview_file.filename : nil, keywords: @object.tag_list, licenses: (@object.license ? [ { name: @object.license, path: Spdx.licenses.dig(@object.license, "reference") }.compact ] : nil), resources: @object.model_files.without_special.map { ModelFileSerializer.new(it).serialize }, sensitive: @object.sensitive, contributors: @object.creator ? [CreatorSerializer.new(@object.creator).serialize] : nil, collections: @object.collections.map { |c| CollectionSerializer.new(c).serialize }, links: @object.links.map { LinkSerializer.new(it).serialize }, entrypoint: (if @object.entrypoint { path: @object.entrypoint.filename, fragment: @object.entrypoint_fragment }.compact end) }.compact end |