Class: AdequateJson::Base

Inherits:
Object
  • Object
show all
Includes:
Jsonizer, Resolver
Defined in:
lib/adequate_json/base.rb

Direct Known Subclasses

Collection, Error

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Jsonizer

#to_json

Methods included from Resolver

#choose_serializer

Constructor Details

#initialize(model, json = nil, variant: nil, variants: {}) ⇒ Base



8
9
10
11
12
13
# File 'lib/adequate_json/base.rb', line 8

def initialize(model, json = nil, variant: nil, variants: {})
  @model = model
  @variant = variant
  @variants = variants
  @json = json
end

Class Method Details

.builder(variant = nil, &block) ⇒ Object



43
44
45
# File 'lib/adequate_json/base.rb', line 43

def builder(variant = nil, &block)
  builders[variant || :default] = block
end

.buildersObject



47
48
49
# File 'lib/adequate_json/base.rb', line 47

def builders
  @builders ||= {}
end

Instance Method Details

#to_builderObject



15
16
17
18
19
20
21
# File 'lib/adequate_json/base.rb', line 15

def to_builder
  variant = @variant || :default
  builder = self.class.builders[variant]
  raise "Unknown serializer variant #{variant} for #{self.class.name}" if builder.nil?

  yield_builder builder
end