lib/pairtree/root.rb in pairtree-0.1.0 vs lib/pairtree/root.rb in pairtree-0.3.0
- old
+ new
@@ -1,38 +1,38 @@
-require 'fileutils'
+require "fileutils"
module Pairtree
class Root
SHORTY_LENGTH = 2
attr_reader :root, :prefix
-
+
##
# @param [String] root The pairtree_root directory within the pairtree home
# @param [Hash] args Pairtree options
# @option args [String] :prefix (nil) the identifier prefix used throughout the pairtree
# @option args [String] :version (Pairtree::SPEC_VERSION) the version of the pairtree spec that this tree conforms to
def initialize root, args = {}
@root = root
-
+
@shorty_length = args.delete(:shorty_length) || SHORTY_LENGTH
- @prefix = args.delete(:prefix) || ''
+ @prefix = args.delete(:prefix) || ""
@options = args
end
##
# Get a list of valid existing identifiers within the pairtree
# @return [Array]
- def list
+ def list
objects = []
return [] unless File.directory? @root
Dir.chdir(@root) do
- possibles = Dir['**/?'] + Dir['**/??']
+ possibles = Dir["**/?"] + Dir["**/??"]
possibles.each { |path|
contents = Dir.entries(path).reject { |x| x =~ /^\./ }
- objects << path unless contents.all? { |f| f.length <= @shorty_length and File.directory?(File.join(path, f)) }
+ objects << path unless contents.all? { |f| (f.length <= @shorty_length) && File.directory?(File.join(path, f)) }
}
end
objects.map { |x| @prefix + Pairtree::Path.path_to_id(x) }
end
@@ -40,64 +40,63 @@
# Get the path containing the pairtree_root
# @return [String]
def path
File.dirname(root)
end
-
+
##
# Get the full path for a given identifier (whether it exists or not)
# @param [String] id The full, prefixed identifier
# @return [String]
def path_for id
unless id.start_with? @prefix
raise IdentifierError, "Identifier must start with #{@prefix}"
end
- path_id = id[@prefix.length..-1]
+ path_id = id[@prefix.length..]
File.join(@root, Pairtree::Path.id_to_path(path_id))
end
##
# Determine if a given identifier exists within the pairtree
# @param [String] id The full, prefixed identifier
# @return [Boolean]
def exists? id
File.directory?(path_for(id))
end
-
+
##
# Get an existing ppath
# @param [String] id The full, prefixed identifier
# @return [Pairtree::Obj] The object encapsulating the identifier's ppath
def get id
Pairtree::Obj.new path_for(id)
end
alias_method :[], :get
-
+
##
# Create a new ppath
# @param [String] id The full, prefixed identifier
# @return [Pairtree::Obj] The object encapsulating the newly created ppath
def mk id
FileUtils.mkdir_p path_for(id)
get(id)
end
-
+
##
# Delete a ppath
# @param [String] id The full, prefixed identifier
# @return [Boolean]
def purge! id
if exists?(id)
Pairtree::Path.remove!(path_for(id))
end
- not exists?(id)
+ !exists?(id)
end
##
# Get the version of the pairtree spec that this pairtree conforms to
# @return [String]
def pairtree_version
@options[:version]
end
-
end
end