summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Davis <ryand@zenspider.com>2015-09-08 15:49:04 -0800
committerRyan Davis <ryand@zenspider.com>2015-09-08 15:49:04 -0800
commit8ce47a097582624ce15484557d6770fbb1cff727 (patch)
treed8c51279cc5256b789fcda2db9478bf9e244fa17
parent7b60bea142c58cfab02a5a5fa2a06c9346692681 (diff)
downloadhoe-8ce47a097582624ce15484557d6770fbb1cff727.tar.gz
- Fix PRERELEASE= for packaging against newer versions of rubygems. (drbrain)
[git-p4: depot-paths = "//src/hoe/dev/": change = 10368]
-rw-r--r--Manifest.txt1
-rw-r--r--lib/hoe/package.rb2
-rw-r--r--test/test_hoe_package.rb58
3 files changed, 60 insertions, 1 deletions
diff --git a/Manifest.txt b/Manifest.txt
index 69c5654..e3924ab 100644
--- a/Manifest.txt
+++ b/Manifest.txt
@@ -35,5 +35,6 @@ template/test/test_file_name.rb.erb
test/test_hoe.rb
test/test_hoe_debug.rb
test/test_hoe_gemcutter.rb
+test/test_hoe_package.rb
test/test_hoe_publish.rb
test/test_hoe_test.rb
diff --git a/lib/hoe/package.rb b/lib/hoe/package.rb
index 58657f0..95bab62 100644
--- a/lib/hoe/package.rb
+++ b/lib/hoe/package.rb
@@ -109,7 +109,7 @@ module Hoe::Package
return unless pre
- spec.version.version << "." << pre if pre
+ spec.version = "#{spec.version}.#{pre}"
abort "ERROR: You should format PRE like pre or alpha.1 or something" if
(Gem::VERSION < "1.4" and pre !~ /^[a-z]+(\.\d+)?$/) or
diff --git a/test/test_hoe_package.rb b/test/test_hoe_package.rb
new file mode 100644
index 0000000..1d312e6
--- /dev/null
+++ b/test/test_hoe_package.rb
@@ -0,0 +1,58 @@
+Hoe.load_plugins
+
+class TestHoePackage < Minitest::Test
+ def setup
+ @orig_PRE = ENV['PRE']
+ @orig_PRERELEASE = ENV['PRERELEASE']
+
+ ENV.delete 'PRE'
+ ENV.delete 'PRERELEASE'
+
+ @tester = Module.new do
+ include Hoe::Package
+
+ extend self
+
+ initialize_package
+
+ @spec = Gem::Specification.new do |s|
+ s.version = '1.2.3'
+ end
+
+ attr_reader :spec
+ end
+ end
+
+ def teardown
+ ENV['PRE'] = @orig_PRE
+ ENV['PRERELEASE'] = @orig_PRERELEASE
+ end
+
+ def test_prerelease_version_pre
+ ENV['PRE'] = 'pre.0'
+
+ @tester.prerelease_version
+
+ expected = Gem::Version.new '1.2.3.pre.0'
+
+ assert_equal expected, @tester.spec.version
+ end
+
+ def test_prerelease_version_prerelease
+ ENV['PRERELEASE'] = 'prerelease.0'
+
+ @tester.prerelease_version
+
+ expected = Gem::Version.new '1.2.3.prerelease.0'
+
+ assert_equal expected, @tester.spec.version
+ end
+
+ def test_prerelease_version_regular
+ @tester.prerelease_version
+
+ expected = Gem::Version.new '1.2.3'
+
+ assert_equal expected, @tester.spec.version
+ end
+end