diff --git a/bin/git_gem_updater.rb b/bin/git_gem_updater.rb index e5dc023..902049b 100755 --- a/bin/git_gem_updater.rb +++ b/bin/git_gem_updater.rb @@ -11,10 +11,7 @@ # Copyright (C) 2013-2014 Red Hat, Inc. require 'colored' -require 'curb' -require 'json' require 'optparse' -require 'nokogiri' require 'polisher/git' require 'polisher/gem' diff --git a/lib/polisher/errata.rb b/lib/polisher/errata.rb index 2d9e798..d306e25 100644 --- a/lib/polisher/errata.rb +++ b/lib/polisher/errata.rb @@ -3,9 +3,19 @@ # Licensed under the MIT license # Copyright (C) 2013-2014 Red Hat, Inc. +skip_module = false +begin require 'json' require 'curb' +rescue LoadError + skip_module = true +end + +if skip_module +require 'polisher/missing' +Polisher::Errata = Polisher::MissingComponent +else require 'polisher/core' module Polisher @@ -73,3 +83,4 @@ def self.build_version(build, name) end end end +end # (!skip_module) diff --git a/lib/polisher/fedora.rb b/lib/polisher/fedora.rb index 2ce607a..56d609d 100644 --- a/lib/polisher/fedora.rb +++ b/lib/polisher/fedora.rb @@ -3,9 +3,20 @@ # Licensed under the MIT license # Copyright (C) 2013-2014 Red Hat, Inc. +skip_module = false +begin require 'curb' require 'pkgwat' +require 'nokogiri' +rescue LoadError + skip_module = true +end +if skip_module +require 'polisher/missing' +Polisher::Fedora = Polisher::MissingComponent + +else require 'polisher/bodhi' module Polisher @@ -44,3 +55,4 @@ def self.versions_for(name, &bl) end end # class Fedora end # module Polisher +end # (!skip_module) diff --git a/lib/polisher/gem.rb b/lib/polisher/gem.rb index 15db656..0ed5243 100644 --- a/lib/polisher/gem.rb +++ b/lib/polisher/gem.rb @@ -3,6 +3,8 @@ # Licensed under the MIT license # Copyright (C) 2013-2014 Red Hat, Inc. +skip_module = false +begin require 'curb' require 'json' require 'yaml' @@ -12,7 +14,15 @@ require 'awesome_spawn' require 'rubygems/installer' require 'active_support/core_ext' +rescue LoadError + skip_module = true +end +if skip_module +require 'polisher/missing' +Polisher::Gem = Polisher::MissingComponent + +else require 'polisher/version_checker' require 'polisher/gem_cache' require 'polisher/vendor' @@ -310,3 +320,4 @@ def diff(other) end # class Gem end # module Polisher +end # (!skip_module) diff --git a/lib/polisher/gemfile.rb b/lib/polisher/gemfile.rb index 2530687..54e679c 100644 --- a/lib/polisher/gemfile.rb +++ b/lib/polisher/gemfile.rb @@ -3,8 +3,18 @@ # Licensed under the MIT license # Copyright (C) 2013-2014 Red Hat, Inc. +skip_module = false +begin require 'bundler' +rescue LoadError + skip_module = true +end +if skip_module +require 'polisher/missing' +Polisher::Gemfil = Polisher::MissingComponent + +else require 'polisher/git' require 'polisher/gem' require 'polisher/version_checker' @@ -96,3 +106,4 @@ def patched end end # class Gemfile end # module Polisher +end # (!skip_module) diff --git a/lib/polisher/git/pkg.rb b/lib/polisher/git/pkg.rb index 8a1afba..23e3c13 100644 --- a/lib/polisher/git/pkg.rb +++ b/lib/polisher/git/pkg.rb @@ -3,15 +3,25 @@ # Licensed under the MIT license # Copyright (C) 2013-2014 Red Hat, Inc. +skip_module = false +begin require 'awesome_spawn' +rescue LoadError + skip_module = true +end +if skip_module +require 'polisher/missing' +Polisher::Git::Pkg = Polisher::MissingComponent + +else require 'polisher/error' require 'polisher/git/repo' require 'polisher/rpm/spec' module Polisher module Git - # Git Repository + # Git Based Package class Pkg < Repo attr_accessor :name attr_accessor :version @@ -189,3 +199,4 @@ def self.version_for(name, &bl) end # module Pkg end # module Git end # module Polisher +end # (!skip_module) diff --git a/lib/polisher/git/repo.rb b/lib/polisher/git/repo.rb index dfbcadf..01761c3 100644 --- a/lib/polisher/git/repo.rb +++ b/lib/polisher/git/repo.rb @@ -3,7 +3,19 @@ # Licensed under the MIT license # Copyright (C) 2013-2014 Red Hat, Inc. +skip_module = false +begin require 'awesome_spawn' + +rescue LoadError + skip_module = true +end + +if skip_module +require 'polisher/missing' +Polisher::Git::Repo = Polisher::MissingComponent + +else require 'polisher/core' require 'polisher/git_cache' @@ -72,3 +84,4 @@ def commit(msg) end # class Repo end # module Git end # module Polisher +end # (!skip_module) diff --git a/lib/polisher/koji.rb b/lib/polisher/koji.rb index 7273f1d..12bb5e4 100644 --- a/lib/polisher/koji.rb +++ b/lib/polisher/koji.rb @@ -3,8 +3,19 @@ # Licensed under the MIT license # Copyright (C) 2013-2014 Red Hat, Inc. +skip_module = false +begin require 'xmlrpc/client' require 'active_support/core_ext/kernel/reporting' +rescue LoadError + skip_module = true +end + +if skip_module +require 'polisher/missing' +Polisher::Koji = Polisher::MissingComponent + +else silence_warnings do XMLRPC::Config::ENABLE_NIL_PARSER = true XMLRPC::Config::ENABLE_NIL_CREATE = true @@ -104,3 +115,4 @@ def self.diff(tag1, tag2) end end end +end # (!skip_module) diff --git a/lib/polisher/missing.rb b/lib/polisher/missing.rb new file mode 100644 index 0000000..095ad22 --- /dev/null +++ b/lib/polisher/missing.rb @@ -0,0 +1,12 @@ +# Polisher "Missing" Component +# +# Licensed under the MIT license +# Copyright (C) 2014 Red Hat, Inc. + +module Polisher + class MissingComponent + def method_missing(method_id, *args, &bl) + raise "polisher is missing a dependency - cannot invoke #{method_id} on #{self}" + end + end # class MissingComponent +end # module Polisher diff --git a/lib/polisher/rpm/requirement.rb b/lib/polisher/rpm/requirement.rb index 3226ae6..3b72fe7 100644 --- a/lib/polisher/rpm/requirement.rb +++ b/lib/polisher/rpm/requirement.rb @@ -3,10 +3,20 @@ # Licensed under the MIT license # Copyright (C) 2013-2014 Red Hat, Inc. +skip_module = false +begin require 'gem2rpm' require 'versionomy' require 'active_support/core_ext' +rescue LoadError + skip_module = true +end + +if skip_module +require 'polisher/missing' +Polisher::RPM::Requirement = Polisher::MissingComponent +else require 'polisher/core' require 'polisher/gem' @@ -186,3 +196,4 @@ def gem_name end # class Requirement end # module RPM end +end # (!skip_module) diff --git a/lib/polisher/rpm/spec.rb b/lib/polisher/rpm/spec.rb index 0b40e87..d34f815 100644 --- a/lib/polisher/rpm/spec.rb +++ b/lib/polisher/rpm/spec.rb @@ -3,10 +3,20 @@ # Licensed under the MIT license # Copyright (C) 2013-2014 Red Hat, Inc. +skip_module = false +begin require 'gem2rpm' require 'versionomy' require 'active_support/core_ext' +rescue LoadError + skip_module = true +end +if skip_module +require 'polisher/missing' +Polisher::RPM::Spec = Polisher::MissingComponent + +else require 'polisher/core' require 'polisher/gem' require 'polisher/rpm/requirement' @@ -379,3 +389,4 @@ def compare(upstream_source) end # class Spec end # module RPM end # module Polisher +end # (!skip_module) diff --git a/lib/polisher/yum.rb b/lib/polisher/yum.rb index 359f9c1..ecdfcad 100644 --- a/lib/polisher/yum.rb +++ b/lib/polisher/yum.rb @@ -3,8 +3,18 @@ # Licensed under the MIT license # Copyright (C) 2013-2014 Red Hat, Inc. +skip_module = false +begin require 'awesome_spawn' +rescue LoadError + skip_module = true +end + +if skip_module +require 'polisher/missing' +Polisher::Yum = Polisher::MissingComponent +else module Polisher class Yum YUM_CMD = '/usr/bin/yum' @@ -28,3 +38,4 @@ def self.version_for(name, &bl) end end end +end # (!skip_module) diff --git a/polisher.gemspec b/polisher.gemspec index 9f47da0..e9dfd4c 100644 --- a/polisher.gemspec +++ b/polisher.gemspec @@ -28,17 +28,16 @@ Gem::Specification.new do |s| 'git_gem_updater.rb', 'ruby_rpm_spec_updater.rb'] s.require_paths = ['lib'] - # TODO tighten up deps, some may be optional - s.add_dependency('json') - s.add_dependency('curb') - s.add_dependency('activesupport') - s.add_dependency('i18n') - s.add_dependency('bundler') - s.add_dependency('pkgwat') s.add_dependency('colored') - s.add_dependency('awesome_spawn') - s.add_dependency('gem2rpm') - s.add_dependency('versionomy') s.add_development_dependency('rspec', '>= 2.0.0') s.add_development_dependency('coveralls') + s.add_development_dependency('json') + s.add_development_dependency('curb') + s.add_development_dependency('activesupport') + s.add_development_dependency('i18n') + s.add_development_dependency('bundler') + s.add_development_dependency('pkgwat') + s.add_development_dependency('awesome_spawn') + s.add_development_dependency('gem2rpm') + s.add_development_dependency('versionomy') end