Module: Serega::Plugins::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, ConvertInstanceMethods Classes: MetaAttribute

Class Method Summary collapse

Class Method Details

.after_load_plugin(serializer_class, **_opts) ⇒ Object



30
31
32
# File 'lib/serega/plugins/metadata/metadata.rb', line 30

def self.after_load_plugin(serializer_class, **_opts)
  serializer_class.config[plugin_name] = {attribute_keys: %i[path hide_nil hide_empty]}
end

.before_load_plugin(serializer_class, **opts) ⇒ Object



10
11
12
# File 'lib/serega/plugins/metadata/metadata.rb', line 10

def self.before_load_plugin(serializer_class, **opts)
  serializer_class.plugin(:root, **opts) unless serializer_class.plugin_used?(:root)
end

.load_plugin(serializer_class, **_opts) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/serega/plugins/metadata/metadata.rb', line 14

def self.load_plugin(serializer_class, **_opts)
  serializer_class.extend(ClassMethods)
  serializer_class::Convert.include(ConvertInstanceMethods)

  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_nameObject



6
7
8
# File 'lib/serega/plugins/metadata/metadata.rb', line 6

def self.plugin_name
  :metadata
end