module SvnTestUtil class Greek TREE = [ # relative path , contents(nil means directory) ["iota" , "This is the file 'iota'.\n" ], ["A" , nil ], ["A/mu" , "This is the file 'mu'.\n" ], ["A/B" , nil ], ["A/B/lambda" , "This is the file 'lambda'.\n" ], ["A/B/E" , nil ], ["A/B/E/alpha" , "This is the file 'alpha'.\n" ], ["A/B/E/beta" , "This is the file 'beta'.\n" ], ["A/B/F" , nil ], ["A/C" , nil ], ["A/D" , nil ], ["A/D/gamma" , "This is the file 'gamma'.\n" ], ["A/D/G" , nil ], ["A/D/G/pi" , "This is the file 'pi'.\n" ], ["A/D/G/rho" , "This is the file 'rho'.\n" ], ["A/D/G/tau" , "This is the file 'tau'.\n" ], ["A/D/H" , nil ], ["A/D/H/chi" , "This is the file 'chi'.\n" ], ["A/D/H/psi" , "This is the file 'psi'.\n" ], ["A/D/H/omega" , "This is the file 'omega'.\n" ] ] TREE.each do |path, contents| const_set(path.split("/").last.upcase, path) end def initialize(tmp_path, wc_path, repos_uri) @tmp_path = tmp_path @wc_path = wc_path @repos_uri = repos_uri end def setup(context) TREE.each do |path, contents| entry = File.expand_path(File.join(@tmp_path, path)) if contents File.open(entry, 'w') {|f| f.print(contents)} else FileUtils.mkdir(entry) end end context.import(@tmp_path, @repos_uri) context.update(@wc_path) end def path(greek) File.join(@wc_path, resolve(greek)) end def uri(greek) "#{@repos_uri}/#{resolve(greek)}" end def resolve(greek) self.class.const_get(greek.to_s.upcase) end end end