class Decidim::Accountability::ResultSerializer
This class serializes a Result so can be exported to CSV, JSON or other formats.
Attributes
result[R]
Public Class Methods
new(result)
click to toggle source
Public: Initializes the serializer with a result.
# File lib/decidim/accountability/result_serializer.rb, line 12 def initialize(result) @result = result end
Public Instance Methods
serialize()
click to toggle source
Public: Exports a hash with the serialized data for this result.
# File lib/decidim/accountability/result_serializer.rb, line 17 def serialize { id: result.id, category: { id: result.category.try(:id), name: result.category.try(:name) || empty_translatable }, scope: { id: result.scope.try(:id), name: result.scope.try(:name) || empty_translatable }, parent: { id: result.parent.try(:id) }, title: result.title, description: result.description, start_date: result.start_date, end_date: result.end_date, status: { id: result.status.try(:id), key: result.status.try(:key), name: result.status.try(:name) || empty_translatable }, progress: result.progress, created_at: result.created_at, url: url, component: { id: component.id }, proposal_urls: proposals } end
Private Instance Methods
component()
click to toggle source
# File lib/decidim/accountability/result_serializer.rb, line 52 def component result.component end
proposals()
click to toggle source
# File lib/decidim/accountability/result_serializer.rb, line 56 def proposals result.linked_resources(:proposals, "included_proposals").map do |proposal| Decidim::ResourceLocatorPresenter.new(proposal).url end end
url()
click to toggle source
# File lib/decidim/accountability/result_serializer.rb, line 62 def url Decidim::ResourceLocatorPresenter.new(result).url end