hearken 0.1.1 → 0.1.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.
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/*