bump 0.3.12 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,3 +8,6 @@ rvm:
8
8
  - rbx-18mode
9
9
  - rbx-19mode
10
10
  - ruby-head
11
+ before_script:
12
+ - git config --global user.email "you@example.com"
13
+ - git config --global user.name "Your Name"
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bump (0.3.12)
4
+ bump (0.4.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/bin/bump CHANGED
@@ -7,11 +7,12 @@ OptionParser.new do |opts|
7
7
  Bump your gem version.
8
8
 
9
9
  Usage:
10
- bump current # show current version
11
- bump pre # increase prerelease version of your gem (1.0.0-X) [alpha, beta, rc, ]
12
- bump patch # increase patch version of your gem (1.0.X)
13
- bump minor # increase minor version of your gem (1.X.0)
14
- bump major # increase major version of your gem (X.0.0)
10
+ bump current # show current version
11
+ bump pre # increase prerelease version of your gem (1.0.0-X) [alpha, beta, rc, ]
12
+ bump patch # increase patch version of your gem (1.0.X)
13
+ bump minor # increase minor version of your gem (1.X.0)
14
+ bump major # increase major version of your gem (X.0.0)
15
+ bump set 1.2.3 # set the version number to the given value
15
16
 
16
17
  Options:
17
18
  BANNER
@@ -20,11 +21,15 @@ BANNER
20
21
  opts.on("-h", "--help","Show this.") { puts opts; exit }
21
22
  end.parse!
22
23
 
23
- if ARGV.size != 1
24
+ unless (ARGV.size == 1 && ARGV.first != "set") || (ARGV.size == 2 && ARGV.first == "set")
24
25
  puts "Usage instructions: bump --help"
25
26
  exit 1
26
27
  end
27
28
 
29
+ if ARGV.first == "set"
30
+ options[:version] = ARGV[1]
31
+ end
32
+
28
33
  require File.dirname(__FILE__) + '/../lib/bump'
29
34
  output, status = Bump::Bump.run(ARGV.first, options)
30
35
  puts output
@@ -1,5 +1,5 @@
1
1
  Gem::Specification.new "bump" do |s|
2
- s.version = "0.3.12"
2
+ s.version = "0.4.0"
3
3
  s.author = "Gregory Marcilhacy"
4
4
  s.email = "g.marcilhacy@gmail.com"
5
5
  s.homepage = "https://github.com/gregorym/bump"
@@ -1,5 +1,6 @@
1
1
  module Bump
2
2
  class InvalidOptionError < StandardError; end
3
+ class InvalidVersionError < StandardError; end
3
4
  class UnfoundVersionError < StandardError; end
4
5
  class TooManyVersionFilesError < StandardError; end
5
6
  class UnfoundVersionFileError < StandardError; end
@@ -7,7 +8,7 @@ module Bump
7
8
  class Bump
8
9
  BUMPS = %w(major minor patch pre)
9
10
  PRERELEASE = ["alpha","beta","rc",nil]
10
- OPTIONS = BUMPS | ["current"]
11
+ OPTIONS = BUMPS | ["set", "current"]
11
12
  VERSION_REGEX = /(\d+\.\d+\.\d+(?:-(?:#{PRERELEASE.compact.join('|')}))?)/
12
13
 
13
14
  def self.defaults
@@ -22,7 +23,10 @@ module Bump
22
23
 
23
24
  case bump
24
25
  when *BUMPS
25
- bump(bump, options)
26
+ bump_part(bump, options)
27
+ when "set"
28
+ raise InvalidVersionError unless options[:version]
29
+ bump_set(options[:version], options)
26
30
  when "current"
27
31
  ["Current version: #{current}", 0]
28
32
  else
@@ -30,6 +34,8 @@ module Bump
30
34
  end
31
35
  rescue InvalidOptionError
32
36
  ["Invalid option. Choose between #{OPTIONS.join(',')}.", 1]
37
+ rescue InvalidVersionError
38
+ ["Invalid version number given.", 1]
33
39
  rescue UnfoundVersionError
34
40
  ["Unable to find your gem version", 1]
35
41
  rescue UnfoundVersionFileError
@@ -46,15 +52,24 @@ module Bump
46
52
 
47
53
  private
48
54
 
49
- def self.bump(part, options)
50
- current, file = current_info
51
- next_version = next_version(current, part)
55
+ def self.bump(file, current, next_version, options)
52
56
  replace(file, current, next_version)
53
57
  system("bundle") if options[:bundle] and under_version_control?("Gemfile.lock")
54
58
  commit(next_version, file, options) if options[:commit]
55
59
  ["Bump version #{current} to #{next_version}", 0]
56
60
  end
57
61
 
62
+ def self.bump_part(part, options)
63
+ current, file = current_info
64
+ next_version = next_version(current, part)
65
+ bump(file, current, next_version, options)
66
+ end
67
+
68
+ def self.bump_set(next_version, options)
69
+ current, file = current_info
70
+ bump(file, current, next_version, options)
71
+ end
72
+
58
73
  def self.commit(version, file, options)
59
74
  return unless File.directory?(".git")
60
75
  system("git add --update Gemfile.lock") if options[:bundle]
@@ -97,9 +112,11 @@ module Bump
97
112
  end
98
113
 
99
114
  def self.version_from_lib_rb
100
- file = find_version_file("lib/**/*.rb")
101
- return unless file && File.read(file) =~ /^\s+VERSION = ['"](#{VERSION_REGEX})['"]/i
102
- [$1, file]
115
+ files = Dir.glob("lib/**/*.rb")
116
+ file = files.detect do |file|
117
+ File.read(file) =~ /^\s+VERSION = ['"](#{VERSION_REGEX})['"]/i
118
+ end
119
+ [$1, file] if file
103
120
  end
104
121
 
105
122
  def self.version_from_chef
@@ -1,6 +1,12 @@
1
1
  require "bump"
2
2
 
3
3
  namespace :bump do
4
+ run_bump = lambda do |bump, options|
5
+ output, status = Bump::Bump.run(bump, options)
6
+ puts output
7
+ abort unless status == 0
8
+ end
9
+
4
10
  (Bump::Bump::BUMPS + ["current"]).each do |bump|
5
11
  if bump == "current"
6
12
  desc "Show current gem version"
@@ -9,9 +15,12 @@ namespace :bump do
9
15
  end
10
16
 
11
17
  task bump do
12
- output, status = Bump::Bump.run(bump)
13
- puts output
14
- abort unless status == 0
18
+ run_bump.call(bump, {})
15
19
  end
16
20
  end
21
+
22
+ desc "Sets the version number using the VERSION environment variable"
23
+ task :set do
24
+ run_bump.call("set", :version => ENV['VERSION'])
25
+ end
17
26
  end
@@ -16,6 +16,13 @@ describe "rake bump" do
16
16
  `git log -1 --pretty=format:'%s'`.should == "v1.3.0"
17
17
  end
18
18
 
19
+ it "sets a version" do
20
+ output = run "VERSION=1.3.0 rake bump:set"
21
+ output.should include("1.3.0")
22
+ read("VERSION").should == "1.3.0\n"
23
+ `git log -1 --pretty=format:'%s'`.should == "v1.3.0"
24
+ end
25
+
19
26
  it "fails when it cannot bump" do
20
27
  write "VERSION", "AAA"
21
28
  run "rake bump:minor", :fail => true
@@ -90,6 +90,11 @@ describe Bump do
90
90
  read(gemspec).should include('s.version = "5.0.0"')
91
91
  end
92
92
 
93
+ it "should set the version" do
94
+ bump("set 1.2.3").should include("1.2.3")
95
+ read(gemspec).should include('s.version = "1.2.3"')
96
+ end
97
+
93
98
  it "should bump more then 10" do
94
99
  bump("patch").should include("4.2.4")
95
100
  bump("patch").should include("4.2.5")
@@ -115,6 +120,11 @@ describe Bump do
115
120
  bump("patch").should include("4.2.4")
116
121
  read(gemspec).should include('"4.2.4"')
117
122
  end
123
+
124
+ it "should set the version" do
125
+ bump("set 1.2.3").should include("1.2.3")
126
+ read(gemspec).should include('"1.2.3"')
127
+ end
118
128
  end
119
129
 
120
130
  context "VERSION in version.rb" do
@@ -134,6 +144,11 @@ describe Bump do
134
144
  read(version_file).should include(' VERSION = "1.3.0"')
135
145
  end
136
146
 
147
+ it "should set the version" do
148
+ bump("set 1.2.3").should include("1.2.3")
149
+ read(version_file).should include('"1.2.3"')
150
+ end
151
+
137
152
  it "should bump Version" do
138
153
  write version_file, <<-RUBY.sub(" "*8, "")
139
154
  module Foo
@@ -144,6 +159,16 @@ describe Bump do
144
159
  read(version_file).should include(' Version = "1.3.0"')
145
160
  end
146
161
 
162
+ it "should set Version" do
163
+ write version_file, <<-RUBY.sub(" "*8, "")
164
+ module Foo
165
+ Version = "1.2.3"
166
+ end
167
+ RUBY
168
+ bump("set 1.3.0").should include("1.3.0")
169
+ read(version_file).should include(' Version = "1.3.0"')
170
+ end
171
+
147
172
  it "should bump if a gemspec exists and leave it alone" do
148
173
  write_gemspec "'1.'+'2.3'"
149
174
  bump("minor").should include("1.3.0")
@@ -169,6 +194,11 @@ describe Bump do
169
194
  read("VERSION").should include("1.3.0")
170
195
  end
171
196
 
197
+ it "should set the version" do
198
+ bump("set 1.3.0").should include("1.3.0")
199
+ read("VERSION").should include("1.3.0")
200
+ end
201
+
172
202
  it "should bump if a gemspec & version.rb exists and leave it alone" do
173
203
  write_gemspec "File.read('VERSION')"
174
204
  write_version_file "File.read('VERSION')"
@@ -294,6 +324,11 @@ describe Bump do
294
324
  read(version_file).should include(' VERSION = "1.3.0"')
295
325
  end
296
326
 
327
+ it "should set VERSION" do
328
+ bump("set 1.3.0").should include("1.3.0")
329
+ read(version_file).should include(' VERSION = "1.3.0"')
330
+ end
331
+
297
332
  it "should bump Version" do
298
333
  write version_file, <<-RUBY.sub(" "*8, "")
299
334
  module Foo
@@ -304,6 +339,16 @@ describe Bump do
304
339
  read(version_file).should include(' Version = "1.3.0"')
305
340
  end
306
341
 
342
+ it "should set Version" do
343
+ write version_file, <<-RUBY.sub(" "*8, "")
344
+ module Foo
345
+ Version = "1.2.3"
346
+ end
347
+ RUBY
348
+ bump("set 1.3.0").should include("1.3.0")
349
+ read(version_file).should include(' Version = "1.3.0"')
350
+ end
351
+
307
352
  it "should bump if a gemspec exists and leave it alone" do
308
353
  write_gemspec "'1.'+'2.3'"
309
354
  bump("minor").should include("1.3.0")
@@ -332,6 +377,11 @@ describe Bump do
332
377
  bump("minor").should include("1.3.0")
333
378
  read(version_file).should include("1.3.0")
334
379
  end
380
+
381
+ it "should set the version" do
382
+ bump("set 1.3.0").should include("1.3.0")
383
+ read(version_file).should include("1.3.0")
384
+ end
335
385
  end
336
386
 
337
387
  private
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bump
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.12
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-07 00:00:00.000000000 Z
12
+ date: 2013-03-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake