step-up 0.8.1 → 0.8.2

Sign up to get free protection for your applications and to get access to all the features.
data/GEM_VERSION CHANGED
@@ -1 +1 @@
1
- v0.8.1
1
+ v0.8.2
data/lib/step-up/cli.rb CHANGED
@@ -10,6 +10,7 @@ module StepUp
10
10
  default_task :version
11
11
 
12
12
  desc "version ACTION [base_object] [OPTIONS]", "manage versions of your project"
13
+ method_options %w[next-release -n] => :boolean # stepup version --next-release
13
14
  method_options %w(levels -L) => :boolean # $ stepup version [--levels|-L]
14
15
  method_options %w(level -l) => :string, %w(steps -s) => :boolean, %w(message -m) => :string, :'no-editor' => :boolean # $ stepup version create [--level|-l <level-name>] [--steps|-s] [--message|-m <comment-string>] [--no-editor]
15
16
  method_options %w(mask -M) => :string # stepup version show --mask development_hudson_build_0
@@ -245,7 +246,12 @@ module StepUp
245
246
  else
246
247
  mask = options[:mask]
247
248
  mask = nil if mask !~ /0/
248
- puts driver(mask).last_version_tag(commit_object || "HEAD", true)
249
+ if options[:"next-release"]
250
+ tag = driver.next_version_tag(commit_object, options[:level])
251
+ puts tag if tag
252
+ else
253
+ puts driver(mask).last_version_tag(commit_object || "HEAD", true)
254
+ end
249
255
  end
250
256
  end
251
257
 
@@ -257,15 +263,7 @@ module StepUp
257
263
  level = options[:level] || "auto"
258
264
  message = get_notes(true, get_custom_message)
259
265
 
260
- if level == "auto" && CONFIG.versioning["auto_increment"].is_a?(Hash)
261
- detached_notes = driver.cached_detached_notes_as_hash(commit_object || "HEAD")
262
- level = version_levels.last
263
- version_levels.reverse.each do |name|
264
- sections = CONFIG.versioning.auto_increment.sections_level[name]
265
- next if sections.nil?
266
- level = name if detached_notes.any?{ |section, notes| sections.include?(section) && notes.any? }
267
- end
268
- end
266
+ level = driver.next_release_level(commit_object) if level == "auto"
269
267
 
270
268
  if version_levels.include? level
271
269
  unless options[:'no-editor']
@@ -107,10 +107,31 @@ check with the following bash command:
107
107
  RangedNotes.new(self, tag, commit_base, :notes_sections => notes_sections).notes.as_hash
108
108
  end
109
109
 
110
+ def next_release_level(commit_base)
111
+ level = CONFIG.versioning.version_levels.last
112
+ if CONFIG.versioning["auto_increment"].is_a?(Hash)
113
+ detached_notes = cached_detached_notes_as_hash(commit_base)
114
+ CONFIG.versioning.version_levels.reverse.each do |name|
115
+ sections = CONFIG.versioning.auto_increment.sections_level[name]
116
+ next if sections.nil?
117
+ level = name if detached_notes.any?{ |section, notes| sections.include?(section) && notes.any? }
118
+ end
119
+ end
120
+ level
121
+ end
122
+
123
+ def next_version_tag(commit_base, level = nil)
124
+ level = next_release_level(commit_base) if level.nil?
125
+ if commit_base && mask.parse(commit_base)
126
+ mask.increase_version(commit_base, level)
127
+ else
128
+ tag = cached_last_version_tag(commit_base)
129
+ tag =~ /\+/ ? mask.increase_version($`, level) : nil
130
+ end
131
+ end
132
+
110
133
  def steps_to_increase_version(level, commit_base = "HEAD", message = nil)
111
- tag = cached_last_version_tag(commit_base)
112
- tag = tag.sub(/\+$/, '')
113
- new_tag = mask.increase_version(tag, level)
134
+ new_tag = next_version_tag(commit_base, level)
114
135
  notes = cached_detached_notes_as_hash(commit_base)
115
136
  commands = []
116
137
  commands << "git fetch" if cached_fetched_remotes.any?
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: step-up
3
3
  version: !ruby/object:Gem::Version
4
- hash: 61
4
+ hash: 59
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 8
9
- - 1
10
- version: 0.8.1
9
+ - 2
10
+ version: 0.8.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Marcelo Manzan
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2012-03-21 00:00:00 Z
19
+ date: 2013-01-07 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: thor