Sha256: e70227cf49a4869f66dbbd5cda68087b96e65e2717a03929018f6a318f9a31b3
Contents?: true
Size: 812 Bytes
Versions: 2
Compression:
Stored size: 812 Bytes
Contents
require 'delegate' module Saneitized class Hash < ::SimpleDelegator def initialize(hash = {}, options = {}) @options = options @key_blacklist = Array(options.fetch(:key_blacklist){[]}) new_hash = {} hash.each do |key, value| new_hash[sane_key(key)] = convert_key_value(key, value) end super(new_hash) self end def []=(key, value) super key, Saneitized.convert(value, @options) end def merge!(*args, &block) raise NotImplementedError end private def sane_key(key) @options[:saneitize_keys] ? Saneitized.convert(key) : key end def convert_key_value(key, value) if @key_blacklist.include? key value else Saneitized.convert(value, @options) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
saneitized-2.0.0 | lib/saneitized/hash.rb |
saneitized-1.5.0 | lib/saneitized/hash.rb |