⚠️ Please use https://github.com/ruby-microservices/pairtree It is now being maintained again, so there is no need for this separate fork.
pairtree0.3.0 andrpairtree0.3.0 are identical. This repository will be archived, and there will be no further releases ofrpairtree.
rpairtree
Ruby implementation of the Pairtree specification from the California Digital Library.
Installation
Add this line to your application's Gemfile:
gem 'rpairtree'And then execute:
$ bundle
Or install it yourself as:
$ gem install rpairtree
Usage
  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
Copyright (c) 2010 Chris Beer. See LICENSE.txt for further details.