]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/keystone/lib/puppet/provider/keystone/util.rb
Update to Kilo
[dsa-puppet.git] / 3rdparty / modules / keystone / lib / puppet / provider / keystone / util.rb
diff --git a/3rdparty/modules/keystone/lib/puppet/provider/keystone/util.rb b/3rdparty/modules/keystone/lib/puppet/provider/keystone/util.rb
new file mode 100644 (file)
index 0000000..7eadf98
--- /dev/null
@@ -0,0 +1,25 @@
+module Util
+  # Splits the rightmost part of a string using '::' as delimiter
+  # Returns an array of both parts or nil if either is empty.
+  # An empty rightmost part is ignored and converted as 'string::' => 'string'
+  #
+  # Examples:
+  # "foo"             -> ["foo", nil]
+  # "foo::"           -> ["foo", nil]
+  # "foo::bar"        -> ["foo", "bar"]
+  # "foo::bar::"      -> ["foo", "bar"]
+  # "::foo"           -> [nil, "foo"]
+  # "::foo::"         -> [nil, "foo"]
+  # "foo::bar::baz"   -> ["foo::bar", "baz"]
+  # "foo::bar::baz::" -> ["foo::bar", "baz"]
+  #
+  def self.split_domain(str)
+    left, right = nil, nil
+    unless str.nil?
+      left, delimiter, right = str.gsub(/::$/, '').rpartition('::')
+      left, right = right, nil if delimiter.empty?
+      left = nil if left.empty?
+    end
+    return [left, right]
+  end
+end