Class: ITunes::Track
- Inherits:
-
Object
- Object
- ITunes::Track
- Defined in:
- lib/itunes/track.rb
Instance Method Summary collapse
- #[](key) ⇒ Object
- #album ⇒ Object
- #artist ⇒ Object
- #artwork_count ⇒ Object
- #audio? ⇒ Boolean
- #audiobook? ⇒ Boolean
- #bit_rate ⇒ Object
- #composer ⇒ Object
- #date_added ⇒ Object
- #episode_number ⇒ Object
- #genre ⇒ Object
- #id ⇒ Object
-
#initialize(library, properties) ⇒ Track
constructor
A new instance of Track.
- #inspect ⇒ Object
- #kind ⇒ Object
- #last_played_at ⇒ Object
- #location ⇒ Object
- #location_path ⇒ Object
- #movie? ⇒ Boolean
- #name ⇒ Object
- #number ⇒ Object
- #persistent_id ⇒ Object
- #play_count ⇒ Object
- #played? ⇒ Boolean
- #podcast? ⇒ Boolean
- #sample_rate ⇒ Object
- #season_number ⇒ Object
- #to_hash ⇒ Object
- #total_time ⇒ Object
- #tv_show? ⇒ Boolean
- #unplayed? ⇒ Boolean
- #video? ⇒ Boolean
- #year ⇒ Object
Constructor Details
#initialize(library, properties) ⇒ Track
Returns a new instance of Track.
3 4 5 6 |
# File 'lib/itunes/track.rb', line 3 def initialize(library, properties) @library = library @properties = properties end |
Instance Method Details
#[](key) ⇒ Object
12 13 14 |
# File 'lib/itunes/track.rb', line 12 def [](key) @properties[key] end |
#album ⇒ Object
32 33 34 |
# File 'lib/itunes/track.rb', line 32 def album self['Album'] end |
#artist ⇒ Object
28 29 30 |
# File 'lib/itunes/track.rb', line 28 def artist self['Artist'] end |
#artwork_count ⇒ Object
88 89 90 |
# File 'lib/itunes/track.rb', line 88 def artwork_count self['Artwork Count'] end |
#audio? ⇒ Boolean
101 102 103 |
# File 'lib/itunes/track.rb', line 101 def audio? !video? end |
#audiobook? ⇒ Boolean
121 122 123 |
# File 'lib/itunes/track.rb', line 121 def audiobook? kind =~ /Audible/ ? true : false end |
#bit_rate ⇒ Object
80 81 82 |
# File 'lib/itunes/track.rb', line 80 def bit_rate self['Bit Rate'] end |
#composer ⇒ Object
48 49 50 |
# File 'lib/itunes/track.rb', line 48 def composer self['Composer'] end |
#date_added ⇒ Object
60 61 62 |
# File 'lib/itunes/track.rb', line 60 def date_added self['Date Added'] end |
#episode_number ⇒ Object
56 57 58 |
# File 'lib/itunes/track.rb', line 56 def episode_number self['Episode Order'] end |
#genre ⇒ Object
40 41 42 |
# File 'lib/itunes/track.rb', line 40 def genre self['Genre'] end |
#id ⇒ Object
16 17 18 |
# File 'lib/itunes/track.rb', line 16 def id self['Track ID'] end |
#inspect ⇒ Object
133 134 135 |
# File 'lib/itunes/track.rb', line 133 def inspect "#<#{self.class.name} name=#{name.inspect}>" end |
#kind ⇒ Object
76 77 78 |
# File 'lib/itunes/track.rb', line 76 def kind self['Kind'] end |
#last_played_at ⇒ Object
64 65 66 |
# File 'lib/itunes/track.rb', line 64 def last_played_at self['Play Date UTC'] end |
#location ⇒ Object
92 93 94 |
# File 'lib/itunes/track.rb', line 92 def location self['Location'] end |
#location_path ⇒ Object
96 97 98 99 |
# File 'lib/itunes/track.rb', line 96 def location_path return nil unless location uri_parser.unescape(location).gsub('file://localhost', '') end |
#movie? ⇒ Boolean
109 110 111 |
# File 'lib/itunes/track.rb', line 109 def movie? self['Movie'] || false end |
#name ⇒ Object
24 25 26 |
# File 'lib/itunes/track.rb', line 24 def name self['Name'] end |
#number ⇒ Object
36 37 38 |
# File 'lib/itunes/track.rb', line 36 def number self['Track Number'] end |
#persistent_id ⇒ Object
20 21 22 |
# File 'lib/itunes/track.rb', line 20 def persistent_id self['Persistent ID'] end |
#play_count ⇒ Object
68 69 70 |
# File 'lib/itunes/track.rb', line 68 def play_count self['Play Count'] || 0 end |
#played? ⇒ Boolean
129 130 131 |
# File 'lib/itunes/track.rb', line 129 def played? !unplayed? end |
#podcast? ⇒ Boolean
117 118 119 |
# File 'lib/itunes/track.rb', line 117 def podcast? self['Podcast'] || false end |
#sample_rate ⇒ Object
84 85 86 |
# File 'lib/itunes/track.rb', line 84 def sample_rate self['Sample Rate'] end |
#season_number ⇒ Object
52 53 54 |
# File 'lib/itunes/track.rb', line 52 def season_number self['Season'] end |
#to_hash ⇒ Object
8 9 10 |
# File 'lib/itunes/track.rb', line 8 def to_hash @properties end |
#total_time ⇒ Object
72 73 74 |
# File 'lib/itunes/track.rb', line 72 def total_time self['Total Time'] / 1000 end |
#tv_show? ⇒ Boolean
113 114 115 |
# File 'lib/itunes/track.rb', line 113 def tv_show? self['TV Show'] || false end |
#unplayed? ⇒ Boolean
125 126 127 |
# File 'lib/itunes/track.rb', line 125 def unplayed? self['Unplayed'] == true || play_count == 0 end |
#video? ⇒ Boolean
105 106 107 |
# File 'lib/itunes/track.rb', line 105 def video? self['Has Video'] || false end |
#year ⇒ Object
44 45 46 |
# File 'lib/itunes/track.rb', line 44 def year self['Year'] end |