Class: ApiSerializer::VariantBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/api_serializer/variant_builder.rb

Instance Method Summary collapse

Constructor Details

#initialize(name:, schema:, type: :serializer, abstract: false, parent: nil, mixins: []) ⇒ VariantBuilder

Returns a new instance of VariantBuilder.



3
4
5
6
7
8
9
10
# File 'lib/api_serializer/variant_builder.rb', line 3

def initialize(name:, schema:, type: :serializer, abstract: false, parent: nil, mixins: [])
  @type = type
  @abstract = abstract
  @schema = schema
  @parent = parent
  @variant_name = name
  @mixins = mixins
end

Instance Method Details

#buildObject



12
13
14
15
16
17
18
19
20
# File 'lib/api_serializer/variant_builder.rb', line 12

def build(&)
  create_serialization_variant
  define_variant_name_method
  schema_description_and_name
  define_composed_with
  apply_mixins
  setup_attributes(&)
  determine_class_of_variant.new(name: @variant_name, serialization: @serialization_variant, inherits: @parent)
end