Class: ITunes::Track

Inherits:
Object
  • Object
show all
Defined in:
lib/itunes/track.rb

Instance Method Summary collapse

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

#albumObject



32
33
34
# File 'lib/itunes/track.rb', line 32

def album
  self['Album']
end

#artistObject



28
29
30
# File 'lib/itunes/track.rb', line 28

def artist
  self['Artist']
end

#artwork_countObject



88
89
90
# File 'lib/itunes/track.rb', line 88

def artwork_count
  self['Artwork Count']
end

#audio?Boolean

Returns:

  • (Boolean)


100
101
102
# File 'lib/itunes/track.rb', line 100

def audio?
  !video?
end

#audiobook?Boolean

Returns:

  • (Boolean)


120
121
122
# File 'lib/itunes/track.rb', line 120

def audiobook?
  kind =~ /Audible/ ? true : false
end

#bit_rateObject



80
81
82
# File 'lib/itunes/track.rb', line 80

def bit_rate
  self['Bit Rate']
end

#composerObject



48
49
50
# File 'lib/itunes/track.rb', line 48

def composer
  self['Composer']
end

#date_addedObject



60
61
62
# File 'lib/itunes/track.rb', line 60

def date_added
  self['Date Added']
end

#episode_numberObject



56
57
58
# File 'lib/itunes/track.rb', line 56

def episode_number
  self['Episode Order']
end

#genreObject



40
41
42
# File 'lib/itunes/track.rb', line 40

def genre
  self['Genre']
end

#idObject



16
17
18
# File 'lib/itunes/track.rb', line 16

def id
  self['Track ID']
end

#inspectObject



132
133
134
# File 'lib/itunes/track.rb', line 132

def inspect
  "#<#{self.class.name} name=#{name.inspect}>"
end

#kindObject



76
77
78
# File 'lib/itunes/track.rb', line 76

def kind
  self['Kind']
end

#last_played_atObject



64
65
66
# File 'lib/itunes/track.rb', line 64

def last_played_at
  self['Play Date UTC']
end

#locationObject



92
93
94
# File 'lib/itunes/track.rb', line 92

def location
  self['Location']
end

#location_pathObject



96
97
98
# File 'lib/itunes/track.rb', line 96

def location_path
  uri_parser.unescape(location).gsub('file://localhost', '')
end

#movie?Boolean

Returns:

  • (Boolean)


108
109
110
# File 'lib/itunes/track.rb', line 108

def movie?
  self['Movie'] || false
end

#nameObject



24
25
26
# File 'lib/itunes/track.rb', line 24

def name
  self['Name']
end

#numberObject



36
37
38
# File 'lib/itunes/track.rb', line 36

def number
  self['Track Number']
end

#persistent_idObject



20
21
22
# File 'lib/itunes/track.rb', line 20

def persistent_id
  self['Persistent ID']
end

#play_countObject



68
69
70
# File 'lib/itunes/track.rb', line 68

def play_count
  self['Play Count'] || 0
end

#played?Boolean

Returns:

  • (Boolean)


128
129
130
# File 'lib/itunes/track.rb', line 128

def played?
  !unplayed?
end

#podcast?Boolean

Returns:

  • (Boolean)


116
117
118
# File 'lib/itunes/track.rb', line 116

def podcast?
  self['Podcast'] || false
end

#sample_rateObject



84
85
86
# File 'lib/itunes/track.rb', line 84

def sample_rate
  self['Sample Rate']
end

#season_numberObject



52
53
54
# File 'lib/itunes/track.rb', line 52

def season_number
  self['Season']
end

#to_hashObject



8
9
10
# File 'lib/itunes/track.rb', line 8

def to_hash
  @properties
end

#total_timeObject



72
73
74
# File 'lib/itunes/track.rb', line 72

def total_time
  self['Total Time'] / 1000
end

#tv_show?Boolean

Returns:

  • (Boolean)


112
113
114
# File 'lib/itunes/track.rb', line 112

def tv_show?
  self['TV Show'] || false
end

#unplayed?Boolean

Returns:

  • (Boolean)


124
125
126
# File 'lib/itunes/track.rb', line 124

def unplayed?
  self['Unplayed'] == true || play_count == 0
end

#video?Boolean

Returns:

  • (Boolean)


104
105
106
# File 'lib/itunes/track.rb', line 104

def video?
  self['Has Video'] || false
end

#yearObject



44
45
46
# File 'lib/itunes/track.rb', line 44

def year
  self['Year']
end