summaryrefslogtreecommitdiff
path: root/libmpd
diff options
context:
space:
mode:
authorDavid Vazgenovich Shakaryan <dvshakaryan@gmail.com>2009-08-01 16:23:35 -0700
committerDavid Vazgenovich Shakaryan <dvshakaryan@gmail.com>2009-08-01 16:23:35 -0700
commitaf6101f5e39310445e831554a62c449148476e01 (patch)
tree541d8129a2bf9c60e6c432f348b996c12c25a0c3 /libmpd
parent3299b865f3876030cd4b34fa364fad0a64504baf (diff)
downloadruby-libmpd-af6101f5e39310445e831554a62c449148476e01.tar.gz
ruby-libmpd-af6101f5e39310445e831554a62c449148476e01.tar.xz
Add a new directories method to database methods.
Diffstat (limited to 'libmpd')
-rw-r--r--libmpd/database.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/libmpd/database.rb b/libmpd/database.rb
index 00cc693..4f08f5c 100644
--- a/libmpd/database.rb
+++ b/libmpd/database.rb
@@ -11,6 +11,21 @@
# Collection of methods related to the database.
module MPDDatabase
+ # Returns all directories.
+ # If an argument is specified, list all subdirectories of that directory.
+ def directories(uri=nil)
+ command = 'listall'
+ command << ' "%s"' % uri if uri
+
+ if uri
+ path = Regexp.escape(uri + '/')
+ else
+ path = String.new
+ end
+
+ return send_request(command).scan(/^directory: #{path}([^\/]+)\n/).flatten
+ end
+
# Counts the number of songs in the database where _field_ is _value_, as
# well as their total playtime.
def count(field, value)