hearken 0.1.1 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +14 -0
  3. data/.tool-versions +1 -0
  4. data/Gemfile +7 -1
  5. data/Gemfile.lock +95 -0
  6. data/{README.rdoc → README.md} +12 -50
  7. data/bin/console +15 -0
  8. data/bin/setup +8 -0
  9. data/exe/hearken +9 -0
  10. data/exe/hearken_index +13 -0
  11. data/hearken.gemspec +35 -35
  12. data/lib/hearken/colour.rb +3 -1
  13. data/lib/hearken/command/enqueue.rb +35 -10
  14. data/lib/hearken/command/reload.rb +18 -6
  15. data/lib/hearken/command/search.rb +31 -20
  16. data/lib/hearken/console.rb +11 -27
  17. data/lib/hearken/debug.rb +6 -6
  18. data/lib/hearken/indexing/ffmpeg_file.rb +7 -0
  19. data/lib/hearken/indexing/file.rb +3 -1
  20. data/lib/hearken/indexing/indexer.rb +32 -24
  21. data/lib/hearken/library.rb +49 -41
  22. data/lib/hearken/monkey_violence.rb +9 -7
  23. data/lib/hearken/paths.rb +13 -19
  24. data/lib/hearken/range_expander.rb +18 -13
  25. data/lib/hearken/tagged.rb +15 -11
  26. data/lib/hearken/track.rb +53 -39
  27. data/lib/hearken.rb +2 -2
  28. metadata +52 -141
  29. data/.gitignore +0 -5
  30. data/HISTORY.rdoc +0 -38
  31. data/MIT-LICENSE +0 -20
  32. data/bin/hearken +0 -7
  33. data/bin/hearken_index +0 -12
  34. data/lib/hearken/command/list.rb +0 -32
  35. data/lib/hearken/command/love.rb +0 -7
  36. data/lib/hearken/command/profile.rb +0 -7
  37. data/lib/hearken/command/recent.rb +0 -38
  38. data/lib/hearken/command/remove.rb +0 -15
  39. data/lib/hearken/command/restart.rb +0 -7
  40. data/lib/hearken/command/scrobbling.rb +0 -14
  41. data/lib/hearken/command/setup_scrobbling.rb +0 -7
  42. data/lib/hearken/command/shuffle.rb +0 -13
  43. data/lib/hearken/command/start.rb +0 -7
  44. data/lib/hearken/command/status.rb +0 -7
  45. data/lib/hearken/command/stop.rb +0 -7
  46. data/lib/hearken/command.rb +0 -35
  47. data/lib/hearken/notification/growl_notifier.rb +0 -15
  48. data/lib/hearken/player.rb +0 -126
  49. data/lib/hearken/preferences.rb +0 -30
  50. data/lib/hearken/queue.rb +0 -33
  51. data/lib/hearken/scrobbler.rb +0 -77
  52. data/lib/hearken/simple_scrobbler.rb +0 -94
  53. data/media/ice_cream.png +0 -0
  54. data/spec/hearken/command/enqueue_spec.rb +0 -24
  55. data/spec/hearken/command/list_spec.rb +0 -31
  56. data/spec/hearken/command/reload_spec.rb +0 -20
  57. data/spec/hearken/command/shuffle_spec.rb +0 -31
  58. data/spec/hearken/player_spec.rb +0 -38
  59. data/spec/hearken/range_expander_spec.rb +0 -28
  60. data/spec/spec_helper.rb +0 -5
@@ -1,31 +1,39 @@
1
- require 'hearken/paths'
2
- require 'hearken/indexing/persistant_traverser'
1
+ # frozen_string_literal: true
3
2
 
4
- class Hearken::Indexing::Indexer
5
- include Hearken::Paths
3
+ require "hearken/paths"
4
+ require "hearken/indexing/persistant_traverser"
6
5
 
7
- def initialize path
8
- create_paths
9
- @path = path
10
- end
6
+ module Hearken
7
+ module Indexing
8
+ class Indexer
9
+ include Hearken::Paths
11
10
 
12
- def execute
13
- start = Time.now
14
- count = 0
15
- traverser = Hearken::Indexing::PersistantTraverser.new @path, index_path
11
+ def initialize(path)
12
+ create_paths
13
+ @path = path
14
+ end
16
15
 
17
- traverser.each do |audio_file|
18
- count += 1
19
- show_progress start, count if count % 1000 == 0
20
- end
16
+ def execute
17
+ start = Time.now
18
+ count = 0
19
+ traverser = Hearken::Indexing::PersistantTraverser.new @path, index_path
21
20
 
22
- show_progress start, count
21
+ traverser.each do |_audio_file|
22
+ count += 1
23
+ show_progress start, count if (count % 1000).zero?
24
+ end
23
25
 
24
- system "play -q #{File.dirname(__FILE__)}/../../../media/applause.mp3"
25
- end
26
- private
27
- def show_progress start, count
28
- elapsed = Time.now-start
29
- $stderr.puts "Processed #{count} audio files in #{elapsed} seconds (#{elapsed/count} per file)"
26
+ show_progress start, count
27
+
28
+ system "afplay #{File.dirname(__FILE__)}/../../../media/applause.mp3"
29
+ end
30
+
31
+ private
32
+
33
+ def show_progress(start, count)
34
+ elapsed = Time.now - start
35
+ warn "Processed #{count} audio files in #{elapsed} seconds (#{elapsed / count} per file)"
36
+ end
37
+ end
30
38
  end
31
- end
39
+ end
@@ -1,43 +1,51 @@
1
- require 'hearken/track'
2
- require 'hearken/paths'
3
-
4
- class Hearken::Library
5
- include Hearken::Paths
6
-
7
- FILE_FIELDS = %w{path timestamp}
8
- TAG_FIELDS = %w{album track title artist time date albumartist puid mbartistid mbalbumid mbalbumartistid asin}
9
- FIELDS = FILE_FIELDS + TAG_FIELDS
10
-
11
- include Hearken::Debug
12
- attr_reader :tracks
13
-
14
- def initialize preferences
15
- create_paths
16
- end
17
-
18
- def count
19
- @tracks.count
20
- end
21
-
22
- def row id
23
- @tracks[id]
24
- end
25
-
26
- def with_track id
27
- yield @tracks[id]
28
- end
29
-
30
- def reload
31
- @tracks = []
32
- File.open index_path do |file|
33
- id = 0
34
- while line = file.gets
35
- row = line.chomp.split '<->'
36
- track = Hearken::Track.new id
37
- FIELDS.each {|field| track.send "#{field}=", row.shift }
38
- @tracks << track
39
- id += 1
1
+ # frozen_string_literal: true
2
+
3
+ require "hearken/debug"
4
+ require "hearken/paths"
5
+ require "hearken/track"
6
+
7
+ module Hearken
8
+ class Library
9
+ include Hearken::Paths
10
+
11
+ FILE_FIELDS = %w[path timestamp].freeze
12
+ TAG_FIELDS = %w[album track title artist time date albumartist puid mbartistid mbalbumid mbalbumartistid asin].freeze
13
+ FIELDS = FILE_FIELDS + TAG_FIELDS
14
+
15
+ include Hearken::Debug
16
+ attr_reader :tracks
17
+
18
+ def initialize
19
+ @tracks = []
20
+ create_paths
21
+ reload
22
+ end
23
+
24
+ def count
25
+ @tracks.count
26
+ end
27
+
28
+ def row(id)
29
+ @tracks[id]
30
+ end
31
+
32
+ def with_track(id)
33
+ yield @tracks[id]
34
+ end
35
+
36
+ def reload
37
+ return unless File.exist?(index_path)
38
+
39
+ File.open index_path do |file|
40
+ id = 0
41
+ while (line = file.gets)
42
+ row = line.chomp.split "<->"
43
+ track = Hearken::Track.new id
44
+ FIELDS.each { |field| track.send "#{field}=", row.shift }
45
+ @tracks << track
46
+ id += 1
47
+ end
40
48
  end
41
- end if File.exist? index_path
49
+ end
42
50
  end
43
- end
51
+ end
@@ -1,21 +1,23 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class String
2
4
  def from_home
3
- File.expand_path('~')+'/'+self
5
+ "#{File.expand_path("~")}/#{self}"
4
6
  end
5
7
 
6
- def escape char
8
+ def escape(char)
7
9
  gsub(char) { "\\#{char}" }
8
10
  end
9
11
 
10
- def escape_all chars
11
- chars.inject(self) {|s,t| s.escape t }
12
+ def escape_all(chars)
13
+ chars.inject(self) { |s, t| s.escape t }
12
14
  end
13
15
 
14
16
  def escape_for_sh
15
- self.escape_all " `';&!()$".scan(/./)
17
+ escape_all " `';&!()$".scan(/./)
16
18
  end
17
19
 
18
20
  def escape_for_sh_quoted
19
- self.escape '`'
21
+ escape "`"
20
22
  end
21
- end
23
+ end
data/lib/hearken/paths.rb CHANGED
@@ -1,24 +1,18 @@
1
- require 'fileutils'
1
+ # frozen_string_literal: true
2
2
 
3
- module Hearken::Paths
4
- attr_reader :base_path, :preferences_path, :queue_path, :index_path
3
+ require "fileutils"
5
4
 
6
- def create_paths
7
- @base_path = '.hearken'.from_home
8
- @preferences_path = '.hearken/config'.from_home
9
- @queue_path = '.hearken/queue'.from_home
10
- @index_path = '.hearken/music'.from_home
11
- FileUtils.mv '.hearken'.from_home, '.hearken.tmp'.from_home if File.exist?('.hearken'.from_home) && File.file?('.hearken'.from_home)
12
- FileUtils.mkdir_p '.hearken/queue'.from_home
13
- FileUtils.mv '.hearken.tmp'.from_home, @preferences_path if File.exist? '.hearken.tmp'.from_home
14
- FileUtils.mv '.music'.from_home, @index_path if File.exist? '.music'.from_home
15
- end
5
+ module Hearken
6
+ module Paths
7
+ attr_reader :base_path, :index_path
16
8
 
17
- def in_queue_dir
18
- Dir.chdir(queue_path) { yield }
19
- end
9
+ def create_paths
10
+ @base_path = ".hearken".from_home
11
+ @index_path = ".hearken/music".from_home
12
+ end
20
13
 
21
- def in_base_dir
22
- Dir.chdir(base_path) { yield }
14
+ def in_base_dir(&block)
15
+ Dir.chdir(base_path, &block)
16
+ end
23
17
  end
24
- end
18
+ end
@@ -1,30 +1,35 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Hearken
2
4
  class RangeExpander
3
- def expand text
4
- text.split(/[^0-9a-z-]/).inject([]) {|acc, term| acc + expand_term(term) }
5
+ def expand(text)
6
+ text.split(/[^0-9a-z-]/).inject([]) { |acc, term| acc + expand_term(term) }
5
7
  end
6
8
 
7
- def expand_to_ids text
8
- expand(text).map {|number| from_number number }
9
+ def expand_to_ids(text)
10
+ expand(text).map { |number| from_number number }
9
11
  end
10
- private
11
- def expand_term term
12
- words = term.split '-'
12
+
13
+ private
14
+
15
+ def expand_term(term)
16
+ words = term.split "-"
13
17
  words.empty? ? [] : range(words.first, words.last)
14
18
  end
15
19
 
16
- def range from, to
17
- f, t = to_number(from), to_number(to)
18
- t = to_number(from.slice(0...from.size-to.size)+to) if t < f
20
+ def range(from, to)
21
+ f = to_number(from)
22
+ t = to_number(to)
23
+ t = to_number(from.slice(0...from.size - to.size) + to) if t < f
19
24
  (f..t).to_a
20
25
  end
21
26
 
22
- def from_number term
27
+ def from_number(term)
23
28
  term.to_s 36
24
29
  end
25
30
 
26
- def to_number term
31
+ def to_number(term)
27
32
  term.to_i 36
28
33
  end
29
34
  end
30
- end
35
+ end
@@ -1,15 +1,19 @@
1
- module Hearken::Tagged
2
- FILE_FIELDS = %w{path timestamp}
3
- TAG_FIELDS = %w{album track title artist time date albumartist puid mbartistid mbalbumid mbalbumartistid asin}
4
- FIELDS = FILE_FIELDS + TAG_FIELDS
1
+ # frozen_string_literal: true
5
2
 
6
- attr_accessor *FIELDS.map {|field| field.to_sym }
3
+ module Hearken
4
+ module Tagged
5
+ FILE_FIELDS = %w[path timestamp].freeze
6
+ TAG_FIELDS = %w[album track title artist time date albumartist puid mbartistid mbalbumid mbalbumartistid asin].freeze
7
+ FIELDS = FILE_FIELDS + TAG_FIELDS
7
8
 
8
- def no_tag_fields?
9
- TAG_FIELDS.select {|field| send field }.empty?
10
- end
9
+ attr_accessor(*FIELDS.map(&:to_sym))
10
+
11
+ def no_tag_fields?
12
+ TAG_FIELDS.select { |field| send field }.empty?
13
+ end
11
14
 
12
- def to_a
13
- FIELDS.map { |field| send field }
15
+ def to_a
16
+ FIELDS.map { |field| send field }
17
+ end
14
18
  end
15
- end
19
+ end
data/lib/hearken/track.rb CHANGED
@@ -1,39 +1,53 @@
1
- require 'hearken/tagged'
2
- require 'rainbow'
3
-
4
- class Hearken::Track
5
- include Hearken::Tagged
6
- attr_accessor :id, :started
7
-
8
- def initialize id=nil
9
- @id = id
10
- end
11
-
12
- def [] key
13
- self.send key
14
- end
15
-
16
- def valid?
17
- @track
18
- end
19
-
20
- def search_id
21
- id.to_s 36
22
- end
23
-
24
- def search_string
25
- "#{self.artist.to_s.downcase}#{self.album.to_s.downcase}#{self.title.to_s.downcase}"
26
- end
27
-
28
- def to_s
29
- "[#{my(:search_id,:white)}] #{my(:artist, :yellow)} #{my(:album,:cyan)} #{my(:track,:magenta)} #{my(:title,:green)} (#{my(:time,:white)})"
30
- end
31
-
32
- def to_short_s
33
- "#{track} #{title}\n#{artist}\n#{album}"
34
- end
35
-
36
- def my field, colour
37
- self.send(field).to_s.foreground(colour)
38
- end
39
- end
1
+ # frozen_string_literal: true
2
+
3
+ require "hearken/tagged"
4
+ require "hearken/colour"
5
+
6
+ module Hearken
7
+ class Track
8
+ include Hearken::Tagged
9
+ include Hearken::Colour
10
+
11
+ attr_accessor :id, :started
12
+
13
+ def initialize(id = nil)
14
+ @id = id
15
+ end
16
+
17
+ def [](key)
18
+ send key
19
+ end
20
+
21
+ def valid?
22
+ @track
23
+ end
24
+
25
+ def search_id
26
+ id.to_s 36
27
+ end
28
+
29
+ def search_string
30
+ "#{artist.to_s.downcase}#{album.to_s.downcase}#{title.to_s.downcase}#{date}"
31
+ end
32
+
33
+ def to_s
34
+ [
35
+ "[#{my(:search_id, :white)}]",
36
+ my(:artist, :yellow),
37
+ my(:album, :cyan),
38
+ my(:track, :magenta),
39
+ my(:title, :green),
40
+ my(:date, :white),
41
+ my(:time, :white)
42
+ ].join(" ")
43
+ end
44
+
45
+ def to_short_s
46
+ "#{track} #{title}\n#{artist}\n#{album}"
47
+ end
48
+
49
+ def my(field, colour)
50
+ c send(field).to_s, colour
51
+ end
52
+ end
53
+ end
data/lib/hearken.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Hearken
2
- VERSION = '0.1.1'
3
- end
2
+ VERSION = '0.1.3'
3
+ end
metadata CHANGED
@@ -1,106 +1,49 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hearken
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
5
- prerelease:
4
+ version: 0.1.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Mark Ryall
9
- autorequire:
10
- bindir: bin
8
+ autorequire:
9
+ bindir: exe
11
10
  cert_chain: []
12
- date: 2012-12-09 00:00:00.000000000 Z
11
+ date: 2022-09-26 00:00:00.000000000 Z
13
12
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: shell_shock
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ~>
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ~>
28
- - !ruby/object:Gem::Version
29
- version: '0'
30
13
  - !ruby/object:Gem::Dependency
31
14
  name: rainbow
32
15
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ~>
36
- - !ruby/object:Gem::Version
37
- version: '1'
38
- type: :runtime
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- version: '1'
46
- - !ruby/object:Gem::Dependency
47
- name: nokogiri
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
16
  requirements:
51
- - - ~>
17
+ - - "~>"
52
18
  - !ruby/object:Gem::Version
53
- version: '1'
19
+ version: '2'
54
20
  type: :runtime
55
21
  prerelease: false
56
22
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
23
  requirements:
59
- - - ~>
24
+ - - "~>"
60
25
  - !ruby/object:Gem::Version
61
- version: '1'
26
+ version: '2'
62
27
  - !ruby/object:Gem::Dependency
63
- name: rake
28
+ name: shell_shock
64
29
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
30
  requirements:
67
- - - ~>
31
+ - - ">="
68
32
  - !ruby/object:Gem::Version
69
33
  version: '0'
70
- type: :development
34
+ type: :runtime
71
35
  prerelease: false
72
36
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
37
  requirements:
75
- - - ~>
38
+ - - ">="
76
39
  - !ruby/object:Gem::Version
77
40
  version: '0'
78
- - !ruby/object:Gem::Dependency
79
- name: rspec
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ~>
84
- - !ruby/object:Gem::Version
85
- version: '2'
86
- type: :development
87
- prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ~>
92
- - !ruby/object:Gem::Version
93
- version: '2'
94
- description: ! 'A command line tool to enqueue and play music tracks.
95
-
96
-
97
- This also extracts the tags from a collection of folders.
41
+ description: |
42
+ A command line tool to enqueue and play music trackspec.
98
43
 
44
+ This also extracts the tags from a collection of folderspec.
99
45
 
100
- This replaces and combines the functionality from a couple of other gems (audio_library
101
- and songbirdsh).
102
-
103
- '
46
+ This replaces and combines the functionality from a couple of other gems (audio_library and songbirdsh).
104
47
  email:
105
48
  - mark@ryall.name
106
49
  executables:
@@ -109,41 +52,30 @@ executables:
109
52
  extensions: []
110
53
  extra_rdoc_files: []
111
54
  files:
112
- - .cards/4d6da46f-8838-488f-997b-9ec873092d5d
113
- - .cards/68695ed3-ef6c-4c65-939e-48695a4511c8
114
- - .cards/6ed72945-35a4-4372-97d8-13b357d8c7c0
115
- - .cards/91de072e-4427-48dc-89ad-0b03756eb689
116
- - .cards/9242c879-a66f-4144-8f24-b05f7c5a49f3
117
- - .cards/94f23de2-4e0c-417a-aa82-3147908e2481
118
- - .cards/a5be50c4-2117-4ecf-bc64-e9977f4d52c1
119
- - .cards/f742a9f4-36af-43e5-a7cb-480049a43821
120
- - .gitignore
55
+ - ".cards/4d6da46f-8838-488f-997b-9ec873092d5d"
56
+ - ".cards/68695ed3-ef6c-4c65-939e-48695a4511c8"
57
+ - ".cards/6ed72945-35a4-4372-97d8-13b357d8c7c0"
58
+ - ".cards/91de072e-4427-48dc-89ad-0b03756eb689"
59
+ - ".cards/9242c879-a66f-4144-8f24-b05f7c5a49f3"
60
+ - ".cards/94f23de2-4e0c-417a-aa82-3147908e2481"
61
+ - ".cards/a5be50c4-2117-4ecf-bc64-e9977f4d52c1"
62
+ - ".cards/f742a9f4-36af-43e5-a7cb-480049a43821"
63
+ - ".rubocop.yml"
64
+ - ".tool-versions"
121
65
  - Gemfile
122
- - HISTORY.rdoc
123
- - MIT-LICENSE
124
- - README.rdoc
66
+ - Gemfile.lock
67
+ - README.md
125
68
  - Rakefile
126
- - bin/hearken
127
- - bin/hearken_index
69
+ - bin/console
70
+ - bin/setup
71
+ - exe/hearken
72
+ - exe/hearken_index
128
73
  - hearken.gemspec
129
74
  - lib/hearken.rb
130
75
  - lib/hearken/colour.rb
131
- - lib/hearken/command.rb
132
76
  - lib/hearken/command/enqueue.rb
133
- - lib/hearken/command/list.rb
134
- - lib/hearken/command/love.rb
135
- - lib/hearken/command/profile.rb
136
- - lib/hearken/command/recent.rb
137
77
  - lib/hearken/command/reload.rb
138
- - lib/hearken/command/remove.rb
139
- - lib/hearken/command/restart.rb
140
- - lib/hearken/command/scrobbling.rb
141
78
  - lib/hearken/command/search.rb
142
- - lib/hearken/command/setup_scrobbling.rb
143
- - lib/hearken/command/shuffle.rb
144
- - lib/hearken/command/start.rb
145
- - lib/hearken/command/status.rb
146
- - lib/hearken/command/stop.rb
147
79
  - lib/hearken/console.rb
148
80
  - lib/hearken/debug.rb
149
81
  - lib/hearken/indexing.rb
@@ -157,62 +89,41 @@ files:
157
89
  - lib/hearken/indexing/persisted_traverser.rb
158
90
  - lib/hearken/library.rb
159
91
  - lib/hearken/monkey_violence.rb
160
- - lib/hearken/notification/growl_notifier.rb
161
92
  - lib/hearken/paths.rb
162
- - lib/hearken/player.rb
163
- - lib/hearken/preferences.rb
164
- - lib/hearken/queue.rb
165
93
  - lib/hearken/range_expander.rb
166
- - lib/hearken/scrobbler.rb
167
- - lib/hearken/simple_scrobbler.rb
168
94
  - lib/hearken/tagged.rb
169
95
  - lib/hearken/track.rb
170
96
  - media/applause.mp3
171
- - media/ice_cream.png
172
- - spec/hearken/command/enqueue_spec.rb
173
- - spec/hearken/command/list_spec.rb
174
- - spec/hearken/command/reload_spec.rb
175
- - spec/hearken/command/shuffle_spec.rb
176
- - spec/hearken/player_spec.rb
177
- - spec/hearken/range_expander_spec.rb
178
- - spec/spec_helper.rb
179
97
  homepage: http://github.com/markryall/hearken
180
- licenses:
181
- - MIT
182
- post_install_message: ! "Hey - thanks for installing hearken.\n\nBefore doing anything
183
- else, you should index your music collection by running:\n\n hearken_index path_to_your_music_collection\n\nThis
184
- could take a while if you have a large collection - you should hear some applause
185
- when it's done\n\nAfter that just run hearken to start playing, queueing and rocking
186
- out.\n"
98
+ licenses: []
99
+ metadata:
100
+ rubygems_mfa_required: 'true'
101
+ post_install_message: |
102
+ Hey - thanks for installing hearken.
103
+
104
+ Before doing anything else, you should index your music collection by running:
105
+
106
+ hearken_index path_to_your_music_collection
107
+
108
+ This could take a while if you have a large collection - you should hear some applause when it's done
109
+
110
+ After that just run hearken to start searching for and then queueing tracks.
187
111
  rdoc_options: []
188
112
  require_paths:
189
113
  - lib
190
114
  required_ruby_version: !ruby/object:Gem::Requirement
191
- none: false
192
115
  requirements:
193
- - - ! '>='
116
+ - - ">="
194
117
  - !ruby/object:Gem::Version
195
- version: 1.9.2
118
+ version: 2.6.0
196
119
  required_rubygems_version: !ruby/object:Gem::Requirement
197
- none: false
198
120
  requirements:
199
- - - ! '>='
121
+ - - ">="
200
122
  - !ruby/object:Gem::Version
201
123
  version: '0'
202
- segments:
203
- - 0
204
- hash: 2801778265441540950
205
124
  requirements: []
206
- rubyforge_project: hearken
207
- rubygems_version: 1.8.23
208
- signing_key:
209
- specification_version: 3
125
+ rubygems_version: 3.3.3
126
+ signing_key:
127
+ specification_version: 4
210
128
  summary: command line music player
211
- test_files:
212
- - spec/hearken/command/enqueue_spec.rb
213
- - spec/hearken/command/list_spec.rb
214
- - spec/hearken/command/reload_spec.rb
215
- - spec/hearken/command/shuffle_spec.rb
216
- - spec/hearken/player_spec.rb
217
- - spec/hearken/range_expander_spec.rb
218
- - spec/spec_helper.rb
129
+ test_files: []
data/.gitignore DELETED
@@ -1,5 +0,0 @@
1
- *.gem
2
- *song
3
- .bundle
4
- Gemfile.lock
5
- pkg/*