gem-release 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/gem_release/version.rb
CHANGED
@@ -6,11 +6,15 @@ module GemRelease
|
|
6
6
|
|
7
7
|
VERSION_PATTERN = /(VERSION\s*=\s*(?:"|'))((?:(?!"|').)*)("|')/
|
8
8
|
NUMBER_PATTERN = /(\d+)\.(\d+)\.(\d+)(.*)/
|
9
|
+
PRERELEASE_NUMBER_PATTERN = /(\d+)\.(\d+)\.(\d+)\.(.*)(\d+)/
|
9
10
|
|
10
11
|
attr_reader :target
|
11
12
|
|
12
13
|
def initialize(options = {})
|
13
|
-
@target = options[:target]
|
14
|
+
@target = options[:target]
|
15
|
+
if @target == nil || @target == ''
|
16
|
+
@target = is_prerelease_version_number?(old_number) ? :pre : :patch
|
17
|
+
end
|
14
18
|
end
|
15
19
|
|
16
20
|
def bump!
|
@@ -19,9 +23,20 @@ module GemRelease
|
|
19
23
|
end
|
20
24
|
|
21
25
|
def new_number
|
22
|
-
@new_number ||=
|
23
|
-
|
24
|
-
|
26
|
+
@new_number ||=
|
27
|
+
if is_version_number?(target)
|
28
|
+
target
|
29
|
+
elsif [:major, :minor, :patch].include?(target.to_sym)
|
30
|
+
old_number.sub(NUMBER_PATTERN) do
|
31
|
+
send(target, $1, $2, $3)
|
32
|
+
end
|
33
|
+
elsif is_prerelease_version_number?(old_number)
|
34
|
+
old_number.sub(PRERELEASE_NUMBER_PATTERN) do
|
35
|
+
prerelease($1, $2, $3, $4, $5)
|
36
|
+
end
|
37
|
+
else
|
38
|
+
"#{old_number}.#{target}1"
|
39
|
+
end
|
25
40
|
end
|
26
41
|
|
27
42
|
def old_number
|
@@ -58,6 +73,10 @@ module GemRelease
|
|
58
73
|
"#{major}.#{minor}.#{patch.to_i + 1}"
|
59
74
|
end
|
60
75
|
|
76
|
+
def prerelease(major, minor, patch, prereleasePrefix, prereleaseNumber)
|
77
|
+
"#{major}.#{minor}.#{patch}.#{prereleasePrefix || 'pre'}#{prereleaseNumber.to_i + 1}"
|
78
|
+
end
|
79
|
+
|
61
80
|
def content
|
62
81
|
@content ||= File.read(filename)
|
63
82
|
end
|
@@ -76,5 +95,13 @@ module GemRelease
|
|
76
95
|
end
|
77
96
|
result
|
78
97
|
end
|
98
|
+
|
99
|
+
def is_version_number?(v)
|
100
|
+
v.to_s.match(NUMBER_PATTERN) != nil
|
101
|
+
end
|
102
|
+
|
103
|
+
def is_prerelease_version_number?(v)
|
104
|
+
v.to_s.match(PRERELEASE_NUMBER_PATTERN) != nil
|
105
|
+
end
|
79
106
|
end
|
80
107
|
end
|
@@ -9,7 +9,7 @@ class Gem::Commands::BumpCommand < Gem::Command
|
|
9
9
|
attr_reader :arguments, :usage
|
10
10
|
|
11
11
|
DEFAULTS = {
|
12
|
-
:version => '
|
12
|
+
:version => '',
|
13
13
|
:commit => true,
|
14
14
|
:push => false,
|
15
15
|
:tag => false,
|
@@ -22,13 +22,13 @@ class Gem::Commands::BumpCommand < Gem::Command
|
|
22
22
|
def initialize(options = {})
|
23
23
|
super 'bump', 'Bump the gem version', DEFAULTS.merge(options)
|
24
24
|
|
25
|
-
option :version, '-v', 'Target version: next [major|minor|patch] or a given version number [x.x.x]'
|
25
|
+
option :version, '-v', 'Target version: next [major|minor|patch|pre] or a given version number [x.x.x]'
|
26
26
|
option :commit, '-c', 'Perform a commit after incrementing gem version'
|
27
27
|
option :push, '-p', 'Push to the origin git repository'
|
28
28
|
option :tag, '-t', 'Create a git tag and push --tags to origin'
|
29
29
|
option :release, '-r', 'Build gem from a gemspec and push to rubygems.org'
|
30
|
-
option :key, '-k', 'When releasing:
|
31
|
-
option :host, '-h', 'When releasing:
|
30
|
+
option :key, '-k', 'When releasing: use the given API key from ~/.gem/credentials'
|
31
|
+
option :host, '-h', 'When releasing: push to a gemcutter-compatible host other than rubygems.org'
|
32
32
|
option :quiet, '-q', 'Do not output status messages'
|
33
33
|
end
|
34
34
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gem-release
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-08-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: test_declarative
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: 0.0.2
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.0.2
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: mocha
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,7 +37,12 @@ dependencies:
|
|
32
37
|
version: 0.9.8
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.9.8
|
36
46
|
description: Release your ruby gems with ease. (What a bold statement for such a tiny
|
37
47
|
plugin ...)
|
38
48
|
email: svenfuchs@artweb-design.de
|
@@ -84,7 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
84
94
|
version: 1.3.6
|
85
95
|
requirements: []
|
86
96
|
rubyforge_project: ! '[none]'
|
87
|
-
rubygems_version: 1.8.
|
97
|
+
rubygems_version: 1.8.24
|
88
98
|
signing_key:
|
89
99
|
specification_version: 3
|
90
100
|
summary: Release your ruby gems with ease
|