Class: Sevendigital::Artist

Inherits:
SevendigitalObject show all
Defined in:
lib/sevendigital/model/artist.rb

Overview

Extended properties

with lazy loading enabled these will be automatically populated by calling the method in brackets additional options can be passed in when accessing lazy loaded properties, e.g.

artist.releases({:page_size => 5, :image_size =>250})

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from SevendigitalObject

#copy_basic_properties_from, #initialize

Constructor Details

This class inherits a constructor from Sevendigital::SevendigitalObject

Instance Attribute Details

#appears_asString

Artist’s name as it appears on the release or track (only available when artist is linked from release or track)

Returns:

  • (String)


21
22
23
# File 'lib/sevendigital/model/artist.rb', line 21

def appears_as
  @appears_as
end

#idInteger

7digital artist ID

Returns:

  • (Integer)


13
14
15
# File 'lib/sevendigital/model/artist.rb', line 13

def id
  @id
end

#nameString

artist’s name

Returns:

  • (String)


17
18
19
# File 'lib/sevendigital/model/artist.rb', line 17

def name
  @name
end

Instance Method Details

#get_details(options = {}) ⇒ Artist

populates all available details on artist by calling artist/details API method

Returns:



62
63
64
65
66
# File 'lib/sevendigital/model/artist.rb', line 62

def get_details(options={})
  artist_with_details = @api_client.artist.get_details(@id, options)
  copy_basic_properties_from(artist_with_details)
  artist_with_details
end

#get_releases(options = {}) ⇒ Array<Release>

releases by this artist retrieved by calling artist/releases API method

Returns:



70
71
72
# File 'lib/sevendigital/model/artist.rb', line 70

def get_releases(options={})
  @api_client.artist.get_releases(@id, options)
end

#get_similar(options = {}) ⇒ Array<Track>

artists similar to this artist retrieved by calling artist/similar API method

Returns:



82
83
84
# File 'lib/sevendigital/model/artist.rb', line 82

def get_similar(options={})
  @similar = @api_client.artist.get_similar(@id, options)
end

#get_tags(options = {}) ⇒ Array<Tag>

tags associated with this artist retrieved by calling artist/tags API method

Returns:



88
89
90
# File 'lib/sevendigital/model/artist.rb', line 88

def get_tags(options={})
  @api_client.artist.get_tags(@id, options)
end

#get_top_tracks(options = {}) ⇒ Array<Track>

top tracks by this artist retrieved by calling artist/topTracks API method

Returns:



76
77
78
# File 'lib/sevendigital/model/artist.rb', line 76

def get_top_tracks(options={})
  @api_client.artist.get_top_tracks(@id, options)
end

#image(image_size = nil) ⇒ String

Artist image URL (optional lazy-loaded property)

Returns:

  • (String)


29
# File 'lib/sevendigital/model/artist.rb', line 29

sevendigital_basic_property :image

#popularitydecimal

popularity of the artist (lazy loaded using #get_tags)

Returns:

  • (decimal)

    similar



37
# File 'lib/sevendigital/model/artist.rb', line 37

sevendigital_basic_property :popularity

#releasesArray<Release>

artist’s releases (lazy loaded using get_releases)

Returns:



41
# File 'lib/sevendigital/model/artist.rb', line 41

sevendigital_extended_property :releases

#similarArray<Artist>

list of artists similar to this artist (lazy loaded using #get_similar)

Returns:



49
# File 'lib/sevendigital/model/artist.rb', line 49

sevendigital_extended_property :similar

#sort_nameString

Artist name used for sorting, e.g. Beatles, The (optional lazy-loaded property)

Returns:

  • (String)


25
# File 'lib/sevendigital/model/artist.rb', line 25

sevendigital_basic_property :sort_name

#tagsArray<Artist>

list of tags associated with the artist (lazy loaded using #get_tags)

Returns:



53
# File 'lib/sevendigital/model/artist.rb', line 53

sevendigital_extended_property :tags

#top_tracksArray<Track>

artist’s top tracks (lazy loaded using get_top_tracks)

Returns:



45
# File 'lib/sevendigital/model/artist.rb', line 45

sevendigital_extended_property :top_tracks

#urlString

Artist buy link URL (optional lazy-loaded property)

Returns:

  • (String)


33
# File 'lib/sevendigital/model/artist.rb', line 33

sevendigital_basic_property :url

#various?Boolean

does this artist represents various artists?

Returns:

  • (Boolean)


94
95
96
97
98
99
100
101
# File 'lib/sevendigital/model/artist.rb', line 94

def various?
  joined_names = "#{name} #{appears_as}".downcase

  various_variations = ["vario", "v???????????????rio", "v.a", "vaious", "varios" "vaious", "varoius", "variuos", \
                        "soundtrack", "karaoke", "original cast", "diverse artist"]
  various_variations.each{|various_variation| return true if joined_names.include?(various_variation)}
  return false
end