+++ /dev/null
-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