From 2e851a0c1260456ad8ac915d27f31334dfe4ebd7 Mon Sep 17 00:00:00 2001 From: Brian Guthrie Date: Mon, 5 Sep 2011 22:12:11 -0400 Subject: [PATCH] Gem dependencies now specified in gemspec; accordingly, several gems were updated. This builds for me in JRuby 1.6.3 and Ruby 1.9.2. --- Gemfile | 22 +-------- Gemfile.lock | 38 ++++++++------- config/application.rb | 3 ++ cruisecontrolrb.gemspec | 46 +++++++++--------- lib/tasks/package.rake | 6 +-- .../cache/bouncy-castle-java-1.5.0146.1.gem | Bin 1991680 -> 0 bytes vendor/cache/jruby-openssl-0.7.4.gem | Bin 623104 -> 0 bytes vendor/cache/polyglot-0.3.1.gem | Bin 6656 -> 0 bytes vendor/cache/polyglot-0.3.2.gem | Bin 0 -> 15872 bytes vendor/cache/rake-0.8.7.gem | Bin 104960 -> 0 bytes vendor/cache/rake-0.9.2.gem | Bin 0 -> 113152 bytes vendor/cache/treetop-1.4.10.gem | Bin 0 -> 181760 bytes vendor/cache/treetop-1.4.9.gem | Bin 179200 -> 0 bytes 13 files changed, 48 insertions(+), 67 deletions(-) delete mode 100644 vendor/cache/bouncy-castle-java-1.5.0146.1.gem delete mode 100644 vendor/cache/jruby-openssl-0.7.4.gem delete mode 100644 vendor/cache/polyglot-0.3.1.gem create mode 100644 vendor/cache/polyglot-0.3.2.gem delete mode 100644 vendor/cache/rake-0.8.7.gem create mode 100644 vendor/cache/rake-0.9.2.gem create mode 100644 vendor/cache/treetop-1.4.10.gem delete mode 100644 vendor/cache/treetop-1.4.9.gem diff --git a/Gemfile b/Gemfile index 616123fb..c80ee369 100644 --- a/Gemfile +++ b/Gemfile @@ -1,23 +1,3 @@ source "http://rubygems.org" -gem "rails", "3.0.7" -gem "tzinfo", "0.3.27" -gem "rack", "1.2.3" -gem "bundler", "~> 1.0.12" - -gem "httparty", "0.6.1" -gem "api_cache", "0.2.0" -gem "xml-simple", '1.0.16', :require => 'xmlsimple' -gem "rake", "0.8.7" -gem "jquery-rails", '1.0.9' -gem "abstract", "1.0.0" - -group :development do - gem "rcov", '0.9.9' - gem "mocha", "0.9.12", :require => false - gem "rack-test", :require => "rack/test" -end - -platform :jruby do - gem 'jruby-openssl' -end +gemspec diff --git a/Gemfile.lock b/Gemfile.lock index eb00c69a..1c5318c2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,3 +1,18 @@ +PATH + remote: . + specs: + cruisecontrolrb (2.0.0pre1) + abstract (= 1.0.0) + api_cache (= 0.2.0) + bundler + httparty (= 0.6.1) + jquery-rails (= 1.0.9) + rack (= 1.2.3) + rails (= 3.0.7) + rake + tzinfo (= 0.3.27) + xml-simple (= 1.0.16) + GEM remote: http://rubygems.org/ specs: @@ -30,7 +45,6 @@ GEM activesupport (3.0.7) api_cache (0.2.0) arel (2.0.10) - bouncy-castle-java (1.5.0146.1) builder (2.1.2) crack (0.1.8) erubis (2.6.6) @@ -41,8 +55,6 @@ GEM jquery-rails (1.0.9) railties (~> 3.0) thor (~> 0.14) - jruby-openssl (0.7.4) - bouncy-castle-java mail (2.2.19) activesupport (>= 2.3.6) i18n (>= 0.4.0) @@ -50,7 +62,7 @@ GEM treetop (~> 1.4.8) mime-types (1.16) mocha (0.9.12) - polyglot (0.3.1) + polyglot (0.3.2) rack (1.2.3) rack-mount (0.6.14) rack (>= 1.0.0) @@ -69,11 +81,12 @@ GEM activesupport (= 3.0.7) rake (>= 0.8.7) thor (~> 0.14.4) - rake (0.8.7) + rake (0.9.2) rcov (0.9.9) rcov (0.9.9-java) thor (0.14.6) - treetop (1.4.9) + treetop (1.4.10) + polyglot polyglot (>= 0.3.1) tzinfo (0.3.27) xml-simple (1.0.16) @@ -81,20 +94,9 @@ GEM PLATFORMS java ruby - x86-mingw32 DEPENDENCIES - abstract (= 1.0.0) - api_cache (= 0.2.0) - bundler (~> 1.0.12) - httparty (= 0.6.1) - jquery-rails (= 1.0.9) - jruby-openssl + cruisecontrolrb! mocha (= 0.9.12) - rack (= 1.2.3) rack-test - rails (= 3.0.7) - rake (= 0.8.7) rcov (= 0.9.9) - tzinfo (= 0.3.27) - xml-simple (= 1.0.16) diff --git a/config/application.rb b/config/application.rb index 306a0641..bde58ddb 100644 --- a/config/application.rb +++ b/config/application.rb @@ -6,6 +6,7 @@ require "rails/test_unit/railtie" require 'fileutils' +require 'xmlsimple' # If you have a Gemfile, require the gems listed there, including any gems # you've limited to :test, :development, or :production. @@ -39,6 +40,8 @@ def self.data_root end class Application < Rails::Application + include Rake::DSL + # Add additional load paths for your own custom dirs config.autoload_paths << Rails.root.join('lib') config.autoload_paths << Rails.root.join('lib', 'builder_plugins') diff --git a/cruisecontrolrb.gemspec b/cruisecontrolrb.gemspec index 83e558f7..0803ba0f 100644 --- a/cruisecontrolrb.gemspec +++ b/cruisecontrolrb.gemspec @@ -1,8 +1,6 @@ -require 'rake' -require 'pathname' -require File.expand_path('../config/application', __FILE__) +require File.expand_path('../lib/cruise_control/version', __FILE__) -GEMSPEC = Gem::Specification.new do |s| +Gem::Specification.new do |s| s.name = 'cruisecontrolrb' s.summary = 'CruiseControl for Ruby. Keep it simple.' s.version = CruiseControl::VERSION::STRING @@ -15,26 +13,28 @@ GEMSPEC = Gem::Specification.new do |s| s.email = 'cruisecontrolrb-developers@rubyforge.org' s.homepage = 'http://cruisecontrolrb.thoughtworks.com' s.has_rdoc = false - s.bindir = "." - s.executables << "cruise" - s.add_dependency "bundler", "1.0.12" + s.add_dependency "rails", "3.0.7" + s.add_dependency "tzinfo", "0.3.27" + s.add_dependency "rack", "1.2.3" + s.add_dependency "bundler" + + s.add_dependency "httparty", "0.6.1" + s.add_dependency "api_cache", "0.2.0" + s.add_dependency "xml-simple", '1.0.16' + s.add_dependency "rake" + s.add_dependency "jquery-rails", '1.0.9' + s.add_dependency "abstract", "1.0.0" - s.files = FileList[ - '[a-zA-Z0-9]*', - 'app/**/*', - 'bin/**/*', - 'config/**/*', - 'daemon/**/*', - 'db/**/*', - 'lib/**/*.rb', - 'public/**/*', - 'script/**/*', - 'server_jar/**/*', - 'tasks/**/*', - "vendor/bundle/**/*", - ".bundle/*" - ] + s.add_development_dependency "rcov", '0.9.9' + s.add_development_dependency "mocha", "0.9.12" + s.add_development_dependency "rack-test" + + s.bindir = "." + s.executables << "cruise" - s.test_files = FileList['test/**/*'] + all_files = Dir.glob("**/*") + excluded = all_files.grep(%r!(log/)|(test/)|(tmp/)|(vendor/cache)|(pkg)|(dist)|(.bundle)!) + s.files = all_files - excluded + s.test_files = all_files.grep(%r!(test/)!) end \ No newline at end of file diff --git a/lib/tasks/package.rake b/lib/tasks/package.rake index 58395900..6f79f842 100644 --- a/lib/tasks/package.rake +++ b/lib/tasks/package.rake @@ -1,4 +1,4 @@ -load Rails.root.join("cruisecontrolrb.gemspec") +gem_spec = load(Rails.root.join("cruisecontrolrb.gemspec")) task :package => ["package:gem"] @@ -15,10 +15,6 @@ namespace :package do "pkg" end - def gem_spec - GEMSPEC - end - task :gem => :prepare do Gem::Builder.new(gem_spec).build verbose(true) { mv gem_file, "#{package_dir}/#{gem_file}" } diff --git a/vendor/cache/bouncy-castle-java-1.5.0146.1.gem b/vendor/cache/bouncy-castle-java-1.5.0146.1.gem deleted file mode 100644 index 194bffab42e27e7e7b06353c78454b3737f36d3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1991680 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