Method: Blueprinter::Base.transform

Defined in:
lib/blueprinter/base.rb

.transform(transformer) ⇒ Array<Class>

Specify one transformer to be included for serialization. Takes a class which extends Blueprinter::Transformer

Examples:

Specifying a DynamicFieldTransformer transformer for including dynamic fields to be serialized.

class User 
  def custom_columns
    self.dynamic_fields # which is an array of some columns
  end

  def custom_fields
    custom_columns.each_with_object({}) { |col,result| result[col] = self.send(col) }
  end
end

class UserBlueprint < Blueprinter::Base
  fields :first_name, :last_name
  transform DynamicFieldTransformer  
  # other code
end

class DynamicFieldTransformer < Blueprinter::Transformer
  def transform(hash, object, options)
    hash.merge!(object.dynamic_fields)
  end
end

Parameters:

  • class

    name [Class] which implements the method transform to include for serialization.

Returns:

  • (Array<Class>)

    an array of transformers



311
312
313
# File 'lib/blueprinter/base.rb', line 311

def self.transform(transformer)
  current_view.add_transformer(transformer)
end