cultome_player 2.0.0 → 2.0.2
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.
- checksums.yaml +4 -4
- data/README.md +24 -79
- data/Rakefile +38 -4
- data/bin/cultome_player +16 -4
- data/config/environment.yml +4 -0
- data/cultome_player.gemspec +8 -1
- data/lib/cultome_player.rb +45 -19
- data/lib/cultome_player/command/language.rb +3 -4
- data/lib/cultome_player/command/processor.rb +9 -7
- data/lib/cultome_player/command/reader.rb +11 -2
- data/lib/cultome_player/environment.rb +21 -13
- data/lib/cultome_player/events.rb +7 -7
- data/lib/cultome_player/objects/album.rb +9 -2
- data/lib/cultome_player/objects/artist.rb +9 -2
- data/lib/cultome_player/objects/command.rb +10 -1
- data/lib/cultome_player/objects/drive.rb +4 -1
- data/lib/cultome_player/objects/genre.rb +4 -1
- data/lib/cultome_player/objects/parameter.rb +21 -1
- data/lib/cultome_player/objects/response.rb +5 -1
- data/lib/cultome_player/objects/song.rb +9 -4
- data/lib/cultome_player/player/adapter/mpg123.rb +3 -4
- data/lib/cultome_player/player/interactive.rb +67 -11
- data/lib/cultome_player/player/interface/basic.rb +13 -9
- data/lib/cultome_player/player/interface/extended.rb +26 -12
- data/lib/cultome_player/player/interface/helper.rb +73 -9
- data/lib/cultome_player/plugins.rb +44 -18
- data/lib/cultome_player/plugins/alias.rb +85 -0
- data/lib/cultome_player/plugins/gestures.rb +90 -0
- data/lib/cultome_player/plugins/help.rb +4 -4
- data/lib/cultome_player/plugins/keyboard_special_keys.rb +22 -0
- data/lib/cultome_player/plugins/points.rb +51 -0
- data/lib/cultome_player/utils.rb +117 -7
- data/lib/cultome_player/version.rb +1 -1
- data/xbindkeys/xbindkeysrc +12 -0
- metadata +37 -89
- data/.coveralls.yml +0 -1
- data/.gitignore +0 -24
- data/.rspec +0 -2
- data/.travis.yml +0 -7
- data/db/001_create_schema.rb +0 -58
- data/spec/config.yml +0 -0
- data/spec/cultome_player/command/processor_spec.rb +0 -168
- data/spec/cultome_player/command/reader_spec.rb +0 -45
- data/spec/cultome_player/cultome_player_spec.rb +0 -17
- data/spec/cultome_player/environment_spec.rb +0 -65
- data/spec/cultome_player/events_spec.rb +0 -22
- data/spec/cultome_player/media_spec.rb +0 -41
- data/spec/cultome_player/player/adapter/mpg123_spec.rb +0 -82
- data/spec/cultome_player/player/interface/basic_spec.rb +0 -168
- data/spec/cultome_player/player/interface/extended/connect_spec.rb +0 -117
- data/spec/cultome_player/player/interface/extended/search_spec.rb +0 -90
- data/spec/cultome_player/player/interface/extended/show_spec.rb +0 -36
- data/spec/cultome_player/player/interface/extended/shuffle_spec.rb +0 -26
- data/spec/cultome_player/player/interface/extended_spec.rb +0 -136
- data/spec/cultome_player/player/interface/helper_spec.rb +0 -63
- data/spec/cultome_player/player/interface_spec.rb +0 -17
- data/spec/cultome_player/player/playlist_spec.rb +0 -301
- data/spec/cultome_player/plugins/help_spec.rb +0 -21
- data/spec/cultome_player/plugins_spec.rb +0 -19
- data/spec/cultome_player/utils_spec.rb +0 -15
- data/spec/spec_helper.rb +0 -108
- data/spec/test/uno/dos/dos.mp3 +0 -0
- data/spec/test/uno/dos/tres/tres.mp3 +0 -0
- data/spec/test/uno/uno.mp3 +0 -0
- data/tasks/console.rake +0 -19
- data/tasks/db.rake +0 -19
- data/tasks/run.rake +0 -7
@@ -0,0 +1,90 @@
|
|
1
|
+
module CultomePlayer
|
2
|
+
module Plugins
|
3
|
+
module Gestures
|
4
|
+
|
5
|
+
include CultomePlayer::Objects
|
6
|
+
|
7
|
+
def init_plugin_gestures
|
8
|
+
register_listener(:after_command){|cmd, res| check_gesture(cmd) }
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def actions_history
|
14
|
+
@history ||= []
|
15
|
+
end
|
16
|
+
|
17
|
+
def check_gesture(cmd)
|
18
|
+
if cmd.history?
|
19
|
+
actions_history << [cmd, Time.new]
|
20
|
+
check_looking_for_something
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def recents(secs)
|
25
|
+
return actions_history.select{|cmd, time| time >= Time.new - secs}
|
26
|
+
end
|
27
|
+
|
28
|
+
def check_looking_for_something
|
29
|
+
if recents(60).count{|cmd, time| cmd.action == "next"} >= 5
|
30
|
+
delete_from_history "next"
|
31
|
+
suggest_songs
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def delete_from_history(cmd)
|
36
|
+
actions_history.delete_if {|cmd, time| cmd.action == "next"}
|
37
|
+
end
|
38
|
+
|
39
|
+
def suggest_songs
|
40
|
+
display "Hey! cant find anything? Try one of these:"
|
41
|
+
suggestions = get_suggestions
|
42
|
+
display to_display_list(suggestions)
|
43
|
+
playlists[:focus] <= suggestions
|
44
|
+
return suggestions
|
45
|
+
end
|
46
|
+
|
47
|
+
def select_suggestion
|
48
|
+
return (1..10).to_a.sample(1).first
|
49
|
+
end
|
50
|
+
|
51
|
+
def get_suggestions
|
52
|
+
id = select_suggestion
|
53
|
+
if (1..7).cover?(id)
|
54
|
+
criteria = case id
|
55
|
+
when 1 # los que tienen mas puntos
|
56
|
+
"points desc"
|
57
|
+
when 2 # los que tienen menos puntos
|
58
|
+
"points"
|
59
|
+
when 3 # las mas tocadas
|
60
|
+
"plays desc"
|
61
|
+
when 4 # los menos tocados
|
62
|
+
"plays"
|
63
|
+
when 5 # los agregados recientemente
|
64
|
+
"created_at desc"
|
65
|
+
when 6 # los recientemente tocados
|
66
|
+
"last_played_at"
|
67
|
+
when 7 # los recientemente tocados
|
68
|
+
"points desc, plays desc"
|
69
|
+
end
|
70
|
+
|
71
|
+
return Song.order(criteria).limit(5).to_a
|
72
|
+
|
73
|
+
else # mas complejos
|
74
|
+
case (id)
|
75
|
+
when 8 # Por artista popular
|
76
|
+
artist = Artist.order("points desc").limit(5).sample(1).first
|
77
|
+
return [] if artist.nil?
|
78
|
+
return artist.songs.sample(5)
|
79
|
+
when 9 # Por album popular
|
80
|
+
album = Album.order("points desc").limit(5).sample(1).first
|
81
|
+
return [] if album.nil?
|
82
|
+
return album.songs.sample(5)
|
83
|
+
else
|
84
|
+
return Song.all.sample(5)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end #sugestions
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
@@ -14,15 +14,15 @@ module CultomePlayer
|
|
14
14
|
else
|
15
15
|
help = send("usage_#{cmd.params.first.value}")
|
16
16
|
if help.nil?
|
17
|
-
failure("No help is available for '#{cmd.first.value}'.")
|
17
|
+
failure("No help is available for '#{cmd.params.first.value}'.")
|
18
18
|
else
|
19
19
|
success(message: help)
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
-
def
|
25
|
-
|
24
|
+
def sintax_help
|
25
|
+
/^literal (literal)$/
|
26
26
|
end
|
27
27
|
|
28
28
|
# Description of the action help.
|
@@ -55,4 +55,4 @@ To see the usage for play command:
|
|
55
55
|
end
|
56
56
|
end
|
57
57
|
end
|
58
|
-
end
|
58
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module CultomePlayer
|
2
|
+
module Plugins
|
3
|
+
module KeyboardSpecialKeys
|
4
|
+
def init_plugin_keyboard_special_keys
|
5
|
+
Thread.new do
|
6
|
+
start_cmd = "tail -f #{command_pipe}"
|
7
|
+
pipe = IO.popen(start_cmd, "rw")
|
8
|
+
pipe.each do |line|
|
9
|
+
#IO.popen(start_cmd).each do |line|
|
10
|
+
# planchamos el prompt...
|
11
|
+
display_over("")
|
12
|
+
# ejecutamos el comando
|
13
|
+
execute_interactively line
|
14
|
+
# y luego lo regeneramos
|
15
|
+
display_over c5(CultomePlayer::Interactive::PROMPT)
|
16
|
+
end # IO
|
17
|
+
end # Thread
|
18
|
+
end
|
19
|
+
end # module
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module CultomePlayer
|
2
|
+
module Plugins
|
3
|
+
module Points
|
4
|
+
def init_plugin_points
|
5
|
+
register_listener(:playback_finish){|song| on_playback_finish(song) }
|
6
|
+
register_listener(:before_command_next){|cmd, res| on_before_change(cmd) }
|
7
|
+
register_listener(:before_command_prev){|cmd, res| on_before_change(cmd) }
|
8
|
+
register_listener(:after_command_prev){|cmd, res| on_after_prev(cmd, res) }
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def on_before_change(cmd)
|
14
|
+
# current_song => the old song
|
15
|
+
return if current_song.nil?
|
16
|
+
|
17
|
+
percent_played = playback_position * 100 / playback_length
|
18
|
+
gain = case percent_played
|
19
|
+
when (10..50) then -1
|
20
|
+
when (81..100) then 1
|
21
|
+
else 0
|
22
|
+
end
|
23
|
+
|
24
|
+
update_points(gain)
|
25
|
+
end
|
26
|
+
|
27
|
+
def on_after_prev(cmd, response)
|
28
|
+
# # current_song => the new song
|
29
|
+
return if current_song.nil?
|
30
|
+
|
31
|
+
if response.success?
|
32
|
+
update_points(1)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def on_playback_finish(song)
|
37
|
+
update_points(1)
|
38
|
+
end
|
39
|
+
|
40
|
+
def update_points(diff)
|
41
|
+
if current_song
|
42
|
+
current_song.update(points: current_song.points + diff)
|
43
|
+
current_song.artist.update(points: current_song.artist.points + diff) unless current_song.artist.nil?
|
44
|
+
current_song.album.update(points: current_song.album.points + diff) unless current_song.album.nil?
|
45
|
+
current_song.genres.each{|g| g.update(points: g.points + diff) } unless current_song.genres.nil?
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
data/lib/cultome_player/utils.rb
CHANGED
@@ -1,8 +1,16 @@
|
|
1
|
+
require 'cultome_player/objects'
|
1
2
|
require 'active_record'
|
3
|
+
require 'colorize'
|
2
4
|
|
3
5
|
module CultomePlayer
|
4
6
|
module Utils
|
5
7
|
|
8
|
+
def to_display_list(list)
|
9
|
+
return list.collect.with_index do |elem, idx|
|
10
|
+
c4("#{(idx + 1).to_s.ljust(3)} | ") + elem.to_s
|
11
|
+
end.join("\n")
|
12
|
+
end
|
13
|
+
|
6
14
|
# Check if a string value can be a positive boolean value.
|
7
15
|
#
|
8
16
|
# @param value [String] String to check if can be a positive boolean value.
|
@@ -17,7 +25,7 @@ module CultomePlayer
|
|
17
25
|
# @return [String] The value printed.
|
18
26
|
def display(msg)
|
19
27
|
stdout.puts msg
|
20
|
-
return msg
|
28
|
+
return "#{msg}\n"
|
21
29
|
end
|
22
30
|
|
23
31
|
# Print a string into stdout (not STDOUT) but before insert a carriage return and dont append a newline character at the end.
|
@@ -25,14 +33,34 @@ module CultomePlayer
|
|
25
33
|
# @param msg [String] The value to be printed.
|
26
34
|
# @return [String] The value printed.
|
27
35
|
def display_over(msg)
|
28
|
-
|
36
|
+
msg = "\r#{msg}"
|
37
|
+
stdout.print msg
|
29
38
|
return msg
|
30
39
|
end
|
31
40
|
|
32
|
-
# Define the
|
33
|
-
(1..
|
41
|
+
# Define the 18 colors allowed in my console scheme
|
42
|
+
(1..18).each do |idx|
|
34
43
|
define_method :"c#{idx}" do |str|
|
35
|
-
|
44
|
+
case idx
|
45
|
+
when 1 then str.colorize(:blue)
|
46
|
+
when 2 then str.colorize(:black)
|
47
|
+
when 3 then str.colorize(:red)
|
48
|
+
when 4 then str.colorize(:green)
|
49
|
+
when 5 then str.colorize(:yellow)
|
50
|
+
when 6 then str.colorize(:blue)
|
51
|
+
when 7 then str.colorize(:magenta)
|
52
|
+
when 8 then str.colorize(:cyan)
|
53
|
+
when 9 then str.colorize(:white)
|
54
|
+
when 10 then str.colorize(:default)
|
55
|
+
when 11 then str.colorize(:light_black)
|
56
|
+
when 12 then str.colorize(:light_red)
|
57
|
+
when 13 then str.colorize(:light_green)
|
58
|
+
when 14 then str.colorize(:light_yellow)
|
59
|
+
when 15 then str.colorize(:light_blue)
|
60
|
+
when 16 then str.colorize(:light_magenta)
|
61
|
+
when 17 then str.colorize(:light_cyan)
|
62
|
+
when 18 then str.colorize(:light_white)
|
63
|
+
end
|
36
64
|
end
|
37
65
|
end
|
38
66
|
|
@@ -45,11 +73,11 @@ module CultomePlayer
|
|
45
73
|
def arrange_in_columns(cols, widths, border)
|
46
74
|
row = ""
|
47
75
|
idxs = cols.collect{|c| 0 }
|
48
|
-
|
76
|
+
|
49
77
|
while cols.zip(idxs).any?{|col| col[0].length > col[1] }
|
50
78
|
cols.each.with_index do |col, idx|
|
51
79
|
slice_width = widths[idx]
|
52
|
-
|
80
|
+
|
53
81
|
slice = col.slice(idxs[idx], slice_width) || "" # sacamos el pedazo de la columna
|
54
82
|
row << slice.ljust(slice_width) # concatenamos a la fila
|
55
83
|
idxs[idx] += slice_width # recorremos el indice
|
@@ -91,5 +119,87 @@ module CultomePlayer
|
|
91
119
|
|
92
120
|
ActiveRecord::Base.connection_pool.with_connection(&db_logic)
|
93
121
|
end
|
122
|
+
|
123
|
+
def ensure_db_schema
|
124
|
+
begin
|
125
|
+
# hacemos una simple query a la base de datos para verificar
|
126
|
+
with_connection{ CultomePlayer::Objects::Song.first }
|
127
|
+
rescue
|
128
|
+
# si la query no funciona recreamos el esquema
|
129
|
+
recreate_db_schema
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
def recreate_db_schema
|
134
|
+
with_connection do
|
135
|
+
swallow_stdout do
|
136
|
+
begin
|
137
|
+
ActiveRecord::Schema.drop_table('songs')
|
138
|
+
ActiveRecord::Schema.drop_table('albums')
|
139
|
+
ActiveRecord::Schema.drop_table('artists')
|
140
|
+
ActiveRecord::Schema.drop_table('genres')
|
141
|
+
ActiveRecord::Schema.drop_table('genres_songs')
|
142
|
+
ActiveRecord::Schema.drop_table('drives')
|
143
|
+
rescue
|
144
|
+
end
|
145
|
+
|
146
|
+
begin
|
147
|
+
ActiveRecord::Schema.define do
|
148
|
+
create_table :songs do |t|
|
149
|
+
t.string :name # If I Had A Gun
|
150
|
+
t.integer :artist_id, default: 0 # Noel Gallagher
|
151
|
+
t.integer :album_id, default: 0 # High Flying Birds
|
152
|
+
t.integer :year # 2011
|
153
|
+
t.integer :track # 3
|
154
|
+
t.integer :duration # 210 sec
|
155
|
+
t.integer :drive_id
|
156
|
+
t.string :relative_path
|
157
|
+
t.integer :points, default: 0
|
158
|
+
t.integer :plays, default: 0
|
159
|
+
t.datetime :last_played_at
|
160
|
+
t.timestamps
|
161
|
+
end
|
162
|
+
|
163
|
+
create_table :albums do |t|
|
164
|
+
t.string :name
|
165
|
+
t.integer :points, default: 0
|
166
|
+
t.timestamps
|
167
|
+
end
|
168
|
+
|
169
|
+
create_table :artists do |t|
|
170
|
+
t.string :name
|
171
|
+
t.integer :points, default: 0
|
172
|
+
t.timestamps
|
173
|
+
end
|
174
|
+
|
175
|
+
create_table :genres do |t|
|
176
|
+
t.integer :points, default: 0
|
177
|
+
t.string :name
|
178
|
+
end
|
179
|
+
|
180
|
+
create_table :genres_songs, id: false do |t|
|
181
|
+
t.integer :song_id
|
182
|
+
t.integer :genre_id
|
183
|
+
end
|
184
|
+
|
185
|
+
create_table :drives do |t|
|
186
|
+
t.string :name
|
187
|
+
t.string :path
|
188
|
+
t.boolean :connected, default: true
|
189
|
+
t.timestamps
|
190
|
+
end
|
191
|
+
end
|
192
|
+
rescue
|
193
|
+
end # begin
|
194
|
+
end # swallow_stdout
|
195
|
+
|
196
|
+
# Default and required values
|
197
|
+
CultomePlayer::Objects::Album.find_or_create_by(id: 0, name: 'Unknown')
|
198
|
+
CultomePlayer::Objects::Artist.find_or_create_by(id: 0, name: 'Unknown')
|
199
|
+
|
200
|
+
return true
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
94
204
|
end
|
95
205
|
end
|
metadata
CHANGED
@@ -1,195 +1,195 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cultome_player
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carlos Soria
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activesupport
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: taglib-ruby
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rb-readline
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: sqlite3
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: colorize
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rake
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: coveralls
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: rspec
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- -
|
129
|
+
- - ">="
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: '0'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- -
|
136
|
+
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: bundler
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- -
|
143
|
+
- - ">="
|
144
144
|
- !ruby/object:Gem::Version
|
145
145
|
version: '0'
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- -
|
150
|
+
- - ">="
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: database_cleaner
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
|
-
- -
|
157
|
+
- - ">="
|
158
158
|
- !ruby/object:Gem::Version
|
159
159
|
version: '0'
|
160
160
|
type: :development
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
|
-
- -
|
164
|
+
- - ">="
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '0'
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: pry
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
|
-
- -
|
171
|
+
- - ">="
|
172
172
|
- !ruby/object:Gem::Version
|
173
173
|
version: '0'
|
174
174
|
type: :development
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
|
-
- -
|
178
|
+
- - ">="
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: '0'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: yard
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
184
184
|
requirements:
|
185
|
-
- -
|
185
|
+
- - ">="
|
186
186
|
- !ruby/object:Gem::Version
|
187
187
|
version: '0'
|
188
188
|
type: :development
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
|
-
- -
|
192
|
+
- - ">="
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: '0'
|
195
195
|
description: A console music library explorer and player
|
@@ -199,10 +199,6 @@ executables:
|
|
199
199
|
extensions: []
|
200
200
|
extra_rdoc_files: []
|
201
201
|
files:
|
202
|
-
- .coveralls.yml
|
203
|
-
- .gitignore
|
204
|
-
- .rspec
|
205
|
-
- .travis.yml
|
206
202
|
- Gemfile
|
207
203
|
- LICENSE.txt
|
208
204
|
- README.md
|
@@ -210,7 +206,6 @@ files:
|
|
210
206
|
- bin/cultome_player
|
211
207
|
- config/environment.yml
|
212
208
|
- cultome_player.gemspec
|
213
|
-
- db/001_create_schema.rb
|
214
209
|
- lib/cultome_player.rb
|
215
210
|
- lib/cultome_player/command.rb
|
216
211
|
- lib/cultome_player/command/language.rb
|
@@ -239,37 +234,15 @@ files:
|
|
239
234
|
- lib/cultome_player/player/interface/helper.rb
|
240
235
|
- lib/cultome_player/player/playlist.rb
|
241
236
|
- lib/cultome_player/plugins.rb
|
237
|
+
- lib/cultome_player/plugins/alias.rb
|
238
|
+
- lib/cultome_player/plugins/gestures.rb
|
242
239
|
- lib/cultome_player/plugins/help.rb
|
240
|
+
- lib/cultome_player/plugins/keyboard_special_keys.rb
|
241
|
+
- lib/cultome_player/plugins/points.rb
|
243
242
|
- lib/cultome_player/state_checker.rb
|
244
243
|
- lib/cultome_player/utils.rb
|
245
244
|
- lib/cultome_player/version.rb
|
246
|
-
-
|
247
|
-
- spec/cultome_player/command/processor_spec.rb
|
248
|
-
- spec/cultome_player/command/reader_spec.rb
|
249
|
-
- spec/cultome_player/cultome_player_spec.rb
|
250
|
-
- spec/cultome_player/environment_spec.rb
|
251
|
-
- spec/cultome_player/events_spec.rb
|
252
|
-
- spec/cultome_player/media_spec.rb
|
253
|
-
- spec/cultome_player/player/adapter/mpg123_spec.rb
|
254
|
-
- spec/cultome_player/player/interface/basic_spec.rb
|
255
|
-
- spec/cultome_player/player/interface/extended/connect_spec.rb
|
256
|
-
- spec/cultome_player/player/interface/extended/search_spec.rb
|
257
|
-
- spec/cultome_player/player/interface/extended/show_spec.rb
|
258
|
-
- spec/cultome_player/player/interface/extended/shuffle_spec.rb
|
259
|
-
- spec/cultome_player/player/interface/extended_spec.rb
|
260
|
-
- spec/cultome_player/player/interface/helper_spec.rb
|
261
|
-
- spec/cultome_player/player/interface_spec.rb
|
262
|
-
- spec/cultome_player/player/playlist_spec.rb
|
263
|
-
- spec/cultome_player/plugins/help_spec.rb
|
264
|
-
- spec/cultome_player/plugins_spec.rb
|
265
|
-
- spec/cultome_player/utils_spec.rb
|
266
|
-
- spec/spec_helper.rb
|
267
|
-
- spec/test/uno/dos/dos.mp3
|
268
|
-
- spec/test/uno/dos/tres/tres.mp3
|
269
|
-
- spec/test/uno/uno.mp3
|
270
|
-
- tasks/console.rake
|
271
|
-
- tasks/db.rake
|
272
|
-
- tasks/run.rake
|
245
|
+
- xbindkeys/xbindkeysrc
|
273
246
|
homepage: https://github.com/cultome/cultome_player
|
274
247
|
licenses:
|
275
248
|
- MIT
|
@@ -280,43 +253,18 @@ require_paths:
|
|
280
253
|
- lib
|
281
254
|
required_ruby_version: !ruby/object:Gem::Requirement
|
282
255
|
requirements:
|
283
|
-
- -
|
256
|
+
- - ">="
|
284
257
|
- !ruby/object:Gem::Version
|
285
258
|
version: '0'
|
286
259
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
287
260
|
requirements:
|
288
|
-
- -
|
261
|
+
- - ">="
|
289
262
|
- !ruby/object:Gem::Version
|
290
263
|
version: '0'
|
291
264
|
requirements: []
|
292
265
|
rubyforge_project:
|
293
|
-
rubygems_version: 2.
|
266
|
+
rubygems_version: 2.5.1
|
294
267
|
signing_key:
|
295
268
|
specification_version: 4
|
296
269
|
summary: CulToMe Player
|
297
|
-
test_files:
|
298
|
-
- spec/config.yml
|
299
|
-
- spec/cultome_player/command/processor_spec.rb
|
300
|
-
- spec/cultome_player/command/reader_spec.rb
|
301
|
-
- spec/cultome_player/cultome_player_spec.rb
|
302
|
-
- spec/cultome_player/environment_spec.rb
|
303
|
-
- spec/cultome_player/events_spec.rb
|
304
|
-
- spec/cultome_player/media_spec.rb
|
305
|
-
- spec/cultome_player/player/adapter/mpg123_spec.rb
|
306
|
-
- spec/cultome_player/player/interface/basic_spec.rb
|
307
|
-
- spec/cultome_player/player/interface/extended/connect_spec.rb
|
308
|
-
- spec/cultome_player/player/interface/extended/search_spec.rb
|
309
|
-
- spec/cultome_player/player/interface/extended/show_spec.rb
|
310
|
-
- spec/cultome_player/player/interface/extended/shuffle_spec.rb
|
311
|
-
- spec/cultome_player/player/interface/extended_spec.rb
|
312
|
-
- spec/cultome_player/player/interface/helper_spec.rb
|
313
|
-
- spec/cultome_player/player/interface_spec.rb
|
314
|
-
- spec/cultome_player/player/playlist_spec.rb
|
315
|
-
- spec/cultome_player/plugins/help_spec.rb
|
316
|
-
- spec/cultome_player/plugins_spec.rb
|
317
|
-
- spec/cultome_player/utils_spec.rb
|
318
|
-
- spec/spec_helper.rb
|
319
|
-
- spec/test/uno/dos/dos.mp3
|
320
|
-
- spec/test/uno/dos/tres/tres.mp3
|
321
|
-
- spec/test/uno/uno.mp3
|
322
|
-
has_rdoc:
|
270
|
+
test_files: []
|