def key_provided?(key_or_default = nil, default_or_options = nil, maybe_options = nil, *others)
      return false if key_or_default.is_a?(Hash)
      return true if key_or_default.is_a?(Symbol) || key_or_default.nil? || key_or_default.is_a?(Array)
      raise ArgumentError.new("invalid key_or_default argument. expected String, Symbol, Array, Hash or nil, got #{key_or_default.class}") unless key_or_default.is_a?(String)
      return true if default_or_options.is_a?(String)
      return true if maybe_options
      return true if key_or_default =~ /\A\.?(\w+\.)+\w+\z/
      false
    end
def key_provided?(key_or_default = nil, default_or_options = nil, maybe_options = nil, *others)
      return false if key_or_default.is_a?(Hash)
      return true if key_or_default.is_a?(Symbol) || key_or_default.nil? || key_or_default.is_a?(Array)
      raise ArgumentError.new("invalid key_or_default argument. expected String, Symbol, Array, Hash or nil, got #{key_or_default.class}") unless key_or_default.is_a?(String)
      return true if default_or_options.is_a?(String)
      return true if maybe_options
      return true if key_or_default =~ /\A\.?(\w+\.)+\w+\z/
      false
    end
Possible translate signatures:

 key [, options]
 key, default_string [, options]
 key, default_hash, options
 default_string [, options]
 default_hash, options