cultome_player 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +24 -0
  4. data/.rspec +2 -0
  5. data/.travis.yml +7 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +325 -0
  9. data/Rakefile +8 -0
  10. data/bin/cultome_player +39 -0
  11. data/config/environment.yml +28 -0
  12. data/cultome_player.gemspec +35 -0
  13. data/db/001_create_schema.rb +58 -0
  14. data/lib/cultome_player.rb +107 -0
  15. data/lib/cultome_player/command.rb +11 -0
  16. data/lib/cultome_player/command/language.rb +61 -0
  17. data/lib/cultome_player/command/processor.rb +165 -0
  18. data/lib/cultome_player/command/reader.rb +86 -0
  19. data/lib/cultome_player/environment.rb +130 -0
  20. data/lib/cultome_player/events.rb +29 -0
  21. data/lib/cultome_player/media.rb +47 -0
  22. data/lib/cultome_player/objects.rb +15 -0
  23. data/lib/cultome_player/objects/album.rb +21 -0
  24. data/lib/cultome_player/objects/artist.rb +18 -0
  25. data/lib/cultome_player/objects/command.rb +37 -0
  26. data/lib/cultome_player/objects/drive.rb +26 -0
  27. data/lib/cultome_player/objects/genre.rb +16 -0
  28. data/lib/cultome_player/objects/parameter.rb +37 -0
  29. data/lib/cultome_player/objects/response.rb +42 -0
  30. data/lib/cultome_player/objects/song.rb +38 -0
  31. data/lib/cultome_player/player.rb +13 -0
  32. data/lib/cultome_player/player/adapter.rb +14 -0
  33. data/lib/cultome_player/player/adapter/mpg123.rb +143 -0
  34. data/lib/cultome_player/player/interactive.rb +56 -0
  35. data/lib/cultome_player/player/interface.rb +13 -0
  36. data/lib/cultome_player/player/interface/basic.rb +96 -0
  37. data/lib/cultome_player/player/interface/builtin_help.rb +368 -0
  38. data/lib/cultome_player/player/interface/extended.rb +199 -0
  39. data/lib/cultome_player/player/interface/helper.rb +300 -0
  40. data/lib/cultome_player/player/playlist.rb +280 -0
  41. data/lib/cultome_player/plugins.rb +23 -0
  42. data/lib/cultome_player/plugins/help.rb +58 -0
  43. data/lib/cultome_player/state_checker.rb +74 -0
  44. data/lib/cultome_player/utils.rb +95 -0
  45. data/lib/cultome_player/version.rb +3 -0
  46. data/spec/config.yml +0 -0
  47. data/spec/cultome_player/command/processor_spec.rb +168 -0
  48. data/spec/cultome_player/command/reader_spec.rb +45 -0
  49. data/spec/cultome_player/cultome_player_spec.rb +17 -0
  50. data/spec/cultome_player/environment_spec.rb +65 -0
  51. data/spec/cultome_player/events_spec.rb +22 -0
  52. data/spec/cultome_player/media_spec.rb +41 -0
  53. data/spec/cultome_player/player/adapter/mpg123_spec.rb +82 -0
  54. data/spec/cultome_player/player/interface/basic_spec.rb +168 -0
  55. data/spec/cultome_player/player/interface/extended/connect_spec.rb +117 -0
  56. data/spec/cultome_player/player/interface/extended/search_spec.rb +90 -0
  57. data/spec/cultome_player/player/interface/extended/show_spec.rb +36 -0
  58. data/spec/cultome_player/player/interface/extended/shuffle_spec.rb +26 -0
  59. data/spec/cultome_player/player/interface/extended_spec.rb +136 -0
  60. data/spec/cultome_player/player/interface/helper_spec.rb +63 -0
  61. data/spec/cultome_player/player/interface_spec.rb +17 -0
  62. data/spec/cultome_player/player/playlist_spec.rb +301 -0
  63. data/spec/cultome_player/plugins/help_spec.rb +21 -0
  64. data/spec/cultome_player/plugins_spec.rb +19 -0
  65. data/spec/cultome_player/utils_spec.rb +15 -0
  66. data/spec/spec_helper.rb +108 -0
  67. data/spec/test/uno/dos/dos.mp3 +0 -0
  68. data/spec/test/uno/dos/tres/tres.mp3 +0 -0
  69. data/spec/test/uno/uno.mp3 +0 -0
  70. data/tasks/console.rake +19 -0
  71. data/tasks/db.rake +19 -0
  72. data/tasks/run.rake +7 -0
  73. metadata +322 -0
Binary file
Binary file
Binary file
@@ -0,0 +1,19 @@
1
+ require 'cultome_player'
2
+ require 'pry'
3
+
4
+ include CultomePlayer::Environment
5
+
6
+ desc "Start a interactive session in the player"
7
+ task :console do
8
+ include CultomePlayer::Objects
9
+
10
+ p = CultomePlayer.get_player
11
+
12
+ ActiveRecord::Base.establish_connection(
13
+ adapter: db_adapter,
14
+ database: db_file
15
+ )
16
+ ActiveRecord::Base.logger = Logger.new(File.open(db_log_file, 'a'))
17
+
18
+ binding.pry
19
+ end
data/tasks/db.rake ADDED
@@ -0,0 +1,19 @@
1
+ require 'cultome_player'
2
+
3
+ include CultomePlayer::Environment
4
+ include CultomePlayer::Utils
5
+ include CultomePlayer::Objects
6
+
7
+ namespace :db do
8
+ desc "Create database schema"
9
+ task :create, :env do |t, args|
10
+ migrations_path= File.join(File.dirname(File.expand_path(__FILE__)), "../db")
11
+ env = args[:env] || :user
12
+ prepare_environment(env, false)
13
+ with_connection do
14
+ ActiveRecord::Migrator.migrate(migrations_path)
15
+ Album.find_or_create_by(id: 0, name: 'Unknown')
16
+ Artist.find_or_create_by(id: 0, name: 'Unknown')
17
+ end
18
+ end
19
+ end
data/tasks/run.rake ADDED
@@ -0,0 +1,7 @@
1
+ desc "Execute the player in interactive mode in user env"
2
+ task :run do
3
+ $LOAD_PATH << File.join(File.dirname(File.expand_path(__FILE__)), "..")
4
+ require 'cultome_player'
5
+ player = CultomePlayer.get_player(:user)
6
+ player.begin_session
7
+ end
metadata ADDED
@@ -0,0 +1,322 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cultome_player
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Carlos Soria
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-04-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activerecord
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: taglib-ruby
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rb-readline
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: sqlite3
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: colorize
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rake
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: coveralls
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rspec
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: bundler
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: database_cleaner
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: pry
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: yard
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - '>='
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - '>='
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ description: A console music library explorer and player
196
+ email: cultome@gmail.com
197
+ executables:
198
+ - cultome_player
199
+ extensions: []
200
+ extra_rdoc_files: []
201
+ files:
202
+ - .coveralls.yml
203
+ - .gitignore
204
+ - .rspec
205
+ - .travis.yml
206
+ - Gemfile
207
+ - LICENSE.txt
208
+ - README.md
209
+ - Rakefile
210
+ - bin/cultome_player
211
+ - config/environment.yml
212
+ - cultome_player.gemspec
213
+ - db/001_create_schema.rb
214
+ - lib/cultome_player.rb
215
+ - lib/cultome_player/command.rb
216
+ - lib/cultome_player/command/language.rb
217
+ - lib/cultome_player/command/processor.rb
218
+ - lib/cultome_player/command/reader.rb
219
+ - lib/cultome_player/environment.rb
220
+ - lib/cultome_player/events.rb
221
+ - lib/cultome_player/media.rb
222
+ - lib/cultome_player/objects.rb
223
+ - lib/cultome_player/objects/album.rb
224
+ - lib/cultome_player/objects/artist.rb
225
+ - lib/cultome_player/objects/command.rb
226
+ - lib/cultome_player/objects/drive.rb
227
+ - lib/cultome_player/objects/genre.rb
228
+ - lib/cultome_player/objects/parameter.rb
229
+ - lib/cultome_player/objects/response.rb
230
+ - lib/cultome_player/objects/song.rb
231
+ - lib/cultome_player/player.rb
232
+ - lib/cultome_player/player/adapter.rb
233
+ - lib/cultome_player/player/adapter/mpg123.rb
234
+ - lib/cultome_player/player/interactive.rb
235
+ - lib/cultome_player/player/interface.rb
236
+ - lib/cultome_player/player/interface/basic.rb
237
+ - lib/cultome_player/player/interface/builtin_help.rb
238
+ - lib/cultome_player/player/interface/extended.rb
239
+ - lib/cultome_player/player/interface/helper.rb
240
+ - lib/cultome_player/player/playlist.rb
241
+ - lib/cultome_player/plugins.rb
242
+ - lib/cultome_player/plugins/help.rb
243
+ - lib/cultome_player/state_checker.rb
244
+ - lib/cultome_player/utils.rb
245
+ - lib/cultome_player/version.rb
246
+ - spec/config.yml
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
273
+ homepage: https://github.com/cultome/cultome_player
274
+ licenses:
275
+ - MIT
276
+ metadata: {}
277
+ post_install_message:
278
+ rdoc_options: []
279
+ require_paths:
280
+ - lib
281
+ required_ruby_version: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - '>='
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
286
+ required_rubygems_version: !ruby/object:Gem::Requirement
287
+ requirements:
288
+ - - '>='
289
+ - !ruby/object:Gem::Version
290
+ version: '0'
291
+ requirements: []
292
+ rubyforge_project:
293
+ rubygems_version: 2.2.2
294
+ signing_key:
295
+ specification_version: 4
296
+ 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: