1- require ' pairtree/identifier'
2- require ' pairtree/path'
3- require ' pairtree/obj'
4- require ' pairtree/root'
1+ require " pairtree/identifier"
2+ require " pairtree/path"
3+ require " pairtree/obj"
4+ require " pairtree/root"
55
6- require ' fileutils'
6+ require " fileutils"
77
88module Pairtree
9- class IdentifierError < Exception ; end
10- class PathError < Exception ; end
11- class VersionMismatch < Exception ; end
9+ class IdentifierError < RuntimeError ; end
10+
11+ class PathError < RuntimeError ; end
12+
13+ class VersionMismatch < RuntimeError ; end
1214
1315 SPEC_VERSION = 0.1
14-
16+
1517 ##
1618 # Instantiate a pairtree at a given path location
1719 # @param [String] path The path in which the pairtree resides
@@ -20,34 +22,34 @@ class VersionMismatch < Exception; end
2022 # @option args [String] :version (Pairtree::SPEC_VERSION) the version of the pairtree spec that this tree conforms to
2123 # @option args [Boolean] :create (false) if true, create the pairtree and its directory structure if it doesn't already exist
2224 def self . at path , args = { }
23- args = { : prefix => nil , : version => nil , : create => false } . merge ( args )
25+ args = { prefix : nil , version : nil , create : false } . merge ( args )
2426 args [ :version ] ||= SPEC_VERSION
2527 args [ :version ] = args [ :version ] . to_f
26-
27- root_path = File . join ( path , ' pairtree_root' )
28- prefix_file = File . join ( path , ' pairtree_prefix' )
28+
29+ root_path = File . join ( path , " pairtree_root" )
30+ prefix_file = File . join ( path , " pairtree_prefix" )
2931 version_file = File . join ( path , pairtree_version_filename ( args [ :version ] ) )
30- existing_version_file = Dir [ File . join ( path , "pairtree_version*" ) ] . sort . last
31-
32+ existing_version_file = Dir [ File . join ( path , "pairtree_version*" ) ] . max
33+
3234 if args . delete ( :create )
33- if File . exists ?( path ) and not File . directory? ( path )
35+ if File . exist ?( path ) && ! File . directory? ( path )
3436 raise PathError , "#{ path } exists, but is not a valid pairtree root"
3537 end
3638 FileUtils . mkdir_p ( root_path )
3739
38- unless File . exists ? prefix_file
39- File . open ( prefix_file , 'w' ) { | f | f . write ( args [ :prefix ] . to_s ) }
40+ unless File . exist ? prefix_file
41+ File . write ( prefix_file , args [ :prefix ] . to_s )
4042 end
41-
43+
4244 if existing_version_file
4345 if existing_version_file != version_file
44- stored_version = existing_version_file . scan ( /([0-9]+)_([0-9]+)/ ) . flatten . join ( '.' ) . to_f
46+ stored_version = existing_version_file . scan ( /([0-9]+)_([0-9]+)/ ) . flatten . join ( "." ) . to_f
4547 raise VersionMismatch , "Version #{ args [ :version ] } specified, but #{ stored_version } found."
4648 end
4749 else
4850 args [ :version ] ||= SPEC_VERSION
4951 version_file = File . join ( path , pairtree_version_filename ( args [ :version ] ) )
50- File . open ( version_file , 'w' ) { | f | f . write %{ This directory conforms to Pairtree Version #{ args [ :version ] } . Updated spec: http://www.cdlib.org/inside/diglib/pairtree/pairtreespec.html} }
52+ File . write ( version_file , %( This directory conforms to Pairtree Version #{ args [ :version ] } . Updated spec: http://www.cdlib.org/inside/diglib/pairtree/pairtreespec.html) )
5153 existing_version_file = version_file
5254 end
5355 else
@@ -57,22 +59,25 @@ def self.at path, args = {}
5759 end
5860
5961 stored_prefix = File . read ( prefix_file )
60- unless args [ :prefix ] . nil? or args [ :prefix ] . to_s == stored_prefix
62+ unless args [ :prefix ] . nil? || ( args [ :prefix ] . to_s == stored_prefix )
6163 raise IdentifierError , "Specified prefix #{ args [ :prefix ] . inspect } does not match stored prefix #{ stored_prefix . inspect } "
6264 end
6365 args [ :prefix ] = stored_prefix
6466
65- stored_version = existing_version_file . scan ( /([0-9]+)_([0-9]+)/ ) . flatten . join ( '.' ) . to_f
67+ stored_version = existing_version_file . scan ( /([0-9]+)_([0-9]+)/ ) . flatten . join ( "." ) . to_f
6668 args [ :version ] ||= stored_version
6769 unless args [ :version ] == stored_version
6870 raise VersionMismatch , "Version #{ args [ :version ] } specified, but #{ stored_version } found."
6971 end
70-
71- Pairtree ::Root . new ( File . join ( path , ' pairtree_root' ) , args )
72+
73+ Pairtree ::Root . new ( File . join ( path , " pairtree_root" ) , args )
7274 end
7375
74- private
75- def self . pairtree_version_filename ( version )
76- "pairtree_version#{ version . to_s . gsub ( /\. / , '_' ) } "
76+ class << self
77+ private
78+
79+ def pairtree_version_filename ( version )
80+ "pairtree_version#{ version . to_s . tr ( "." , "_" ) } "
81+ end
7782 end
7883end
0 commit comments