module CustomHash

Public Instance Methods

prefix_deep_values_with(prefix) click to toggle source
# File lib/custom_hash.rb, line 11
def prefix_deep_values_with(prefix)
        prefix = "TODO:" if prefix.nil?
        self.keys.each do |key|
                self[key].is_a?(Hash) ? self[key].prefix_deep_values_with(prefix) : self[key] = prefix_value(self[key], prefix)
        end
        self
end
prefix_value(value, prefix) click to toggle source
# File lib/custom_hash.rb, line 42
def prefix_value(value, prefix)
        "#{prefix + " " unless value.start_with?(prefix) }#{value}"
end
set_deep_values(new_value) click to toggle source
# File lib/custom_hash.rb, line 4
def set_deep_values(new_value)
        self.keys.each do |key|
                self[key].is_a?(Hash) ? self[key].set_deep_values(new_value) : self[key] = new_value
        end
        self
end
to_yml(identation=0) click to toggle source
# File lib/custom_hash.rb, line 19
def to_yml(identation=0)
        yml = ""
        self.each do |key, value|
                key = "\"#{key}\"" if key.in? yml_reserved_words
                if value.is_a?(Hash)
                        yml += "#{ "  " * identation }#{key}:\n#{value.to_yml(identation+1)}"
                else
                        yml += "#{ "  " * identation }#{key}: \"#{value.gsub('"', '\\"')}\"\n"
                end
        end
        yml
end
yml_reserved_words() click to toggle source
# File lib/custom_hash.rb, line 34
def yml_reserved_words
        [
                "y", "Y", "yes", "Yes", "YES", "n", "N", "no",
                "No", "NO", "true", "True", "TRUE", "false", "False",
                "FALSE", "on", "On", "ON", "off", "Off", "OFF"
        ]
end