class Decidim::Budgets::ProjectSerializer
Attributes
project[R]
Public Class Methods
new(project)
click to toggle source
Public: Initializes the serializer with a project.
# File lib/decidim/budgets/project_serializer.rb, line 11 def initialize(project) @project = project end
Public Instance Methods
serialize()
click to toggle source
Public: Exports a hash with the serialized data for this project.
# File lib/decidim/budgets/project_serializer.rb, line 16 def serialize { id: project.id, category: { id: project.category.try(:id), name: project.category.try(:name) || empty_translatable }, scope: { id: project.scope.try(:id), name: project.scope.try(:name) || empty_translatable }, participatory_space: { id: project.participatory_space.id, url: Decidim::ResourceLocatorPresenter.new(project.participatory_space).url }, component: { id: component.id }, title: project.title, description: project.description, budget: { id: project.budget.id }, budget_amount: project.budget_amount, confirmed_votes: project.confirmed_orders_count, comments: project.comments.count, created_at: project.created_at, url: project.polymorphic_resource_url({}), related_proposals: related_proposals, related_proposal_titles: related_proposal_titles, related_proposal_urls: related_proposal_urls } end
Private Instance Methods
component()
click to toggle source
# File lib/decidim/budgets/project_serializer.rb, line 50 def component project.component end
empty_translatable(locales = Decidim.available_locales)
click to toggle source
# File lib/decidim/budgets/project_serializer.rb, line 74 def empty_translatable(locales = Decidim.available_locales) locales.each_with_object({}) do |locale, result| result[locale.to_s] = "" end end
url()
click to toggle source
# File lib/decidim/budgets/project_serializer.rb, line 70 def url Decidim::ResourceLocatorPresenter.new(project).url end