Module: Serega::SeregaAttributeNormalizer::AttributeNormalizerInstanceMethods

Included in:
Serega::SeregaAttributeNormalizer
Defined in:
lib/serega/attribute_normalizer.rb

Overview

AttributeNormalizer instance methods

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#init_blockHash (readonly)

Attribute initial params

Returns:

  • (Hash)

    Attribute initial params



16
17
18
# File 'lib/serega/attribute_normalizer.rb', line 16

def init_block
  @init_block
end

#init_nameHash (readonly)

Attribute initial params

Returns:

  • (Hash)

    Attribute initial params



16
17
18
# File 'lib/serega/attribute_normalizer.rb', line 16

def init_name
  @init_name
end

#init_optsHash (readonly)

Attribute initial params

Returns:

  • (Hash)

    Attribute initial params



16
17
18
# File 'lib/serega/attribute_normalizer.rb', line 16

def init_opts
  @init_opts
end

Instance Method Details

#batch_loadersArray<Symbol>

Shows specified batch loaders names

Returns:

  • (Array<Symbol>)

    specified serializer



127
128
129
# File 'lib/serega/attribute_normalizer.rb', line 127

def batch_loaders
  @batch_loaders ||= prepare_batch_loaders
end

#defaultObject

Shows the default attribute value. It is a value that replaces found nils.

When custom :default is not specified, we set empty array as default when many: true specified

Returns:

  • (Object)

    Attribute default value



107
108
109
110
111
# File 'lib/serega/attribute_normalizer.rb', line 107

def default
  return @default if instance_variable_defined?(:@default)

  @default = prepare_default
end

#hideBoolean?

Shows if attribute is specified to be hidden

Returns:

  • (Boolean, nil)

    if attribute must be hidden by default



73
74
75
76
77
# File 'lib/serega/attribute_normalizer.rb', line 73

def hide
  return @hide if instance_variable_defined?(:@hide)

  @hide = prepare_hide
end

#initialize(initials) ⇒ SeregaAttributeNormalizer

Instantiates attribute options normalizer

Parameters:

  • initials (Hash)

    new attribute options

Returns:



25
26
27
28
29
# File 'lib/serega/attribute_normalizer.rb', line 25

def initialize(initials)
  @init_name = initials[:name]
  @init_opts = initials[:opts]
  @init_block = initials[:block]
end

#manyBoolean?

Shows if attribute is specified to be a one-to-many relationship

Returns:

  • (Boolean, nil)

    if attribute is specified to be a one-to-many relationship



84
85
86
87
88
# File 'lib/serega/attribute_normalizer.rb', line 84

def many
  return @many if instance_variable_defined?(:@many)

  @many = prepare_many
end

#method_nameSymbol

Symbolized initial attribute method name

Returns:

  • (Symbol)

    Attribute normalized method name



45
46
47
# File 'lib/serega/attribute_normalizer.rb', line 45

def method_name
  @method_name ||= prepare_method_name
end

#nameSymbol

Symbolized initial attribute name

Returns:

  • (Symbol)

    Attribute normalized name



36
37
38
# File 'lib/serega/attribute_normalizer.rb', line 36

def name
  @name ||= prepare_name
end

#preloadsObject?

Preloads declared for this attribute, passed through as provided.

Returns:

  • (Object, nil)

    declared preloads, or nil when the attribute has none



118
119
120
121
122
# File 'lib/serega/attribute_normalizer.rb', line 118

def preloads
  return @preloads if instance_variable_defined?(:@preloads)

  @preloads = prepare_preloads
end

#serializerSerega, ...

Shows specified attribute serializer

Returns:

  • (Serega, String, #callable, nil)

    specified serializer



94
95
96
97
98
# File 'lib/serega/attribute_normalizer.rb', line 94

def serializer
  return @serializer if instance_variable_defined?(:@serializer)

  @serializer = prepare_serializer
end

#value_block#call

Combines all options to return single block that will be used to find attribute value during serialization

Returns:

  • (#call)

    Attribute normalized callable value block



55
56
57
# File 'lib/serega/attribute_normalizer.rb', line 55

def value_block
  @value_block ||= prepare_value_block
end

#value_block_signatureString

Detects value block parameters signature

Returns:

  • (String)

    value block parameters signature



64
65
66
# File 'lib/serega/attribute_normalizer.rb', line 64

def value_block_signature
  @value_block_signature ||= SeregaUtils::MethodSignature.call(value_block, pos_limit: 2, keyword_args: [:ctx])
end