Ruby implementation of the Pairtree specification from the California Digital Library.
Add this line to your application's Gemfile:
gem 'pairtree'
And then execute:
$ bundle
Or install it yourself as:
$ gem install pairtree
require 'pairtree'
# Initiate a tree
pairtree = Pairtree.at('./data', :prefix => 'pfx:', :create => true)
# Create a ppath
obj = pairtree.mk('pfx:abc123def')
# Access an existing ppath
obj = pairtree['pfx:abc123def']
obj = pairtree.get('pfx:abc123def')
# ppaths are Dir instances with some File and Dir class methods mixed in
obj.read('content.xml')
=> "<content/>"
obj.open('my_file.txt','w') { |io| io.write("Write text to file") }
obj.entries
=> ["content.xml","my_file.txt"]
obj['*.xml']
=> ["content.xml"]
obj.each { |file| ... }
obj.unlink('my_file.txt')
# Delete a ppath and all its contents
pairtree.purge!('pfx:abc123def')
Copyright (c) 2010 Chris Beer. See LICENSE.txt for further details.