Method: Serial::HashBuilder#merge

Defined in:
lib/serial/hash_builder.rb

#merge(value) {|builder, value| ... } ⇒ Object

Merge another serializer into the current serialization.

Examples:

ExtendedProjectSerializer = Serial::Serializer.new do |h, project|
  h.merge(project, &ProjectSerializer)
  h.attribute(:extra, project.extra_info)
end # => { "name" => …, …, "extra" => … }

Parameters:

  • value

Yields:

  • (builder, value)

    to another serializer

Yield Parameters:

Raises:



133
134
135
136
137
# File 'lib/serial/hash_builder.rb', line 133

def merge(value, &serializer)
  hash = HashBuilder.build(@context, value, &serializer)
  hash.keys.each { |key| check_duplicate_key!(key) }
  @data.merge!(hash)
end