summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMohammed Morsi <mmorsi@redhat.com>2010-08-24 16:40:30 -0400
committerMohammed Morsi <mmorsi@redhat.com>2010-08-24 16:40:30 -0400
commit1b66c60a4eff41e4e72b7d167c156b4778e04f29 (patch)
tree224362799910b4c30beccb9cf8cd53d25f027cfe
parent1c15bb776fb511b06e2a929b93f99f300dced81c (diff)
downloadrubygem-activesupport-1b66c60a4eff41e4e72b7d167c156b4778e04f29.tar.gz
rubygem-activesupport-1b66c60a4eff41e4e72b7d167c156b4778e04f29.tar.xz
rubygem-activesupport-1b66c60a4eff41e4e72b7d167c156b4778e04f29.zip
updated to activesupport 2.3.8
-rw-r--r--.gitignore1
-rw-r--r--Rakefile175
-rw-r--r--activesupport-23-tests.tgzbin0 -> 77369 bytes
-rw-r--r--rubygem-activesupport.spec36
-rw-r--r--sources2
5 files changed, 212 insertions, 2 deletions
diff --git a/.gitignore b/.gitignore
index d81040f..23fdd7d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
activesupport-2.3.5.gem
+activesupport-2.3.8.gem
diff --git a/Rakefile b/Rakefile
new file mode 100644
index 0000000..d5ece39
--- /dev/null
+++ b/Rakefile
@@ -0,0 +1,175 @@
+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"
+ t.pattern = 'test/**/*_test.rb'
+ t.verbose = true
+ t.warning = true
+}
+
+# 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
+
+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
+end
diff --git a/activesupport-23-tests.tgz b/activesupport-23-tests.tgz
new file mode 100644
index 0000000..81b55c3
--- /dev/null
+++ b/activesupport-23-tests.tgz
Binary files differ
diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec
index 78d0827..75def99 100644
--- a/rubygem-activesupport.spec
+++ b/rubygem-activesupport.spec
@@ -9,16 +9,33 @@
Summary: Support and utility classes used by the Rails framework
Name: rubygem-%{gemname}
Epoch: 1
-Version: 2.3.5
+Version: 2.3.8
Release: 1%{?dist}
Group: Development/Languages
License: MIT
URL: http://www.rubyonrails.org
+
Source0: http://gems.rubyforge.org/gems/%{gemname}-%{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
+
+# 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
+# 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
+
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)
BuildArch: noarch
Provides: rubygem(%{gemname}) = %{version}
@@ -36,6 +53,12 @@ mkdir -p %{buildroot}%{gemdir}
gem install --local --install-dir %{buildroot}%{gemdir} \
--force --rdoc %{SOURCE0}
+# move the rakefile in place
+cp %{SOURCE1} %{buildroot}%{geminstdir}
+
+# move the tests into place
+tar xzvf %{SOURCE2} -C %{buildroot}%{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 \
@@ -56,18 +79,29 @@ done
%clean
rm -rf %{buildroot}
+%check
+pushd %{buildroot}%{geminstdir}
+rake test
+
%files
%defattr(-, root, root, -)
%dir %{geminstdir}
%doc %{geminstdir}/CHANGELOG
+%{geminstdir}/Rakefile
%{geminstdir}/lib
%doc %{geminstdir}/README
%doc %{gemdir}/doc/%{gemname}-%{version}
%{gemdir}/cache/%{gemname}-%{version}.gem
%{gemdir}/specifications/%{gemname}-%{version}.gemspec
+%{geminstdir}/test
%changelog
+* Wed Aug 04 2010 Mohammed Morsi <mmorsi@redhat.com> - 1:2.3.8-1
+- Update to 2.3.8
+- Added check section with rubygem-mocha dependency
+- Added upsteam Rakefile and test suite to run tests
+
* Thu Jan 28 2010 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1:2.3.5-1
- Update to 2.3.5
diff --git a/sources b/sources
index 433dc41..28703fa 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-c4cbb7dd1ea612fd1c6b181a211cd468 activesupport-2.3.5.gem
+1211d35bb0489764fd1fcac19d081a47 activesupport-2.3.8.gem