What you think about this:

``` ruby
shards_config.each do |key, value|
  if value.is_a?(String)
    config = URI.parse url 
    adapter = config.scheme
    adapter = "postgresql" if adapter == "postgres"
    value = { :adapter  => adapter,
              :username => config.user,
              :password => config.password,
              :port     => config.port,
              :database => config.path.sub(%r{^/},""),
              :host     => config.host }
  end

  if value.has_key?("adapter")
    ...
  else
    ...
  end
end
```

I would to keep the string feature since @jeremyruppel said it's important for him.