remove hard dependency on fog

Load fog only if needed, and emit a helpful message if it's missing.

This removes a ton of dependencies, which makes the default installation
easier for newcomers.
This commit is contained in:
Marc Fournier 2014-06-05 00:00:55 +02:00
parent 4ad5b37c84
commit 68d9e73762
3 changed files with 7 additions and 4 deletions

View file

@ -2,7 +2,5 @@ require 'rubygems'
require 'sinatra/base'
require 'riemann/dash/version'
require 'riemann/dash/browser_config'
require 'riemann/dash/browser_config/file'
require 'riemann/dash/browser_config/s3'
require 'riemann/dash/config'
require 'riemann/dash/app'

View file

@ -68,8 +68,14 @@ class Riemann::Dash::Config
uri = URI.parse(ws_config_file)
backend = case uri.scheme
when "s3"
Riemann::Dash::BrowserConfig::S3.new(uri.host, uri.path.sub(/^\//, ''), store[:s3_config])
begin
require 'riemann/dash/browser_config/s3'
Riemann::Dash::BrowserConfig::S3.new(uri.host, uri.path.sub(/^\//, ''), store[:s3_config])
rescue LoadError
raise Exception.new 'Fog library required to save to S3. Run: "gem install fog"'
end
when nil, "file"
require 'riemann/dash/browser_config/file'
Riemann::Dash::BrowserConfig::File.new(uri.path)
else
raise Exception.new "Unknown backend for #{ws_config_file}"

View file

@ -21,7 +21,6 @@ Gem::Specification.new do |gem|
gem.add_dependency 'sass', '>= 3.1.14'
gem.add_dependency 'thin', '~> 1.6.2'
gem.add_dependency 'multi_json', '1.3.6'
gem.add_dependency 'fog'
gem.files = `git ls-files`.split($/)
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})