class ActiveSerializer::Serializers::RestrictFieldsObjectSerializer

Public Class Methods

new(object, options) click to toggle source
# File lib/active_serializer/serializers/restrict_fields_object_serializer.rb, line 2
def initialize(object, options)
  raise ArgumentError, 'serializable_fields should be specified' unless options[:serializable_fields]
  super
  @serializable_fields = options[:serializable_fields].keys
end

Public Instance Methods

attribute(name, val = nil, &block) click to toggle source
# File lib/active_serializer/serializers/restrict_fields_object_serializer.rb, line 16
def attribute(name, val = nil, &block)
  super if @serializable_fields.include?(name)
end
resource(name, object = nil, &block) click to toggle source
# File lib/active_serializer/serializers/restrict_fields_object_serializer.rb, line 8
def resource(name, object = nil, &block)
  super if @serializable_fields.include?(name)
end
resources(name, objects = nil, &block) click to toggle source
# File lib/active_serializer/serializers/restrict_fields_object_serializer.rb, line 12
def resources(name, objects = nil, &block)
  super if @serializable_fields.include?(name)
end

Protected Instance Methods

nested_resource(name, object, root_options, serializer_class = self.class, &block) click to toggle source
# File lib/active_serializer/serializers/restrict_fields_object_serializer.rb, line 26
def nested_resource(name, object, root_options, serializer_class = self.class, &block)
  options = root_options.dup
  serializable_fields = root_options[:serializable_fields][name]
  if !serializable_fields
    return
  elsif serializable_fields == true
    super(name, object, options, ActiveSerializer::Serializers::ObjectSerializer, &block)
  elsif serializable_fields.is_a?(Hash)
    options[:serializable_fields] = serializable_fields
    super(name, object, options, &block)
  else
    raise ArgumentError, "serializable_fields' values should be boolean or hash"
  end
end
serialize_attribute(attribute, target) click to toggle source
# File lib/active_serializer/serializers/restrict_fields_object_serializer.rb, line 22
def serialize_attribute(attribute, target)
  super if @serializable_fields.include?(attribute)
end