Module: Spotify::TypeSafety

Included in:
ManagedPointer, Struct
Defined in:
lib/spotify/data_converters/type_safety.rb

Overview

Spotify::TypeSafety checks all values coming in and makes sure they are of an instance of the correct #type_class.

Instance Method Summary collapse

Instance Method Details

#to_native(value, ctx) ⇒ Object

Note:

Calls super-implementation if type is safe.

Convert given value to native value, with type checking.

Parameters:

  • value
  • ctx

Raises:

  • (TypeError)

    if value is not of the same kind as #type_class.



12
13
14
15
16
17
18
# File 'lib/spotify/data_converters/type_safety.rb', line 12

def to_native(value, ctx)
  if value.kind_of?(type_class)
    super
  else
    raise TypeError, "expected a kind of #{name}, was #{value.class}"
  end
end

#type_classObject

Retrieve the type that all objects going into to_native must be of.

Returns:

  • self by default



23
24
25
# File 'lib/spotify/data_converters/type_safety.rb', line 23

def type_class
  self
end