Class: Spotify::SDK::Initialization

Inherits:
Object
  • Object
show all
Defined in:
lib/spotify/sdk/initialization.rb,
lib/spotify/sdk/initialization/base.rb,
lib/spotify/sdk/initialization/query_hash.rb,
lib/spotify/sdk/initialization/url_string.rb,
lib/spotify/sdk/initialization/plain_string.rb,
lib/spotify/sdk/initialization/query_string.rb,
lib/spotify/sdk/initialization/oauth_access_token.rb

Overview

Spotify::SDK::Initialization deals with parsing input for the following code block ‘Spotify::SDK.new(input)` and extracting the access token, expiry and refresh token.

You’ll never have to interact with this, unless you have other objects you want us to parse the aforementioned variables from.

Defined Under Namespace

Classes: Base, OAuthAccessToken, PlainString, QueryHash, QueryString, URLString

Constant Summary collapse

CLASSES =

This is where you mount new Initialization objects. Don’t worry, we prefix Spotify::SDK::Initialization for you.

See Also:

  • Spotify::SDK::Initialization./lib/spotify/sdk/initialization/url_string/lib/spotify/sdk/initialization/url_string.rb
i[
  OAuthAccessToken
  QueryString
  URLString
  PlainString
  QueryHash
].freeze

Class Method Summary collapse

Class Method Details

.detect(subject) ⇒ Object

Initiate a new Spotify SDK Initialization object

Examples:

begin
  hash = Spotify::SDK::Initialization.detect("access_token")
  puts "Access Token: #{hash[:access_token]}"
  puts "Expires in: #{hash[:expires_in]}"
  puts "Refresh Token: #{hash[:refresh_token]}"
rescue Spotify::Errors::InitializationObjectInvalidError => e
  puts "Can't recognise the input because: #{e.inspect}"
end

Parameters:

  • subject (String, Hash, OAuth2::AccessToken)

    An instance of Spotify::SDK as a reference point.



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/spotify/sdk/initialization.rb', line 44

def detect(subject)
  klasses = CLASSES.map do |klass_name|
    ("Spotify::SDK::Initialization::%s" % klass_name).constantize.new(subject)
  end

  matches = klasses.select(&:should_perform?)

  case matches.size
  when 1
    matches.first.perform
  when 0
    raise Spotify::Errors::InitializationObjectInvalidError.new
  else
    raise Spotify::Errors::InitializationObjectDuplicationError.new
  end
end