Module: OpenapiBlocks::Serializer::ClassMethods

Defined in:
lib/openapi_blocks/serializer.rb

Overview

rubocop:disable Metrics/ModuleLength,Style/Documentation

Instance Method Summary collapse

Instance Method Details

#compiled_extractorObject



27
28
29
# File 'lib/openapi_blocks/serializer.rb', line 27

def compiled_extractor
  @compiled_extractor ||= build_compiled_extractor
end

#fieldsObject



23
24
25
# File 'lib/openapi_blocks/serializer.rb', line 23

def fields
  @fields ||= resolve_fields
end

#serialize(resource, instance: nil) ⇒ Object

rubocop:disable Lint/UnusedMethodArgument



10
11
12
13
14
15
16
17
# File 'lib/openapi_blocks/serializer.rb', line 10

def serialize(resource, instance: nil) # rubocop:disable Lint/UnusedMethodArgument
  extractor = compiled_extractor
  if resource.respond_to?(:each)
    resource.map { |r| extractor.call(r) }
  else
    extractor.call(resource)
  end
end

#to_json(resource) ⇒ Object



19
20
21
# File 'lib/openapi_blocks/serializer.rb', line 19

def to_json(resource)
  Oj.dump(serialize(resource), mode: :compat)
end