Class: ThemeSerializer
Instance Method Summary
collapse
#default, #include_default?
expire_cache_fragment!, fragment_cache
#include!
Constructor Details
#initialize(theme, options = {}) ⇒ ThemeSerializer
Returns a new instance of ThemeSerializer.
27
28
29
30
31
32
33
|
# File 'app/serializers/theme_serializer.rb', line 27
def initialize(theme, options = {})
super
@include_theme_field_values = options[:include_theme_field_values] || false
@errors = []
object.theme_fields.each { |o| @errors << o.error if o.error }
end
|
Instance Method Details
#child_themes ⇒ Object
50
51
52
|
# File 'app/serializers/theme_serializer.rb', line 50
def child_themes
object.child_themes
end
|
#description ⇒ Object
77
78
79
|
# File 'app/serializers/theme_serializer.rb', line 77
def description
object.internal_translations.find { |t| t.key == "theme_metadata.description" }&.value
end
|
#errors ⇒ Object
69
70
71
|
# File 'app/serializers/theme_serializer.rb', line 69
def errors
@errors
end
|
#include_child_themes? ⇒ Boolean
65
66
67
|
# File 'app/serializers/theme_serializer.rb', line 65
def include_child_themes?
!object.component?
end
|
#include_disabled_at? ⇒ Boolean
81
82
83
|
# File 'app/serializers/theme_serializer.rb', line 81
def include_disabled_at?
object.component? && !object.enabled?
end
|
#include_disabled_by? ⇒ Boolean
85
86
87
|
# File 'app/serializers/theme_serializer.rb', line 85
def include_disabled_by?
include_disabled_at?
end
|
#include_errors? ⇒ Boolean
73
74
75
|
# File 'app/serializers/theme_serializer.rb', line 73
def include_errors?
@errors.present?
end
|
#include_theme_field_values? ⇒ Boolean
43
44
45
46
47
48
|
# File 'app/serializers/theme_serializer.rb', line 43
def include_theme_field_values?
@include_theme_field_values || object.remote_theme_id.nil?
end
|
#parent_themes ⇒ Object
54
55
56
|
# File 'app/serializers/theme_serializer.rb', line 54
def parent_themes
object.parent_themes
end
|
#theme_fields ⇒ Object
35
36
37
38
39
40
41
|
# File 'app/serializers/theme_serializer.rb', line 35
def theme_fields
ActiveModel::ArraySerializer.new(
object.theme_fields,
each_serializer: ThemeFieldSerializer,
include_value: include_theme_field_values?,
).as_json
end
|