Sha256: 8bb5d4e3e8edbdc7a4810f7ea8d356e32aff53c4ad8095f5ec7b89767e4da5eb
Contents?: true
Size: 1.18 KB
Versions: 3
Compression:
Stored size: 1.18 KB
Contents
# encoding: utf-8 module Hyperdrive module Utils def self.sanitize_keys(keys_to_keep, hash) Hash[hash.select do |key, value| keys_to_keep.include? key end] end def self.symbolize_keys(hash) hash.inject({}) do |result, (key, value)| result.merge!(Hash[ case key when String then key.to_sym else key end, case value when Hash then symbolize_keys(value) when Array then value.map! { |v| v.is_a?(Hash) ? symbolize_keys(v) : v } ; value else value end ]) end end def self.enforce_charset!(charset, params) encoding = find_encoding(charset) raise Hyperdrive::Errors::NotAcceptable.new(charset.value) unless encoding.is_a? Encoding params.each_value do |value| value.encode!(encoding) if value.is_a? String end end private def self.find_encoding(charset) return Encoding.find('UTF-8') if charset.value == '*' values = charset.sort(charset.values) values.each do |value| begin break Encoding.find(value) rescue next end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
hyperdrive-0.0.25 | lib/hyperdrive/utils.rb |
hyperdrive-0.0.24 | lib/hyperdrive/utils.rb |
hyperdrive-0.0.23 | lib/hyperdrive/utils.rb |