Class: Houston::Extensions::Serializers

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/houston/boot/extensions/serializers.rb

Instance Method Summary collapse

Methods included from Enumerable

#parallel

Constructor Details

#initializeSerializers

Returns a new instance of Serializers.



8
9
10
# File 'lib/houston/boot/extensions/serializers.rb', line 8

def initialize
  @serializers = Concurrent::Array.new
end

Instance Method Details

#add(serializer) ⇒ Object Also known as: <<



16
17
18
19
20
21
22
23
24
25
# File 'lib/houston/boot/extensions/serializers.rb', line 16

def add(serializer)
  serializer = serializer.new if serializer.is_a?(Class)

  [:applies_to?, :pack].each do |method|
    next if serializer.respond_to?(method)
    raise ArgumentError, "`serializer` must respond to `#{method}`"
  end

  @serializers.push serializer
end

#each(&block) ⇒ Object



12
13
14
# File 'lib/houston/boot/extensions/serializers.rb', line 12

def each(&block)
  @serializers.each(&block)
end