class FastSerializer::JsonModel::Relationship

Attributes

serialization_schema[RW]

Public Class Methods

new(serializer: nil, schema: nil, **) click to toggle source

@param serializer [FastSerializer::Schema::Mixin] @param schema [FastSerializer::Schema]

# File lib/fast_serializer/json_model/relationship.rb, line 10
def initialize(serializer: nil, schema: nil, **)
  super

  @serializer_klass = serializer
  @schema = schema

  if @serializer_klass.nil? && @schema.nil?
    raise ArgumentError, 'must provide serializer or schema'
  end
end

Public Instance Methods

exclude?(params) click to toggle source

@param params [Hash] @return [Boolean]

# File lib/fast_serializer/json_model/relationship.rb, line 37
def exclude?(params)
  return false if params[:exclude].nil?
  return false if params[:exclude].empty?

  params[:exclude_index].key?(key)
end
include?(params) click to toggle source

@param params [Hash] @return [Boolean]

# File lib/fast_serializer/json_model/relationship.rb, line 46
def include?(params)
  return true if params[:include].nil?
  return false if params[:include].empty?

  params[:include_index].key?(key)
end
include_relation?(params) click to toggle source

@param params [Hash] @return [Boolean]

# File lib/fast_serializer/json_model/relationship.rb, line 31
def include_relation?(params)
  include?(params) && !exclude?(params)
end
included?(resource, params, context) click to toggle source

@param resource [Object] @param params [Hash] @param context [Hash] @return [Boolean]

# File lib/fast_serializer/json_model/relationship.rb, line 25
def included?(resource, params, context)
  super && include_relation?(params)
end