Module: Serega::SeregaPlugins::ExplicitManyOption

Defined in:
lib/serega/plugins/explicit_many_option/explicit_many_option.rb,
lib/serega/plugins/explicit_many_option/validations/check_opt_many.rb

Overview

Plugin :explicit_many_option

Plugin requires to add :many option when adding relationships (relationships are attributes with :serializer option specified)

Adding this plugin makes it clearer to find if relationship returns array or single object

Examples:

class BaseSerializer < Serega
  plugin :explicit_many_option
end

class UserSerializer < BaseSerializer
  attribute :name
end

class PostSerializer < BaseSerializer
  attribute :text
  attribute :user, serializer: UserSerializer, many: false
  attribute :comments, serializer: PostSerializer, many: true
end

Defined Under Namespace

Modules: CheckAttributeParamsInstanceMethods Classes: CheckOptMany

Class Method Summary collapse

Class Method Details

.load_plugin(serializer_class, **_opts) ⇒ void

This method returns an undefined value.

Applies plugin code to specific serializer

Parameters:

  • serializer_class (Class<Serega>)

    Current serializer class

  • _opts (Hash)

    Plugin options



42
43
44
45
46
# File 'lib/serega/plugins/explicit_many_option/explicit_many_option.rb', line 42

def self.load_plugin(serializer_class, **_opts)
  require_relative "validations/check_opt_many"

  serializer_class::CheckAttributeParams.include(CheckAttributeParamsInstanceMethods)
end

.plugin_nameSymbol

Returns Plugin name.

Returns:

  • (Symbol)

    Plugin name



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

def self.plugin_name
  :explicit_many_option
end