If you use the supported means to create services such as:
Fog::Service.new(:provider => "Example")
It already loads the contents of `~/.fog` and filters the values based
on if they are recognised or required.
That means in a number of services that are initialising based on
`options` or a value from `Fog.credentials` both are the same.
The `options` should have been loaded and merged from credentials in the
service "builder".
Unlike last attempt this replaces Fog::Connection with
Fog::XML::Connection which should be directly compatible.
Fog::Connection is there for old PRs but should be removed real soon.
Providers using JSON should be able to replace "XML" with "Core" within
their code to cut down on the dependency.
If I get the time I may attempt to clean up some but testing with Mock
will mean that is mostly educated guesswork.
Fog::Connection mixed in XML parsing via the `parser` argument which
wasn't much use for the majority of APIs using JSON.
This adds the deprecation warning and attempts to update providers to
the correct version of Connection that they need.
Either the cleaner `Fog::Core::Connection` or if reliant on the XML
parsing still `Fog::XML::SAXParserConnection`
The SAX parser will be moving to `fog/xml` fairly soon.
Following work on reorganising the requires, there was an inconsistent
approach to where service wrappers are required. (Fog::Compute...)
Since they should be standardised and shared across providers (although
they really aren't yet) they have been moved to `fog-core` gem.
Each provider has their own `lib/fog/{provider}/core` files that is
required by each of their services. These files should all require
`fog/core` which already required most or these.
So this removes the extra cases to concentrate them in core.
Should facilitate the following:
require 'fog/aws'
require 'fog/compute'
require 'fog/aws/compute'
I think once you `require 'rubygems'` those should work.
further cleanup should reduce common requires (ie nokogiri)