File tree Expand file tree Collapse file tree 2 files changed +28
-0
lines changed Expand file tree Collapse file tree 2 files changed +28
-0
lines changed Original file line number Diff line number Diff line change @@ -23,6 +23,23 @@ class Serializer
23
23
include Type
24
24
require 'active_model/serializer/adapter'
25
25
26
+ with_options instance_writer : false , instance_reader : false do |serializer |
27
+ serializer . class_attribute :_meta # @api private : meta definition, @see Serializer#meta
28
+ end
29
+
30
+ # Register a meta attribute for the corresponding resource.
31
+ #
32
+ # @param [Hash] hash Optional hash
33
+ # @param [Block] block Optional block
34
+ def self . meta ( hash = nil , &block )
35
+ self . _meta =
36
+ if !block . nil?
37
+ block
38
+ else
39
+ hash
40
+ end
41
+ end
42
+
26
43
# @param resource [ActiveRecord::Base, ActiveModelSerializers::Model]
27
44
# @return [ActiveModel::Serializer]
28
45
# Preferentially returns
@@ -128,6 +145,14 @@ def read_attribute_for_serialization(attr)
128
145
end
129
146
end
130
147
148
+ def meta
149
+ if self . class . _meta . respond_to? ( :call )
150
+ instance_eval ( &self . class . _meta )
151
+ else
152
+ self . class . _meta
153
+ end
154
+ end
155
+
131
156
protected
132
157
133
158
attr_accessor :instance_options
Original file line number Diff line number Diff line change @@ -157,6 +157,9 @@ def resource_object_for(serializer)
157
157
links = links_for ( serializer )
158
158
resource_object [ :links ] = links if links . any?
159
159
160
+ meta = serializer . meta
161
+ resource_object [ :meta ] = meta unless meta . nil?
162
+
160
163
resource_object
161
164
end
162
165
You can’t perform that action at this time.
0 commit comments