class Hash

Public Instance Methods

deep_join(separator) click to toggle source
# File lib/video_converter/hash.rb, line 35
def deep_join(separator)
      map do |key, value|
              case value.class.to_s
              when 'TrueClass'
                      key
    when 'FalseClass', 'NilClass'
      nil
              when 'Array'
                      value.map { |v| "#{key} #{v}"}
              when 'Hash'
                      value.deep_join(separator)
    else
      "#{key} #{value}"
              end
      end.join(separator)
end
deep_join!(separator) click to toggle source
# File lib/video_converter/hash.rb, line 52
def deep_join!(separator)
      self.replace(self.deep_join(separator))
end
deep_shellescape_values(safe_keys = []) click to toggle source
# File lib/video_converter/hash.rb, line 15
def deep_shellescape_values(safe_keys = [])
  inject({}) do |options, (key, value)|
    if safe_keys.include?(key)
      value
    elsif value.is_a? Array
      value = value.map { |v| v.is_a?(Hash) ? v.deep_shellescape_values(safe_keys) : v.shellescape }
    elsif value.is_a? Hash
      value = value.deep_shellescape_values(safe_keys)
    elsif value.is_a?(String) && !value.empty?
      value = value.shellescape
    end
    options[key] = value
    options
  end
end
deep_shellescape_values!(safe_keys = []) click to toggle source
# File lib/video_converter/hash.rb, line 31
def deep_shellescape_values!(safe_keys = [])
  self.replace(self.deep_shellescape_values(safe_keys))
end
deep_symbolize_keys() click to toggle source
# File lib/video_converter/hash.rb, line 2
def deep_symbolize_keys
  inject({}) do |options, (key, value)|
    value = value.map { |v| v.is_a?(Hash) ? v.deep_symbolize_keys : v } if value.is_a? Array
    value = value.deep_symbolize_keys if value.is_a? Hash
    options[(key.to_sym rescue key) || key] = value
    options
  end
end
deep_symbolize_keys!() click to toggle source
# File lib/video_converter/hash.rb, line 11
def deep_symbolize_keys!
  self.replace(self.deep_symbolize_keys)
end