discourse/app/serializers/wizard_step_serializer.rb
Sam Saffron 30990006a9 DEV: enable frozen string literal on all files
This reduces chances of errors where consumers of strings mutate inputs
and reduces memory usage of the app.

Test suite passes now, but there may be some stuff left, so we will run
a few sites on a branch prior to merging
2019-05-13 09:31:32 +08:00

69 lines
1.1 KiB
Ruby

# frozen_string_literal: true
class WizardStepSerializer < ApplicationSerializer
attributes :id, :next, :previous, :description, :title, :index, :banner
has_many :fields, serializer: WizardFieldSerializer, embed: :objects
def id
object.id
end
def index
object.index
end
def next
object.next.id if object.next.present?
end
def include_next?
object.next.present?
end
def previous
object.previous.id if object.previous.present?
end
def include_previous?
object.previous.present?
end
def i18n_key
@i18n_key ||= "wizard.step.#{object.id}".underscore
end
def translate(sub_key, vars = nil)
key = "#{i18n_key}.#{sub_key}"
return nil unless I18n.exists?(key)
vars.nil? ? I18n.t(key) : I18n.t(key, vars)
end
def description
key = object.disabled ? "disabled" : "description"
translate(key, object.description_vars)
end
def include_description?
description.present?
end
def title
translate("title")
end
def include_title?
title.present?
end
def banner
object.banner
end
def include_banner?
object.banner.present?
end
end