summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/network/formats.rb24
1 files changed, 22 insertions, 2 deletions
diff --git a/lib/puppet/network/formats.rb b/lib/puppet/network/formats.rb
index 79e2860af..bd171fa7d 100644
--- a/lib/puppet/network/formats.rb
+++ b/lib/puppet/network/formats.rb
@@ -28,12 +28,12 @@ end
Puppet::Network::FormatHandler.create(:marshal, :mime => "text/marshal") do
- # Yaml doesn't need the class name; it's serialized.
+ # Marshal doesn't need the class name; it's serialized.
def intern(klass, text)
Marshal.load(text)
end
- # Yaml doesn't need the class name; it's serialized.
+ # Marshal doesn't need the class name; it's serialized.
def intern_multiple(klass, text)
Marshal.load(text)
end
@@ -52,3 +52,23 @@ Puppet::Network::FormatHandler.create(:marshal, :mime => "text/marshal") do
true
end
end
+
+Puppet::Network::FormatHandler.create(:str, :mime => "text/plain") do
+ # For now, use the YAML separator.
+ SEPARATOR = "\n---\n"
+
+ # Yaml doesn't need the class name; it's serialized.
+ def intern_multiple(klass, text)
+ text.split(SEPARATOR).collect { |inst| intern(klass, inst) }
+ end
+
+ # Yaml monkey-patches Array, so this works.
+ def render_multiple(instances)
+ instances.collect { |inst| render(inst) }.join(SEPARATOR)
+ end
+
+ # Everything's supported
+ def supported?(klass)
+ true
+ end
+end