Module: Serega::SeregaPlugins::Metadata
- Defined in:
- lib/serega/plugins/metadata/metadata.rb,
lib/serega/plugins/metadata/meta_attribute.rb,
lib/serega/plugins/metadata/validations/check_opts.rb,
lib/serega/plugins/metadata/validations/check_path.rb,
lib/serega/plugins/metadata/validations/check_block.rb,
lib/serega/plugins/metadata/validations/check_opt_hide_nil.rb,
lib/serega/plugins/metadata/validations/check_opt_hide_empty.rb
Defined Under Namespace
Modules: ClassMethods, ConfigInstanceMethods, SeregaSerializerInstanceMethods
Classes: MetaAttribute, MetadataConfig
Class Method Summary
collapse
Class Method Details
.after_load_plugin(serializer_class, **_opts) ⇒ Object
37
38
39
|
# File 'lib/serega/plugins/metadata/metadata.rb', line 37
def self.after_load_plugin(serializer_class, **_opts)
serializer_class.config.opts[:metadata] = {attribute_keys: %i[path hide_nil hide_empty]}
end
|
.before_load_plugin(serializer_class, **opts) ⇒ Object
10
11
12
13
14
15
16
17
18
|
# File 'lib/serega/plugins/metadata/metadata.rb', line 10
def self.before_load_plugin(serializer_class, **opts)
if serializer_class.plugin_used?(:root)
root = serializer_class.config.root
root.one = opts[:root_one] if opts.key?(:root_one)
root.many = opts[:root_many] if opts.key?(:root_many)
else
serializer_class.plugin(:root, **opts)
end
end
|
.load_plugin(serializer_class, **_opts) ⇒ Object
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/serega/plugins/metadata/metadata.rb', line 20
def self.load_plugin(serializer_class, **_opts)
serializer_class.extend(ClassMethods)
serializer_class::SeregaConfig.include(ConfigInstanceMethods)
serializer_class::SeregaSerializer.include(SeregaSerializerInstanceMethods)
require_relative "./meta_attribute"
require_relative "./validations/check_block"
require_relative "./validations/check_opt_hide_nil"
require_relative "./validations/check_opt_hide_empty"
require_relative "./validations/check_opts"
require_relative "./validations/check_path"
meta_attribute_class = Class.new(MetaAttribute)
meta_attribute_class.serializer_class = serializer_class
serializer_class.const_set(:MetaAttribute, meta_attribute_class)
end
|
.plugin_name ⇒ Object
6
7
8
|
# File 'lib/serega/plugins/metadata/metadata.rb', line 6
def self.plugin_name
:metadata
end
|