Class: Sevendigital::Track
- Inherits:
-
SevendigitalObject
- Object
- SevendigitalObject
- Sevendigital::Track
- Defined in:
- lib/sevendigital/model/track.rb
Instance Attribute Summary collapse
-
#artist ⇒ Artist
Artist of the track.
-
#id ⇒ Integer
track id.
-
#release ⇒ Release
release the track appears on.
-
#title ⇒ String
title of the track.
-
#version ⇒ String
version of the track (e.g. remix, radio edit).
Instance Method Summary collapse
-
#alternate_version_of?(another_track) ⇒ Boolean
Compares 2 songs whether they’re just different versions of the same song by the same artist e.g.
-
#duration ⇒ Integer
The length of the track in seconds.
-
#explicit_content ⇒ Boolean
parental advisory - explicit content tag.
-
#get_details(options = {}) ⇒ Track
Retrieves and populates all track properties.
-
#isrc ⇒ String
ISRC code.
-
#preview_url(options = {}) ⇒ String
URL of mp3 preview for this track.
-
#price ⇒ Price
Pricing information of the track.
-
#short_title ⇒ String
Title of the track stripped out of any version information if it’s included the title of the track rather than version property e.g.
-
#track_number ⇒ Integer
Number of the track as it appears on the release.
-
#url ⇒ String
URL link to 7digital page where this track can be purchased.
Methods inherited from SevendigitalObject
#copy_basic_properties_from, #initialize
Constructor Details
This class inherits a constructor from Sevendigital::SevendigitalObject
Instance Attribute Details
#artist ⇒ Artist
Artist of the track
23 24 25 |
# File 'lib/sevendigital/model/track.rb', line 23 def artist @artist end |
#id ⇒ Integer
track id
7 8 9 |
# File 'lib/sevendigital/model/track.rb', line 7 def id @id end |
#release ⇒ Release
release the track appears on
19 20 21 |
# File 'lib/sevendigital/model/track.rb', line 19 def release @release end |
#title ⇒ String
title of the track
11 12 13 |
# File 'lib/sevendigital/model/track.rb', line 11 def title @title end |
#version ⇒ String
version of the track (e.g. remix, radio edit)
15 16 17 |
# File 'lib/sevendigital/model/track.rb', line 15 def version @version end |
Instance Method Details
#alternate_version_of?(another_track) ⇒ Boolean
Compares 2 songs whether they’re just different versions of the same song by the same artist e.g. track “Some Song (Radio Edit)” is alternate version of “Some Song (Remastered)” returns true also if the 2 songs are the same
72 73 74 75 |
# File 'lib/sevendigital/model/track.rb', line 72 def alternate_version_of?(another_track) return another_track && short_title.downcase == another_track.short_title.downcase \ && another_track.artist && artist.name.downcase == another_track.artist.name.downcase end |
#duration ⇒ Integer
The length of the track in seconds
31 |
# File 'lib/sevendigital/model/track.rb', line 31 sevendigital_basic_property :duration |
#explicit_content ⇒ Boolean
parental advisory - explicit content tag
35 |
# File 'lib/sevendigital/model/track.rb', line 35 sevendigital_basic_property :explicit_content |
#get_details(options = {}) ⇒ Track
Retrieves and populates all track properties
useful with lazy loading turned off
54 55 56 57 58 |
# File 'lib/sevendigital/model/track.rb', line 54 def get_details(={}) track_with_details = @api_client.track.get_details_from_release(@id, @release.id, ) copy_basic_properties_from(track_with_details) self end |
#isrc ⇒ String
ISRC code
39 |
# File 'lib/sevendigital/model/track.rb', line 39 sevendigital_basic_property :isrc |
#preview_url(options = {}) ⇒ String
URL of mp3 preview for this track
79 80 81 |
# File 'lib/sevendigital/model/track.rb', line 79 def preview_url(={}) @api_client.track.build_preview_url(@id, ) end |
#price ⇒ Price
Pricing information of the track
47 |
# File 'lib/sevendigital/model/track.rb', line 47 sevendigital_basic_property :price |
#short_title ⇒ String
Title of the track stripped out of any version information if it’s included the title of the track rather than version property e.g. if title is “Some Song (Radio Edit)” it will return “Some Song”
63 64 65 66 |
# File 'lib/sevendigital/model/track.rb', line 63 def short_title # return title.gsub(/\s+[\(\[](album|lp|single|short|edit|radio)\s+version[\)\]]/ , "") return title.gsub(/\s+\(.*\s?(version|mix|remix|edit|edition|live|feat|explicit|original|remaster)\s?.*\)/i, "") end |
#track_number ⇒ Integer
Number of the track as it appears on the release
27 |
# File 'lib/sevendigital/model/track.rb', line 27 sevendigital_basic_property :track_number |
#url ⇒ String
URL link to 7digital page where this track can be purchased
43 |
# File 'lib/sevendigital/model/track.rb', line 43 sevendigital_basic_property :url |