class Spotify::SDK::Model

For each SDK response object (i.e. Device), we have a Model class. We're using OpenStruct.

Attributes

parent[R]

A reference to Spotify::SDK::Connect.

Public Class Methods

hash_selector(hash, selector) click to toggle source
# File lib/spotify/sdk/model.rb, line 61
def hash_selector(hash, selector)
  hash.deep_symbolize_keys!
  segments = selector.split(".")
  hash = hash[segments.shift.try(:to_sym)] while segments.any?
  hash
end
new(payload, parent) click to toggle source

Initialize a new Model instance.

@example

module Spotify
  class SDK
    class User < Model
    end
  end
end

@base = Spotify::SDK::Base.new(@sdk)
@user = Spotify::SDK::User.new({ username: "hi" }, @base)
@user.username # => "hi"

@param [Hash] payload The response payload. @param [Spotify::SDK] parent The SDK object for context.

Calls superclass method
# File lib/spotify/sdk/model.rb, line 27
def initialize(payload, parent)
  @payload = payload
  raise "Expected payload to be of Hash type" unless @payload.instance_of?(Hash)

  @parent = parent
  raise "Expected parent to be of Spotify::SDK::Base type" unless @parent.is_a?(Spotify::SDK::Base)

  super(payload)
end