diff options
-rw-r--r-- | Manifest.txt | 1 | ||||
-rw-r--r-- | lib/hoe/package.rb | 2 | ||||
-rw-r--r-- | test/test_hoe_package.rb | 58 |
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 |