diff --git a/.gitignore b/.gitignore index 23fdd7d..b9a35c5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ activesupport-2.3.5.gem activesupport-2.3.8.gem +/activesupport-3.0.3.gem diff --git a/Rakefile b/Rakefile index d5ece39..d117ca6 100644 --- a/Rakefile +++ b/Rakefile @@ -1,175 +1,32 @@ require 'rake/testtask' -require 'rake/rdoctask' require 'rake/gempackagetask' -require File.join(File.dirname(__FILE__), 'lib', 'active_support', 'version') - -PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : '' -PKG_NAME = 'activesupport' -PKG_VERSION = ActiveSupport::VERSION::STRING + PKG_BUILD -PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}" - -RELEASE_NAME = "REL #{PKG_VERSION}" - -RUBY_FORGE_PROJECT = "activesupport" -RUBY_FORGE_USER = "webster132" - task :default => :test -Rake::TestTask.new { |t| - t.libs << "test" +Rake::TestTask.new do |t| + t.libs << 'test' t.pattern = 'test/**/*_test.rb' - t.verbose = true t.warning = true -} + t.verbose = true +end + +namespace :test do + Rake::TestTask.new(:isolated) do |t| + t.pattern = 'test/ts_isolated.rb' + end +end # Create compressed packages dist_dirs = [ "lib", "test"] -# Genereate the RDoc documentation - -Rake::RDocTask.new { |rdoc| - rdoc.rdoc_dir = 'doc' - rdoc.title = "Active Support -- Utility classes and standard library extensions from Rails" - rdoc.options << '--line-numbers' << '--inline-source' - rdoc.options << '--charset' << 'utf-8' - rdoc.template = ENV['template'] ? "#{ENV['template']}.rb" : '../doc/template/horo' - rdoc.rdoc_files.include('README', 'CHANGELOG') - rdoc.rdoc_files.include('lib/active_support.rb') - rdoc.rdoc_files.include('lib/active_support/**/*.rb') - rdoc.rdoc_files.exclude('lib/active_support/vendor/*') -} - -spec = Gem::Specification.new do |s| - s.platform = Gem::Platform::RUBY - s.name = PKG_NAME - s.version = PKG_VERSION - s.summary = "Support and utility classes used by the Rails framework." - s.description = %q{Utility library which carries commonly used classes and goodies from the Rails framework} - - s.files = [ "CHANGELOG", "README" ] + Dir.glob( "lib/**/*" ).delete_if { |item| item.include?( "\.svn" ) } - s.require_path = 'lib' - s.has_rdoc = true - - s.author = "David Heinemeier Hansson" - s.email = "david@loudthinking.com" - s.homepage = "http://www.rubyonrails.org" - s.rubyforge_project = "activesupport" -end +spec = eval(File.read('activesupport.gemspec')) Rake::GemPackageTask.new(spec) do |p| p.gem_spec = spec - p.need_tar = true - p.need_zip = true -end - -desc "Publish the beta gem" -task :pgem => [:package] do - require 'rake/contrib/sshpublisher' - Rake::SshFilePublisher.new("gems.rubyonrails.org", "/u/sites/gems/gems", "pkg", "#{PKG_FILE_NAME}.gem").upload - `ssh gems.rubyonrails.org '/u/sites/gems/gemupdate.sh'` end -desc "Publish the API documentation" -task :pdoc => [:rdoc] do - require 'rake/contrib/sshpublisher' - Rake::SshDirPublisher.new("wrath.rubyonrails.org", "public_html/as", "doc").upload -end - -desc "Publish the release files to RubyForge." -task :release => [ :package ] do - require 'rubyforge' - require 'rake/contrib/rubyforgepublisher' - - packages = %w( gem tgz zip ).collect{ |ext| "pkg/#{PKG_NAME}-#{PKG_VERSION}.#{ext}" } - - rubyforge = RubyForge.new - rubyforge.login - rubyforge.add_release(PKG_NAME, PKG_NAME, "REL #{PKG_VERSION}", *packages) -end - -namespace :tzinfo do - desc "Update bundled tzinfo gem. Only copies the subset of classes and definitions required to support Rails time zone features." - task :update => ['tzinfo:copy_classes', 'tzinfo:copy_definitions'] do - Rake::Task['tzinfo:cleanup_tmp'].invoke - end - - task :unpack_gem do - mkdir_p "tmp" - cd "tmp" - sh "gem unpack --version #{ENV['VERSION'] || "'> 0'"} tzinfo" - cd ".." - end - - task :copy_classes => :unpack_gem do - mkdir_p "#{destination_path}/tzinfo" - cp "#{tmp_path}/lib/tzinfo.rb", destination_path - comment_requires_for_excluded_classes!('tzinfo.rb') - files = FileList["#{tmp_path}/lib/tzinfo/*.rb"] - files.each do |file| - filename = File.basename(file) - unless excluded_classes.include? filename.sub(/.rb$/, '') - cp "#{tmp_path}/lib/tzinfo/#{filename}", "#{destination_path}/tzinfo" - comment_requires_for_excluded_classes!("tzinfo/#{filename}") - end - end - end - - task :copy_definitions => :unpack_gem do - $:.unshift "#{File.dirname(__FILE__)}/lib" - require 'active_support/values/time_zone' - definitions_path = "#{destination_path}/tzinfo/definitions/" - mkdir_p definitions_path - ActiveSupport::TimeZone::MAPPING.values.each do |zone| - subdir = nil - if /\// === zone - subdir = zone.sub(/\w+$/, '') - mkdir_p "#{definitions_path}/#{subdir}" - end - cp "#{tmp_path}/lib/tzinfo/definitions/#{zone}.rb", "#{definitions_path}/#{subdir}" - end - end - - task :cleanup_tmp do - rm_rf "tmp" - end - - def comment_requires_for_excluded_classes!(file) - lines = open("#{destination_path}/#{file}") {|f| f.readlines} - updated = false - - new_lines = [] - lines.each do |line| - if Regexp.new("require 'tzinfo/(#{excluded_classes.join('|')})'") === line - updated = true - new_lines << "# #{line}" - else - new_lines << line - end - end - - if updated - open("#{destination_path}/#{file}", "w") {|f| f.write(new_lines.join)} - end - end - - def version - ENV['VERSION'] ||= get_unpacked_version - end - - def get_unpacked_version - m = (FileList["tmp/tzinfo-*"].to_s.match /\d+\.\d+\.\d+/) - m ? m[0] : raise(LoadError, "TZInfo gem must be installed locally. `gem install tzinfo` and try again") - end - - def tmp_path - "tmp/tzinfo-#{version}" - end - - def destination_path - "lib/active_support/vendor/tzinfo-#{version}" - end - - def excluded_classes - %w(country country_index_definition country_info country_timezone timezone_index_definition timezone_proxy tzdataparser) - end +desc "Release to gemcutter" +task :release => :package do + require 'rake/gemcutter' + Rake::Gemcutter::Tasks.new(spec).define + Rake::Task['gem:push'].invoke end diff --git a/activesupport-23-tests.tgz b/activesupport-23-tests.tgz deleted file mode 100644 index 81b55c3..0000000 Binary files a/activesupport-23-tests.tgz and /dev/null differ diff --git a/activesupport-rakefile-fix.patch b/activesupport-rakefile-fix.patch new file mode 100644 index 0000000..d49987c --- /dev/null +++ b/activesupport-rakefile-fix.patch @@ -0,0 +1,15 @@ +--- Rakefile.orig 2011-01-10 16:26:22.397963520 -0500 ++++ Rakefile 2011-01-10 16:26:28.015963421 -0500 +@@ -18,12 +18,6 @@ end + # Create compressed packages + dist_dirs = [ "lib", "test"] + +-spec = eval(File.read('activesupport.gemspec')) +- +-Rake::GemPackageTask.new(spec) do |p| +- p.gem_spec = spec +-end +- + desc "Release to gemcutter" + task :release => :package do + require 'rake/gemcutter' diff --git a/activesupport-remove-memcache-build-dep.patch b/activesupport-remove-memcache-build-dep.patch new file mode 100644 index 0000000..12b8c14 --- /dev/null +++ b/activesupport-remove-memcache-build-dep.patch @@ -0,0 +1,67 @@ +--- test/abstract_unit.rb.orig 2011-02-02 12:38:56.766898240 -0500 ++++ test/abstract_unit.rb 2011-02-02 12:38:55.397898289 -0500 +@@ -34,12 +34,16 @@ require 'active_support' + require 'active_support/ruby/shim' if RUBY_VERSION < '1.8.7' + + def uses_memcached(test_name) +- require 'memcache' + begin +- MemCache.new('localhost:11211').stats +- yield +- rescue MemCache::MemCacheError +- $stderr.puts "Skipping #{test_name} tests. Start memcached and try again." ++ require 'memcache' ++ begin ++ MemCache.new('localhost:11211').stats ++ yield ++ rescue MemCache::MemCacheError ++ $stderr.puts "Skipping #{test_name} tests. Start memcached and try again." ++ end ++ rescue LoadError ++ $stderr.puts "Skipping #{test_name} tests. Install memcache-client and try again." + end + end + +--- test/caching_test.rb.orig 2011-02-02 12:39:05.979900964 -0500 ++++ test/caching_test.rb 2011-02-02 12:41:10.089899015 -0500 +@@ -59,40 +59,6 @@ class CacheStoreSettingTest < ActiveSupp + assert_equal "/path/to/cache/directory", store.cache_path + end + +- def test_mem_cache_fragment_cache_store +- MemCache.expects(:new).with(%w[localhost], {}) +- store = ActiveSupport::Cache.lookup_store :mem_cache_store, "localhost" +- assert_kind_of(ActiveSupport::Cache::MemCacheStore, store) +- end +- +- def test_mem_cache_fragment_cache_store_with_given_mem_cache +- mem_cache = MemCache.new +- MemCache.expects(:new).never +- store = ActiveSupport::Cache.lookup_store :mem_cache_store, mem_cache +- assert_kind_of(ActiveSupport::Cache::MemCacheStore, store) +- end +- +- def test_mem_cache_fragment_cache_store_with_given_mem_cache_like_object +- MemCache.expects(:new).never +- memcache = Object.new +- def memcache.get() true end +- store = ActiveSupport::Cache.lookup_store :mem_cache_store, memcache +- assert_kind_of(ActiveSupport::Cache::MemCacheStore, store) +- end +- +- def test_mem_cache_fragment_cache_store_with_multiple_servers +- MemCache.expects(:new).with(%w[localhost 192.168.1.1], {}) +- store = ActiveSupport::Cache.lookup_store :mem_cache_store, "localhost", '192.168.1.1' +- assert_kind_of(ActiveSupport::Cache::MemCacheStore, store) +- end +- +- def test_mem_cache_fragment_cache_store_with_options +- MemCache.expects(:new).with(%w[localhost 192.168.1.1], { :timeout => 10 }) +- store = ActiveSupport::Cache.lookup_store :mem_cache_store, "localhost", '192.168.1.1', :namespace => 'foo', :timeout => 10 +- assert_kind_of(ActiveSupport::Cache::MemCacheStore, store) +- assert_equal 'foo', store.options[:namespace] +- end +- + def test_object_assigned_fragment_cache_store + store = ActiveSupport::Cache.lookup_store ActiveSupport::Cache::FileStore.new("/path/to/cache/directory") + assert_kind_of(ActiveSupport::Cache::FileStore, store) diff --git a/activesupport-tests-fix.patch b/activesupport-tests-fix.patch new file mode 100644 index 0000000..02480f6 --- /dev/null +++ b/activesupport-tests-fix.patch @@ -0,0 +1,11 @@ +--- test/abstract_unit.rb.orig 2011-01-10 16:57:45.486962914 -0500 ++++ test/abstract_unit.rb 2011-01-10 16:57:52.306963241 -0500 +@@ -2,7 +2,7 @@ ORIG_ARGV = ARGV.dup + + begin + old, $VERBOSE = $VERBOSE, nil +- require File.expand_path('../../../load_paths', __FILE__) ++ require 'rubygems' + ensure + $VERBOSE = old + end diff --git a/activesupport-tests.tgz b/activesupport-tests.tgz new file mode 100644 index 0000000..f874139 Binary files /dev/null and b/activesupport-tests.tgz differ diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index c0a663e..724852d 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -1,5 +1,3 @@ -# Generated from activesupport-1.4.4.gem by gem2rpm -*- rpm-spec -*- -%define ruby_sitelib %(ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']") %define gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null) %define gemname activesupport %define geminstdir %{gemdir}/gems/%{gemname}-%{version} @@ -9,33 +7,48 @@ Summary: Support and utility classes used by the Rails framework Name: rubygem-%{gemname} Epoch: 1 -Version: 2.3.8 -Release: 2%{?dist} +Version: 3.0.3 +Release: 1%{?dist} Group: Development/Languages License: MIT URL: http://www.rubyonrails.org -Source0: http://gems.rubyforge.org/gems/%{gemname}-%{version}.gem +Source0: http://rubygems.org/downloads/activesupport-%{version}.gem # For some reason the activesupport doesn't ship with the upstream Rakefile -Source1: http://github.com/rails/rails/raw/2-3-stable/activesupport/Rakefile +Source1: http://github.com/rails/rails/raw/v%{version}/%{gemname}/Rakefile # Also the activesupport gem doesn't ship with the test suite like the other # Rails rpms, you may check it out like so -# git clone http://github.com/rails/rails.git -b 2-3-stable +# git clone http://github.com/rails/rails.git # cd rails/activesupport/ -# git reset --hard 9da7ff8842e5e6407872 # revisions after this correspond to -# # rails 2.3.9 and break test suite -# # when run against stock 2.3.8 gem -# tar czvf activesupport-23-tests.tgz test/ -Source2: activesupport-23-tests.tgz +# git checkout v3.0.3 +# tar czvf activesupport-tests.tgz test/ +Source2: activesupport-tests.tgz + +# Remove a task which breaks the Rakefile due to the gemspec +# not being present in the gem +Patch0: activesupport-rakefile-fix.patch + +# Removes code which breaks the test suite due to a +# dependency on a file in the greater rails proj +Patch1: activesupport-tests-fix.patch + +# Remove memcache build dependency until rubygem-memcache-client +# is in Fedora http://bugzilla.redhat.com/show_bug.cgi?id=668822 +Patch2: activesupport-remove-memcache-build-dep.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires: rubygems Requires: ruby(abi) = %{rubyabi} BuildRequires: rubygems -BuildRequires(check): rubygem(rake) -BuildRequires(check): rubygem(mocha) +BuildRequires: rubygem(rake) +BuildRequires: rubygem(mocha) +BuildRequires: rubygem(i18n) +#BuildRequires: rubygem(memcache-client) +BuildRequires: rubygem(tzinfo) +BuildRequires: rubygem(builder) +BuildRequires: rubygem(rack) BuildArch: noarch Provides: rubygem(%{gemname}) = %{version} @@ -44,37 +57,29 @@ Utility library which carries commonly used classes and goodies from the Rails framework %prep - -%build - -%install -rm -rf %{buildroot} -mkdir -p %{buildroot}%{gemdir} -gem install --local --install-dir %{buildroot}%{gemdir} \ - --force --rdoc %{SOURCE0} +%setup -q -c -T +mkdir -p .%{gemdir} +gem install --local --install-dir .%{gemdir} \ + --force -V --rdoc %{SOURCE0} # move the rakefile in place -cp %{SOURCE1} %{buildroot}%{geminstdir} +cp %{SOURCE1} .%{geminstdir} # move the tests into place -tar xzvf %{SOURCE2} -C %{buildroot}%{geminstdir} +tar xzvf %{SOURCE2} -C .%{geminstdir} -# Remove bad shebangs -for file in %{buildroot}%{geminstdir}/lib/active_support/vendor/builder-2.1.2/builder.rb \ - %{buildroot}%{geminstdir}/lib/active_support/vendor/builder-2.1.2/blankslate.rb \ - %{buildroot}%{geminstdir}/lib/active_support/vendor/builder-2.1.2/builder/* ; do - sed -i -e '1s/^\#!.*$//' $file -done -# Fix anything executable that does not have a shebang -for file in `find %{buildroot}/%{geminstdir} -type f -perm /a+x`; do - [ -z "`head -n 1 $file | grep \"^#!/\"`" ] && chmod -v 644 $file -done +pushd .%{geminstdir} +%patch0 -p0 +%patch1 -p0 +%patch2 -p0 -# Find files with a shebang that do not have executable permissions -for file in `find %{buildroot}/%{geminstdir} -type f ! -perm /a+x -name "*.rb"`; do - [ ! -z "`head -n 1 $file | grep \"^#!/\"`" ] && chmod -v 755 $file -done +%build + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}%{gemdir} +cp -a .%{gemdir}/* %{buildroot}%{gemdir} %clean rm -rf %{buildroot} @@ -89,7 +94,7 @@ rake test %doc %{geminstdir}/CHANGELOG %{geminstdir}/Rakefile %{geminstdir}/lib -%doc %{geminstdir}/README +%doc %{geminstdir}/README.rdoc %doc %{gemdir}/doc/%{gemname}-%{version} %{gemdir}/cache/%{gemname}-%{version}.gem %{gemdir}/specifications/%{gemname}-%{version}.gemspec @@ -97,6 +102,9 @@ rake test %changelog +* Mon Jan 10 2012 Mohammed Morsi - 1:3.0.3-1 +- update to rails 3 + * Wed Aug 25 2010 Mohammed Morsi - 1:2.3.8-2 - bumped version diff --git a/sources b/sources index 28703fa..9a8d522 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -1211d35bb0489764fd1fcac19d081a47 activesupport-2.3.8.gem +474ab3e5963afdad6a9c6c66ff08b16d activesupport-3.0.3.gem