itility 1.0.0

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.
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env ruby -w
2
+
3
+ $: << 'lib'
4
+
5
+ require 'test/unit'
6
+ require 'itility.rb'
7
+
8
+ class TestItility < Test::Unit::TestCase
9
+ @@show = Itility.new
10
+ @@raw = @@show.all_tracks("test/small_lib.xml")
11
+
12
+ def test_number_of_albums
13
+ actual = @@show.album_count @@raw
14
+ expected = 20
15
+ assert_equal actual,expected
16
+ end
17
+
18
+ def test_number_of_artists
19
+ actual = @@show.artist_count @@raw
20
+ expected = 12
21
+ assert_equal actual,expected
22
+ end
23
+
24
+ def test_time_total
25
+ actual = @@show.time_total @@raw
26
+ expected = 9078532
27
+ assert_equal actual,expected
28
+ end
29
+
30
+ def test_top_5_tracks
31
+ record = @@show.top_tracks_by_played @@raw, 1
32
+ actual = [record[0].artist, record[0].name, record[0].album]
33
+ expected = ["Bauhaus", "Kick In The Eye", "1979-1983 Volume Two"]
34
+ assert_equal actual,expected
35
+ end
36
+
37
+ def test_find_similar_artist
38
+ record = @@show.top_tracks_by_played @@raw, 2
39
+ actual = @@show.find_similar_artist record
40
+ expected = ["Christian Death", "Siouxsie and the Banshees", "Alien Sex Fiend", "The Sisters of Mercy", "Peter Murphy", "Silversun Pickups", "Autolux", "Asobi Seksu", "Film School", "Swervedriver"]
41
+ assert_equal actual,expected
42
+ end
43
+
44
+ def test_find_similar_song
45
+ record = @@show.top_tracks_by_played @@raw, 2
46
+ actual = @@show.find_similar_song record
47
+ expected = ["Siouxsie and the Banshees - Spellbound", "Siouxsie and the Banshees - Happy House", "Virgin Prunes - Baby Turns Blue", "Alien Sex Fiend - Ignore the Machine", "The Sisters of Mercy - A Rock And A Hard Place"]
48
+ assert_equal actual,expected
49
+ end
50
+
51
+ end
@@ -0,0 +1,47 @@
1
+ $: << 'lib'
2
+
3
+ require 'test/unit'
4
+ require 'track.rb'
5
+
6
+ class TestTrack < Test::Unit::TestCase
7
+ def setup
8
+ @song = Track.new(2824,{:name => "Louise",:artist => "Clan Of Xymox",:total_time => 317805,:album => "Medusa",:play_count => 42})
9
+ end
10
+
11
+ def test_track_id
12
+ actual = @song.track_id
13
+ expected = 2824
14
+ assert_equal expected, actual
15
+ end
16
+
17
+ def test_track_title
18
+ actual = @song.name
19
+ expected = "Louise"
20
+ assert_equal expected, actual
21
+ end
22
+
23
+ def test_track_artist
24
+ actual = @song.artist
25
+ expected = "Clan Of Xymox"
26
+ assert_equal expected, actual
27
+ end
28
+
29
+ def test_track_time
30
+ actual = @song.total_time
31
+ expected = 317805
32
+ assert_equal expected, actual
33
+ end
34
+
35
+ def test_track_album
36
+ actual = @song.album
37
+ expected = "Medusa"
38
+ assert_equal expected, actual
39
+ end
40
+
41
+ def test_track_play_count
42
+ actual = @song.play_count
43
+ expected = 42
44
+ assert_equal expected, actual
45
+ end
46
+
47
+ end
metadata ADDED
@@ -0,0 +1,96 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: itility
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Ron McKown
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-12-17 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: duration
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ~>
22
+ - !ruby/object:Gem::Version
23
+ version: 0.1.0
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: nokogiri
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 1.0.6
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: hoe
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 1.8.0
44
+ version:
45
+ description: This simple itility parses your itunes library XML file and outputs song statistics. It also provides artist recommendations based on songs with the highest play count.
46
+ email:
47
+ - ron@ventura.nu
48
+ executables:
49
+ - itility
50
+ extensions: []
51
+
52
+ extra_rdoc_files:
53
+ - History.txt
54
+ - Manifest.txt
55
+ - README.txt
56
+ files:
57
+ - History.txt
58
+ - Manifest.txt
59
+ - README.txt
60
+ - Rakefile
61
+ - bin/itility
62
+ - lib/itility.rb
63
+ - lib/track.rb
64
+ - test/small_lib.xml
65
+ - test/test_itility.rb
66
+ - test/test_track.rb
67
+ has_rdoc: true
68
+ homepage: http://rubygems.org/projects/uwruby
69
+ post_install_message:
70
+ rdoc_options:
71
+ - --main
72
+ - README.txt
73
+ require_paths:
74
+ - lib
75
+ required_ruby_version: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: "0"
80
+ version:
81
+ required_rubygems_version: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: "0"
86
+ version:
87
+ requirements: []
88
+
89
+ rubyforge_project: uwruby
90
+ rubygems_version: 1.2.0
91
+ signing_key:
92
+ specification_version: 2
93
+ summary: This simple itility parses your itunes library XML file and outputs song statistics
94
+ test_files:
95
+ - test/test_itility.rb
96
+ - test/test_track.rb