class Hash

def if_key(key, default_value = nil)

@return +block.call(fetch(key))+ if +self+ has the key +key+, +default_value+ otherwise.
def if_key(key, default_value = nil)
  return default_value unless key?(key)
  block_given? ? yield(fetch(key)) : fetch(key)
end

def to_options_consumer

Returns an EacRubyUtils::OptionsConsumer out of its receiver.
def to_options_consumer
  ::EacRubyUtils::OptionsConsumer.new(self)
end

def to_struct

Returns an EacRubyUtils::Struct out of its receiver.
def to_struct
  ::EacRubyUtils::Struct.new(self)
end

def to_sym_keys_hash

def to_sym_keys_hash
  each_with_object({}) do |(key, value), memo|
    symbol_key = key.respond_to?(:to_sym) ? key.to_sym : key.to_s.to_sym
    memo[symbol_key] = value
  end
end