daapclient 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,11 @@
1
1
  = Net::DAAP::Client Changelog
2
2
 
3
+ == 0.2.3
4
+
5
+ * Added logging optimizations
6
+ * Applied patch for connection bug [#5885]. Thanks to Rune Hammersland
7
+ * Added test for nil file name. patch [#8482] Thanks Jamie Wilkinson!
8
+
3
9
  == 0.2.2
4
10
 
5
11
  * Added Net::DAAP::Song#save which will automatically save files for you
File without changes
File without changes
@@ -0,0 +1,42 @@
1
+ CHANGELOG.txt
2
+ EXAMPLES.txt
3
+ LICENSE.txt
4
+ Manifest.txt
5
+ NOTES.txt
6
+ README.txt
7
+ Rakefile
8
+ eg/dl_simple.rb
9
+ eg/dl_songs.rb
10
+ eg/dl_target.rb
11
+ eg/show_artists.rb
12
+ eg/show_playlists.rb
13
+ eg/show_songs.rb
14
+ lib/net/daap.rb
15
+ lib/net/daap/album.rb
16
+ lib/net/daap/artist.rb
17
+ lib/net/daap/daap_version.rb
18
+ lib/net/daap/database.rb
19
+ lib/net/daap/dmap.rb
20
+ lib/net/daap/playlist.rb
21
+ lib/net/daap/song.rb
22
+ lib/net/daap/speed_hacks.rb
23
+ test/data/mt-daapd/02dd88de4b3a69c74bcc56c1acca9ae5.txt
24
+ test/data/mt-daapd/0de583b288d8ae30f89acb26d4c8535b.txt
25
+ test/data/mt-daapd/4146ec82a0f0a638db9293a0c2039e6b.txt
26
+ test/data/mt-daapd/51a2a6f2a53743bec7e79fe0d074dd28.txt
27
+ test/data/mt-daapd/6069971903eef3c8c71ec2c7b395bfeb.txt
28
+ test/data/mt-daapd/7102a16e834342b8264f1fb5226690e5.txt
29
+ test/data/mt-daapd/9d29fb31969da7757fa2f4baa3a52fe9.txt
30
+ test/data/mt-daapd/a52dd33cc99471cc156528c06b22e709.txt
31
+ test/data/mt-daapd/a600829e59b3d719b32f25323a2719b0.txt
32
+ test/data/mt-daapd/e2552df8d742fe31d6cc6e1e41e496b3.txt
33
+ test/data/mt-daapd/fc631aa54b83344df9ccf1fbaa7684b0.txt
34
+ test/data/song_data.txt
35
+ test/data/song_structure.txt
36
+ test/mock_server.rb
37
+ test/server_saver.rb
38
+ test/test_artists.rb
39
+ test/test_client.rb
40
+ test/test_download.rb
41
+ test/test_playlist.rb
42
+ test/test_protocol.rb
File without changes
@@ -1,21 +1,13 @@
1
1
  = Net::DAAP
2
2
 
3
- This library is used for browsing iTunes DAAP servers.
3
+ http://daapclient.rubyforge.org/
4
4
 
5
- Most of this is based off the work in the perl version by Richard Clamp which
6
- can be found here[http://search.cpan.org/~rclamp/].
5
+ == DESCRIPTION
7
6
 
8
- Ruby version is by Aaron Patterson <aaronp@rubyforge.org>
7
+ This library is used for browsing iTunes DAAP servers.
9
8
 
10
9
  == Installation
11
10
 
12
- Make sure that Digest::M4P is installed before using this package. Digest::M4P
13
- is available on the daap client ruby forge site here[http://rubyforge.org/frs/?group_id=1155].
14
-
15
- Digest::M4P has not been turned in to a Ruby gem as of this writing.
16
-
17
- After that, just install the gem:
18
-
19
11
  sudo gem install daapclient
20
12
 
21
13
  Also, check out the project page here[http://rubyforge.org/projects/daapclient].
@@ -29,6 +21,9 @@ See the EXAMPLES[link://files/EXAMPLES.html] file
29
21
  The library is mostly a port of the Perl library, and owes most of its
30
22
  communication logic to the original Perl version by Richard Clamp.
31
23
 
24
+ Most of this is based off the work in the perl version by Richard Clamp which
25
+ can be found here[http://search.cpan.org/~rclamp/].
26
+
32
27
  == Author
33
28
 
34
29
  This Ruby version is Copyright (c) Aaron Patterson 2005
@@ -0,0 +1,46 @@
1
+ require 'rubygems'
2
+ require 'hoe'
3
+
4
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), "lib")
5
+ require 'net/daap'
6
+
7
+ class DAAPHoe < Hoe
8
+ def define_tasks
9
+ super
10
+
11
+ desc "Tag code"
12
+ task :tag do |p|
13
+ abort "Must supply VERSION=x.y.z" unless ENV['VERSION']
14
+ v = ENV['VERSION'].gsub(/\./, '_')
15
+
16
+ rf = RubyForge.new
17
+ user = rf.userconfig['username']
18
+
19
+ baseurl = "svn+ssh://#{user}@rubyforge.org//var/svn/#{name}/daap"
20
+ sh "svn cp -m 'tagged REL-#{v}' . #{ baseurl }/tags/REL-#{ v }"
21
+ end
22
+
23
+ desc "Branch code"
24
+ Rake::Task.define_task("branch") do |p|
25
+ abort "Must supply VERSION=x.y.z" unless ENV['VERSION']
26
+ v = ENV['VERSION'].split(/\./)[0..1].join('_')
27
+
28
+ rf = RubyForge.new
29
+ user = rf.userconfig['username']
30
+
31
+ baseurl = "svn+ssh://#{user}@rubyforge.org/var/svn/#{name}"
32
+ sh "svn cp -m'branched #{v}' #{baseurl}/trunk #{baseurl}/branches/RB-#{v}"
33
+ end
34
+ end
35
+ end
36
+
37
+ DAAPHoe.new('daapclient', Net::DAAP::VERSION) do |p|
38
+ p.rubyforge_name = 'daapclient'
39
+ p.author = 'Aaron Patterson'
40
+ p.email = 'aaronp@rubyforge.org'
41
+ p.summary = "Net::DAAP::Client is an iTunes share client."
42
+ p.description = p.paragraphs_of('README.txt', 3).join("\n\n")
43
+ p.url = p.paragraphs_of('README.txt', 1).first.strip
44
+ p.changes = p.paragraphs_of('CHANGELOG.txt', 0..2).join("\n\n")
45
+ p.extra_deps = ['digest-m4p']
46
+ end
@@ -0,0 +1,28 @@
1
+ $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
+
3
+ require 'net/daap'
4
+ require 'fileutils'
5
+
6
+ daap = Net::DAAP::Client.new(ARGV[0])
7
+
8
+ daap.connect do |dsn|
9
+ daap.databases do |db|
10
+ puts "All songs in the database"
11
+ db.songs do |song|
12
+ bool = false
13
+ if ARGV.find { |f| song.artist.name =~ /#{f}/ }
14
+ bool = true
15
+ end
16
+ next unless bool
17
+ filename = "#{song.artist} - #{song.name}.#{song.format}"
18
+ directory = "db/#{song.album}"
19
+ FileUtils::mkdir_p(directory)
20
+
21
+ File.open("#{directory}/#{filename}", "w") do |f|
22
+ song.get do |str|
23
+ f.write str
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,37 @@
1
+ $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
+
3
+ require 'rubygems'
4
+ require 'net/daap'
5
+ require 'fileutils'
6
+ require 'calibre/progressbar'
7
+
8
+ daap = Net::DAAP::Client.new(ARGV[0])
9
+
10
+ daap.connect do |dsn|
11
+ daap.databases.each do |db|
12
+ puts "All songs in the database"
13
+ db.songs.each do |song|
14
+ bool = false
15
+ if ARGV.find { |f| song.artist.name =~ /#{f}/ }
16
+ bool = true
17
+ end
18
+ next unless bool
19
+ filename = "#{song.artist} - #{song.name}.#{song.format}"
20
+ directory = "db/#{song.album.name.gsub(/\//, '_')}"
21
+ FileUtils::mkdir_p(directory)
22
+
23
+ File.open("#{directory}/#{filename.gsub(/\//, '_')}", "w") do |f|
24
+ bar = Console::ProgressBar.new("#{song.name}", song.size)
25
+ so_far = 0
26
+ begin
27
+ song.get do |str|
28
+ f.write str
29
+ bar.set so_far += str.length
30
+ end
31
+ bar.finish
32
+ rescue
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,14 @@
1
+ $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
+
3
+ require 'rubygems'
4
+ require 'net/daap'
5
+ require 'net/daap/speed_hacks'
6
+
7
+ daap = Net::DAAP::Client.new(ARGV[0])
8
+ daap.connect_db { |db|
9
+ db.songs.each { |song|
10
+ next unless song.artist.name =~ /Dre/
11
+ puts "#{song.artist.name} - #{song.name}"
12
+ song.save('db')
13
+ }
14
+ }
@@ -0,0 +1,14 @@
1
+ $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
+
3
+ require 'rubygems'
4
+ require 'net/daap'
5
+
6
+ daap = Net::DAAP::Client.new(ARGV[0], :password => ARGV[1])
7
+
8
+ daap.connect do |dsn|
9
+ daap.databases do |db|
10
+ db.artists.sort.each do |artist|
11
+ puts "#{artist.name}"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,17 @@
1
+ $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
+
3
+ require 'net/daap'
4
+
5
+ daap = Net::DAAP::Client.new('localhost')
6
+
7
+ daap.connect do |dsn|
8
+ daap.databases do |db|
9
+ puts "List songs for each playlist"
10
+ db.playlists do |pl|
11
+ puts "Playlist name: #{pl.name}"
12
+ pl.songs do |song|
13
+ puts " #{song.artist} - #{song.name}"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,16 @@
1
+ $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
+
3
+ require 'rubygems'
4
+ require 'net/daap'
5
+
6
+ daap = Net::DAAP::Client.new('localhost') { |a| a.log = Logger.new(STDERR) }
7
+
8
+ daap.connect do |dsn|
9
+ daap.databases do |db|
10
+ puts "All songs in the database"
11
+ db.songs do |song|
12
+ filename = "#{song.artist} - #{song}.#{song.format}"
13
+ puts "#{song.album}/#{filename}(#{song.size})"
14
+ end
15
+ end
16
+ end
@@ -1,7 +1,6 @@
1
1
  require 'net/http'
2
2
  require 'digest/m4p'
3
3
  require 'digest/md5'
4
- require 'logger'
5
4
  require 'net/daap/dmap'
6
5
  require 'net/daap/artist'
7
6
  require 'net/daap/album'
@@ -44,6 +43,7 @@ module Net
44
43
  # end
45
44
  #
46
45
  module DAAP
46
+ VERSION = '0.2.3'
47
47
 
48
48
  # = Synopsis
49
49
  # The Client class interacts with the iTunes server to fetch lists of songs,
@@ -61,27 +61,26 @@ module Net
61
61
  @server_port = params[:port]
62
62
  @password = params[:password]
63
63
  @validator = nil
64
- @log = Logger.new(nil)
64
+ @log = nil
65
65
  @session_id = nil
66
66
  @request_id = nil
67
- @connected = nil
67
+ @connected = false
68
68
  yield self if block_given?
69
69
  end
70
70
 
71
71
  # Connects to the iTunes server. This method should be called right after
72
72
  # construction. See DAAP for an example.
73
73
  def connect
74
- @log.info("Connecting to #{@server_host}:#{@server_port}")
74
+ log.info("Connecting to #{@server_host}:#{@server_port}") if log
75
75
  @http_client = Net::HTTP.start(@server_host, @server_port)
76
76
  find_validator
77
77
  @dmap = Net::DAAP::DMAP.new(:daap => self)
78
78
  load_server_info
79
- @log.info("Now connected")
80
- @connected = 1
79
+ log.info("Now connected") if log
80
+ @connected = true
81
81
  if block_given?
82
82
  yield @dsn
83
83
  disconnect
84
- @connected = 0
85
84
  end
86
85
  @dsn
87
86
  end
@@ -91,15 +90,18 @@ module Net
91
90
  def connect_db(&block)
92
91
  raise ArgumentError if block.nil?
93
92
  connect
94
- databases.each { |db| block.call(db) }
95
- disconnect
93
+ begin
94
+ databases.each { |db| block.call(db) }
95
+ ensure
96
+ disconnect
97
+ end
96
98
  end
97
99
 
98
100
  # Returns the databases found on the iTunes server.
99
101
  def databases
100
102
  unless @connected
101
103
  errstr = "Not connected, can't fetch databases"
102
- @log.error(errstr)
104
+ log.error(errstr) if log
103
105
  raise errstr
104
106
  end
105
107
 
@@ -119,7 +121,7 @@ module Net
119
121
  end
120
122
 
121
123
  def do_get(request, &block)
122
- @log.debug("do_get called")
124
+ log.debug("do_get called") if log
123
125
  url = String.new('/' + request)
124
126
  if @session_id
125
127
  url += url =~ /\?/ ? "&" : "?"
@@ -129,7 +131,7 @@ module Net
129
131
  #if @revision && request != "logout"
130
132
  # url += "&revision-number=#{@revision}"
131
133
  #end
132
- @log.debug("Fetching url: #{url}")
134
+ log.debug("Fetching url: #{url}") if log
133
135
 
134
136
  req = Net::HTTP::Get.new(url, request_headers(url))
135
137
  req.basic_auth('iTunes_4.6', @password) if ! @password.nil?
@@ -140,11 +142,11 @@ module Net
140
142
  case res
141
143
  when Net::HTTPSuccess
142
144
  else
143
- @log.error("This DAAP Server requires a password")
145
+ log.error("This DAAP Server requires a password") if log
144
146
  res.error!
145
147
  end
146
148
 
147
- @log.debug("Done Fetching url: #{url}")
149
+ log.debug("Done Fetching url: #{url}") if log
148
150
 
149
151
  content_type = res.header['content-type']
150
152
  if request !~ /(?:\/items\/\d+\.|logout)/ && content_type !~ /dmap/
@@ -155,7 +157,7 @@ module Net
155
157
  end
156
158
 
157
159
  def get_song(request, &block)
158
- @log.debug("Downloading a song")
160
+ log.debug("Downloading a song") if log
159
161
  @request_id = @request_id.nil? ? 2 : @request_id + 1
160
162
  do_get(request, &block)
161
163
  end
@@ -172,8 +174,9 @@ module Net
172
174
 
173
175
  # Disconnects from the DAAP server
174
176
  def disconnect
175
- @log.info("Disconnecting")
177
+ log.info("Disconnecting") if log
176
178
  do_get("logout")
179
+ @connected = false
177
180
  end
178
181
 
179
182
  private
@@ -181,10 +184,10 @@ module Net
181
184
  flat_list = @dmap.flat_list(do_get("server-info"))
182
185
  @dsn = flat_list['/dmap.serverinforesponse/dmap.itemname']
183
186
 
184
- @log.debug("Connected to share '#{@dsn}'")
187
+ log.debug("Connected to share '#{@dsn}'") if log
185
188
  @session_id = @dmap.find(do_get("login"),
186
189
  "dmap.loginresponse/dmap.sessionid")
187
- @log.debug("My id is #{@session_id}")
190
+ log.debug("My id is #{@session_id}") if log
188
191
  @dsn
189
192
  end
190
193
 
@@ -201,18 +204,18 @@ module Net
201
204
 
202
205
  # Figure out what protocol version to use
203
206
  def find_validator
204
- @log.info("Determining DAAP version")
207
+ log.info("Determining DAAP version") if log
205
208
  res = @http_client.get('/server-info')
206
209
  server = res.header['daap-server']
207
210
 
208
211
  if server =~ /^iTunes\/4.2/
209
212
  @validator = DAAPv2.new
210
- @log.info("Found DAAPv2")
213
+ log.info("Found DAAPv2") if log
211
214
  end
212
215
 
213
216
  if server =~ /^iTunes/
214
217
  @validator = DAAPv3.new
215
- @log.info("Found DAAPv3")
218
+ log.info("Found DAAPv3") if log
216
219
  end
217
220
  end
218
221
  end
@@ -22,7 +22,7 @@ module Net
22
22
  @daap = args[:daap]
23
23
  @db = args[:db]
24
24
  @path = [@artist.name, @album.name].collect { |name|
25
- name.gsub(File::SEPARATOR, '_')
25
+ name.gsub(File::SEPARATOR, '_') unless name.nil?
26
26
  }.join(File::SEPARATOR)
27
27
  @file = "#{@name.gsub(File::SEPARATOR, '_')}.#{@format}"
28
28
  end
@@ -24,17 +24,23 @@ module Net
24
24
  end
25
25
 
26
26
  class HTTP
27
- def self.new
28
- allocate
29
- end
30
-
27
+ alias :old_initialize :initialize
31
28
  def initialize
32
29
  end
33
30
 
34
- def self.start(*args)
35
- Net::HTTP.new
31
+ class << self
32
+ alias :old_start :start
33
+ alias :old_new :new
34
+ def start(*args)
35
+ Net::HTTP.new
36
+ end
37
+
38
+ def new
39
+ allocate
40
+ end
36
41
  end
37
42
 
43
+ alias :old_request :request
38
44
  def request(req, &block)
39
45
  get(req.url, block)
40
46
  end
@@ -1,6 +1,8 @@
1
1
  $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
2
  $:.unshift File.join(File.dirname(__FILE__), "..", "test")
3
3
 
4
+ require 'yaml'
5
+ require 'rubygems'
4
6
  require 'test/unit'
5
7
  require 'net/daap'
6
8
  require 'mock_server'
@@ -1,6 +1,8 @@
1
1
  $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
2
  $:.unshift File.join(File.dirname(__FILE__), "..", "test")
3
3
 
4
+ require 'yaml'
5
+ require 'rubygems'
4
6
  require 'test/unit'
5
7
  require 'net/daap'
6
8
  require 'mock_server'
@@ -1,6 +1,8 @@
1
1
  $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
2
  $:.unshift File.join(File.dirname(__FILE__), "..", "test")
3
3
 
4
+ require 'yaml'
5
+ require 'rubygems'
4
6
  require 'test/unit'
5
7
  require 'net/daap'
6
8
  require 'mock_server'
@@ -1,6 +1,8 @@
1
1
  $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
2
  $:.unshift File.join(File.dirname(__FILE__), "..", "test")
3
3
 
4
+ require 'yaml'
5
+ require 'rubygems'
4
6
  require 'test/unit'
5
7
  require 'net/daap'
6
8
  require 'mock_server'
@@ -1,8 +1,11 @@
1
1
  $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
2
  $:.unshift File.join(File.dirname(__FILE__), "..", "test")
3
3
 
4
- require 'test/unit'
4
+
5
+ require 'yaml'
6
+ require 'rubygems'
5
7
  require 'net/daap'
8
+ require 'test/unit'
6
9
  require 'digest/md5'
7
10
 
8
11
  class DAAPProtocol_Test < Test::Unit::TestCase
metadata CHANGED
@@ -1,99 +1,108 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.0
2
+ rubygems_version: 0.9.2
3
3
  specification_version: 1
4
4
  name: daapclient
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.2.2
7
- date: 2006-08-27 00:00:00 -07:00
6
+ version: 0.2.3
7
+ date: 2007-03-12 00:00:00 -07:00
8
8
  summary: Net::DAAP::Client is an iTunes share client.
9
9
  require_paths:
10
- - lib
10
+ - lib
11
11
  email: aaronp@rubyforge.org
12
- homepage: daapclient.rubyforge.org
12
+ homepage: http://daapclient.rubyforge.org/
13
13
  rubyforge_project: daapclient
14
- description:
14
+ description: This library is used for browsing iTunes DAAP servers.
15
15
  autorequire:
16
16
  default_executable:
17
17
  bindir: bin
18
18
  has_rdoc: true
19
19
  required_ruby_version: !ruby/object:Gem::Version::Requirement
20
20
  requirements:
21
- -
22
- - ">"
23
- - !ruby/object:Gem::Version
24
- version: 0.0.0
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
25
24
  version:
26
25
  platform: ruby
27
26
  signing_key:
28
27
  cert_chain:
29
28
  post_install_message:
30
29
  authors:
31
- - Aaron Patterson
30
+ - Aaron Patterson
32
31
  files:
33
- - test/data
34
- - test/mock_server.rb
35
- - test/server_saver.rb
36
- - test/tc_artists.rb
37
- - test/tc_client.rb
38
- - test/tc_download.rb
39
- - test/tc_playlist.rb
40
- - test/tc_protocol.rb
41
- - test/test_daap.rb
42
- - test/ts_daap.rb
43
- - test/data/mt-daapd
44
- - test/data/song_data.txt
45
- - test/data/song_structure.txt
46
- - test/data/mt-daapd/02dd88de4b3a69c74bcc56c1acca9ae5.txt
47
- - test/data/mt-daapd/0de583b288d8ae30f89acb26d4c8535b.txt
48
- - test/data/mt-daapd/4146ec82a0f0a638db9293a0c2039e6b.txt
49
- - test/data/mt-daapd/51a2a6f2a53743bec7e79fe0d074dd28.txt
50
- - test/data/mt-daapd/6069971903eef3c8c71ec2c7b395bfeb.txt
51
- - test/data/mt-daapd/7102a16e834342b8264f1fb5226690e5.txt
52
- - test/data/mt-daapd/9d29fb31969da7757fa2f4baa3a52fe9.txt
53
- - test/data/mt-daapd/a52dd33cc99471cc156528c06b22e709.txt
54
- - test/data/mt-daapd/a600829e59b3d719b32f25323a2719b0.txt
55
- - test/data/mt-daapd/e2552df8d742fe31d6cc6e1e41e496b3.txt
56
- - test/data/mt-daapd/fc631aa54b83344df9ccf1fbaa7684b0.txt
57
- - lib/net
58
- - lib/net/daap
59
- - lib/net/daap.rb
60
- - lib/net/daap/album.rb
61
- - lib/net/daap/artist.rb
62
- - lib/net/daap/daap_version.rb
63
- - lib/net/daap/database.rb
64
- - lib/net/daap/dmap.rb
65
- - lib/net/daap/playlist.rb
66
- - lib/net/daap/song.rb
67
- - lib/net/daap/speed_hacks.rb
68
- - README
69
- - LICENSE
70
- - CHANGELOG
71
- - EXAMPLES
72
- - NOTES
32
+ - CHANGELOG.txt
33
+ - EXAMPLES.txt
34
+ - LICENSE.txt
35
+ - Manifest.txt
36
+ - NOTES.txt
37
+ - README.txt
38
+ - Rakefile
39
+ - eg/dl_simple.rb
40
+ - eg/dl_songs.rb
41
+ - eg/dl_target.rb
42
+ - eg/show_artists.rb
43
+ - eg/show_playlists.rb
44
+ - eg/show_songs.rb
45
+ - lib/net/daap.rb
46
+ - lib/net/daap/album.rb
47
+ - lib/net/daap/artist.rb
48
+ - lib/net/daap/daap_version.rb
49
+ - lib/net/daap/database.rb
50
+ - lib/net/daap/dmap.rb
51
+ - lib/net/daap/playlist.rb
52
+ - lib/net/daap/song.rb
53
+ - lib/net/daap/speed_hacks.rb
54
+ - test/data/mt-daapd/02dd88de4b3a69c74bcc56c1acca9ae5.txt
55
+ - test/data/mt-daapd/0de583b288d8ae30f89acb26d4c8535b.txt
56
+ - test/data/mt-daapd/4146ec82a0f0a638db9293a0c2039e6b.txt
57
+ - test/data/mt-daapd/51a2a6f2a53743bec7e79fe0d074dd28.txt
58
+ - test/data/mt-daapd/6069971903eef3c8c71ec2c7b395bfeb.txt
59
+ - test/data/mt-daapd/7102a16e834342b8264f1fb5226690e5.txt
60
+ - test/data/mt-daapd/9d29fb31969da7757fa2f4baa3a52fe9.txt
61
+ - test/data/mt-daapd/a52dd33cc99471cc156528c06b22e709.txt
62
+ - test/data/mt-daapd/a600829e59b3d719b32f25323a2719b0.txt
63
+ - test/data/mt-daapd/e2552df8d742fe31d6cc6e1e41e496b3.txt
64
+ - test/data/mt-daapd/fc631aa54b83344df9ccf1fbaa7684b0.txt
65
+ - test/data/song_data.txt
66
+ - test/data/song_structure.txt
67
+ - test/mock_server.rb
68
+ - test/server_saver.rb
69
+ - test/test_artists.rb
70
+ - test/test_client.rb
71
+ - test/test_download.rb
72
+ - test/test_playlist.rb
73
+ - test/test_protocol.rb
73
74
  test_files:
74
- - test/ts_daap.rb
75
- rdoc_options:
76
- - "--main"
77
- - README
78
- - "--title"
79
- - "'Net::DAAP::Client RDoc'"
80
- extra_rdoc_files:
81
- - README
82
- - LICENSE
83
- - CHANGELOG
84
- - EXAMPLES
85
- - NOTES
75
+ - test/test_artists.rb
76
+ - test/test_client.rb
77
+ - test/test_download.rb
78
+ - test/test_playlist.rb
79
+ - test/test_protocol.rb
80
+ rdoc_options: []
81
+
82
+ extra_rdoc_files: []
83
+
86
84
  executables: []
85
+
87
86
  extensions: []
87
+
88
88
  requirements: []
89
+
89
90
  dependencies:
90
- - !ruby/object:Gem::Dependency
91
- name: digest-m4p
92
- version_requirement:
93
- version_requirements: !ruby/object:Gem::Version::Requirement
94
- requirements:
95
- -
96
- - ">="
97
- - !ruby/object:Gem::Version
98
- version: 0.0.1
99
- version:
91
+ - !ruby/object:Gem::Dependency
92
+ name: digest-m4p
93
+ version_requirement:
94
+ version_requirements: !ruby/object:Gem::Version::Requirement
95
+ requirements:
96
+ - - ">"
97
+ - !ruby/object:Gem::Version
98
+ version: 0.0.0
99
+ version:
100
+ - !ruby/object:Gem::Dependency
101
+ name: hoe
102
+ version_requirement:
103
+ version_requirements: !ruby/object:Gem::Version::Requirement
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: 1.2.0
108
+ version:
@@ -1,23 +0,0 @@
1
- require 'yaml/stringio'
2
- require 'fileutils'
3
- require 'test/unit/testsuite'
4
- require 'test/unit/ui/reporter'
5
- require 'test/unit/ui/console/testrunner'
6
-
7
- fail "Missing results directory" if ARGV.empty?
8
- html_dir = ARGV[0]
9
-
10
- FileUtils.rm_r html_dir rescue nil
11
- FileUtils.mkdir_p html_dir
12
-
13
- Dir['tc_*.rb'].each do |fn|
14
- load fn
15
- end
16
-
17
- suite = Test::Unit::TestSuite.new
18
- ObjectSpace.each_object(Class) do |cls|
19
- next if cls == Test::Unit::TestCase
20
- suite << cls.suite if cls.respond_to?(:suite)
21
- end
22
-
23
- Test::Unit::UI::Reporter.run(suite, html_dir)
@@ -1,14 +0,0 @@
1
- $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
- $:.unshift File.join(File.dirname(__FILE__), "..", "test")
3
-
4
- require 'yaml'
5
-
6
-
7
- require 'rubygems'
8
- require 'test/unit'
9
- require 'tc_client'
10
- require 'tc_protocol'
11
- require 'tc_playlist'
12
- require 'tc_artists'
13
- require 'tc_download'
14
-