summaryrefslogtreecommitdiffstats
path: root/lib/puppet/file_collection.rb
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2009-04-02 18:56:53 -0500
committerLuke Kanies <luke@madstop.com>2009-04-02 18:56:53 -0500
commit6e79cc00965a50c44f215fd1e553281cfd2b87c9 (patch)
tree56c496df9ad6ab66dfb16993910eb5ff1c34d065 /lib/puppet/file_collection.rb
parent62dad7a5f87f8d6285650ab1b727819db27cf2a7 (diff)
parentc62c19370bfba881819c1a3d9da2f8e6fb52e5d9 (diff)
downloadpuppet-6e79cc00965a50c44f215fd1e553281cfd2b87c9.tar.gz
puppet-6e79cc00965a50c44f215fd1e553281cfd2b87c9.tar.xz
puppet-6e79cc00965a50c44f215fd1e553281cfd2b87c9.zip
Merge branch '0.24.x'
Conflicts: bin/ralsh lib/puppet/executables/client/certhandler.rb lib/puppet/parser/functions/versioncmp.rb lib/puppet/parser/resource/reference.rb lib/puppet/provider/augeas/augeas.rb lib/puppet/provider/nameservice/directoryservice.rb lib/puppet/provider/ssh_authorized_key/parsed.rb lib/puppet/type.rb lib/puppet/type/file/checksum.rb spec/integration/defaults.rb spec/integration/transaction/report.rb spec/unit/executables/client/certhandler.rb spec/unit/indirector/ssl_rsa/file.rb spec/unit/node/catalog.rb spec/unit/provider/augeas/augeas.rb spec/unit/rails.rb spec/unit/type/ssh_authorized_key.rb spec/unit/type/tidy.rb test/executables/filebucket.rb test/executables/puppetbin.rb
Diffstat (limited to 'lib/puppet/file_collection.rb')
-rw-r--r--lib/puppet/file_collection.rb30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/puppet/file_collection.rb b/lib/puppet/file_collection.rb
new file mode 100644
index 000000000..7db2600c0
--- /dev/null
+++ b/lib/puppet/file_collection.rb
@@ -0,0 +1,30 @@
+# A simple way to turn file names into singletons,
+# so we don't have tons of copies of each file path around.
+class Puppet::FileCollection
+ require 'puppet/file_collection/lookup'
+
+ def self.collection
+ @collection
+ end
+
+ def initialize
+ @paths = []
+ @inverse = {}
+ end
+
+ def index(path)
+ if i = @inverse[path]
+ return i
+ else
+ @paths << path
+ i = @inverse[path] = @paths.length - 1
+ return i
+ end
+ end
+
+ def path(index)
+ @paths[index]
+ end
+
+ @collection = self.new
+end