Module: Serega::SeregaPlanPoint::InstanceMethods

Included in:
Serega::SeregaPlanPoint
Defined in:
lib/serega/plan_point.rb

Overview

SeregaPlanPoint instance methods

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#attributeSeregaAttribute (readonly)

Shows current attribute

Returns:



18
19
20
# File 'lib/serega/plan_point.rb', line 18

def attribute
  @attribute
end

#child_planSeregaPlan? (readonly)

Shows child plan if exists

Returns:

  • (SeregaPlan, nil)

    Attribute serialization plan



22
23
24
# File 'lib/serega/plan_point.rb', line 22

def child_plan
  @child_plan
end

#modifiersHash (readonly)

Child fields to serialize

Returns:

  • (Hash)

    Attributes to serialize



26
27
28
# File 'lib/serega/plan_point.rb', line 26

def modifiers
  @modifiers
end

#planSeregaAttribute (readonly)

Link to current plan this point belongs to

Returns:



14
15
16
# File 'lib/serega/plan_point.rb', line 14

def plan
  @plan
end

#preloadsHash (readonly)

Shows preloads for nested attributes

Returns:

  • (Hash)

    preloads for nested attributes



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

def preloads
  @preloads
end

#preloads_pathArray<Symbol>? (readonly)

Shows preloads_path for current attribute

Returns:

  • (Array<Symbol>, nil)

    preloads path for current attribute



34
35
36
# File 'lib/serega/plan_point.rb', line 34

def preloads_path
  @preloads_path
end

Instance Method Details

#batch?Boolean

Returns:

  • (Boolean)


79
80
81
# File 'lib/serega/plan_point.rb', line 79

def batch?
  !attribute.batch_loaders.empty?
end

#batch_loadersObject

Attribute ‘batch_loaders`



85
86
87
# File 'lib/serega/plan_point.rb', line 85

def batch_loaders
  attribute.batch_loaders
end

#child_object_serializerSeregaObjectSerializer

Returns object serializer for child plan.

Returns:



92
93
94
# File 'lib/serega/plan_point.rb', line 92

def child_object_serializer
  serializer::SeregaObjectSerializer
end

#initialize(plan, attribute, modifiers = nil) ⇒ SeregaPlanPoint

Initializes plan point

Parameters:

  • plan (SeregaPlan)

    Current plan this point belongs to

  • attribute (SeregaAttribute)

    Attribute to construct plan point

  • modifiers (defaults to: nil)

    Serialization parameters

Options Hash (modifiers):

  • :only (Hash)

    The only attributes to serialize

  • :except (Hash)

    Attributes to hide

  • :with (Hash)

    Hidden attributes to serialize additionally

Returns:



48
49
50
51
52
53
# File 'lib/serega/plan_point.rb', line 48

def initialize(plan, attribute, modifiers = nil)
  @plan = plan
  @attribute = attribute
  @modifiers = modifiers
  set_normalized_vars
end

#manyObject

Attribute ‘many` option



69
70
71
# File 'lib/serega/plan_point.rb', line 69

def many
  attribute.many
end

#nameObject

Attribute ‘name`



63
64
65
# File 'lib/serega/plan_point.rb', line 63

def name
  attribute.name
end

#serializerObject

Attribute ‘serializer` option



75
76
77
# File 'lib/serega/plan_point.rb', line 75

def serializer
  attribute.serializer
end

#value(obj, ctx, batches: nil) ⇒ Object

Attribute ‘value`



57
58
59
# File 'lib/serega/plan_point.rb', line 57

def value(obj, ctx, batches: nil)
  attribute.value(obj, ctx, batches: batches)
end