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