bump 0.3.2 → 0.3.3
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/Gemfile.lock +1 -1
- data/README.md +10 -0
- data/bin/bump +1 -4
- data/bump.gemspec +1 -1
- data/lib/bump.rb +16 -2
- data/lib/bump/tasks.rb +11 -0
- data/spec/bump/tasks_spec.rb +28 -0
- data/spec/bump_spec.rb +6 -29
- data/spec/spec_helper.rb +41 -0
- metadata +5 -2
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -16,6 +16,16 @@ Bump your gemfile (major, minor, patch):
|
|
16
16
|
|
17
17
|
Bump version 0.1.2 to 0.1.3
|
18
18
|
|
19
|
+
### Rake
|
20
|
+
|
21
|
+
```Ruby
|
22
|
+
# Rakefile
|
23
|
+
require "bump/tasks"
|
24
|
+
```
|
25
|
+
|
26
|
+
rake bump:patch
|
27
|
+
rake bump:current
|
28
|
+
|
19
29
|
# Supported locations
|
20
30
|
- VERSION file with "1.2.3"
|
21
31
|
- gemspec with `gem.version = "1.2.3"`
|
data/bin/bump
CHANGED
data/bump.gemspec
CHANGED
data/lib/bump.rb
CHANGED
@@ -10,7 +10,16 @@ module Bump
|
|
10
10
|
OPTIONS = BUMPS | ["current"]
|
11
11
|
VERSION_REGEX = /(\d+\.\d+\.\d+(?:-(?:#{PRERELEASE.compact.join('|')}))?)/
|
12
12
|
|
13
|
-
def self.
|
13
|
+
def self.defaults
|
14
|
+
{
|
15
|
+
:commit => true,
|
16
|
+
:bundle => File.exist?("Gemfile")
|
17
|
+
}
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.run(bump, options={})
|
21
|
+
options = defaults.merge(options)
|
22
|
+
|
14
23
|
case bump
|
15
24
|
when *BUMPS
|
16
25
|
bump(bump, options)
|
@@ -37,7 +46,7 @@ module Bump
|
|
37
46
|
current, file = current_version
|
38
47
|
next_version = next_version(current, part)
|
39
48
|
replace(file, current, next_version)
|
40
|
-
system("bundle") if options[:bundle]
|
49
|
+
system("bundle") if options[:bundle] and under_version_control?("Gemfile.lock")
|
41
50
|
commit(next_version, file, options) if options[:commit]
|
42
51
|
["Bump version #{current} to #{next_version}", 0]
|
43
52
|
end
|
@@ -115,5 +124,10 @@ module Bump
|
|
115
124
|
version = [major, minor, patch, *other].compact.join('.')
|
116
125
|
[version, prerelease].compact.join('-')
|
117
126
|
end
|
127
|
+
|
128
|
+
def self.under_version_control?(file)
|
129
|
+
@all_files ||= `git ls-files`.split(/\r?\n/)
|
130
|
+
@all_files.include?(file)
|
131
|
+
end
|
118
132
|
end
|
119
133
|
end
|
data/lib/bump/tasks.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "rake bump" do
|
4
|
+
inside_of_folder("spec/fixture")
|
5
|
+
|
6
|
+
before do
|
7
|
+
write "VERSION", "1.2.3\n"
|
8
|
+
write "Rakefile", "require File.expand_path('../../../lib/bump/tasks', __FILE__)"
|
9
|
+
raise unless system("git add VERSION")
|
10
|
+
end
|
11
|
+
|
12
|
+
it "bumps a version" do
|
13
|
+
output = run "rake bump:minor"
|
14
|
+
output.should include("1.3.0")
|
15
|
+
read("VERSION").should == "1.3.0\n"
|
16
|
+
`git log -1 --pretty=format:'%s'`.should == "v1.3.0"
|
17
|
+
end
|
18
|
+
|
19
|
+
it "fails when it cannot bump" do
|
20
|
+
write "VERSION", "AAA"
|
21
|
+
run "rake bump:minor", :fail => true
|
22
|
+
end
|
23
|
+
|
24
|
+
it "shows the version" do
|
25
|
+
result = run "rake bump:current"
|
26
|
+
result.should include("1.2.3")
|
27
|
+
end
|
28
|
+
end
|
data/spec/bump_spec.rb
CHANGED
@@ -1,18 +1,10 @@
|
|
1
|
-
require
|
2
|
-
require 'bundler'
|
1
|
+
require "spec_helper"
|
3
2
|
|
4
3
|
describe Bump do
|
5
4
|
let(:gemspec){ "fixture.gemspec" }
|
6
5
|
let(:version_rb_file){ "lib/foo/version.rb" }
|
7
6
|
|
8
|
-
|
9
|
-
run "rm -rf fixture && mkdir fixture"
|
10
|
-
Dir.chdir "fixture" do
|
11
|
-
`git init && git commit --allow-empty -am 'initial'` # so we never accidentally do commit to the current repo
|
12
|
-
example.call
|
13
|
-
end
|
14
|
-
run "rm -rf fixture"
|
15
|
-
end
|
7
|
+
inside_of_folder("spec/fixture")
|
16
8
|
|
17
9
|
it "should fail if it cannot find anything to bump" do
|
18
10
|
bump("current", :fail => true).should include "Unable to find"
|
@@ -249,33 +241,18 @@ describe Bump do
|
|
249
241
|
Bundler.with_clean_env { bump("patch --no-bundle") }
|
250
242
|
read(gemspec).should include "1.0.1"
|
251
243
|
read("Gemfile.lock").should include "1.0.0"
|
244
|
+
`git status --porcelain`.should include "?? Gemfile.lock"
|
252
245
|
end
|
253
246
|
|
254
|
-
it "does not commit an untracked Gemfile.lock" do
|
247
|
+
it "does not bundle or commit an untracked Gemfile.lock" do
|
255
248
|
Bundler.with_clean_env { bump("patch") }
|
256
|
-
read("Gemfile.lock").should include "1.0.
|
257
|
-
`git status`.should include "
|
249
|
+
read("Gemfile.lock").should include "1.0.0"
|
250
|
+
`git status --porcelain`.should include "?? Gemfile.lock"
|
258
251
|
end
|
259
252
|
end
|
260
253
|
|
261
254
|
private
|
262
255
|
|
263
|
-
def write(file, content)
|
264
|
-
folder = File.dirname(file)
|
265
|
-
run "mkdir -p #{folder}" unless File.exist?(folder)
|
266
|
-
File.open(file, 'w'){|f| f.write content }
|
267
|
-
end
|
268
|
-
|
269
|
-
def read(file)
|
270
|
-
File.read(file)
|
271
|
-
end
|
272
|
-
|
273
|
-
def run(cmd, options={})
|
274
|
-
result = `#{cmd} 2>&1`
|
275
|
-
raise "FAILED #{cmd} --> #{result}" if $?.success? != !options[:fail]
|
276
|
-
result
|
277
|
-
end
|
278
|
-
|
279
256
|
def bump(command="", options={})
|
280
257
|
run "#{File.expand_path("../../bin/bump", __FILE__)} #{command}", options
|
281
258
|
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
require "bundler"
|
2
|
+
require "bump"
|
3
|
+
|
4
|
+
module SpecHelpers
|
5
|
+
module InstanceMethods
|
6
|
+
def write(file, content)
|
7
|
+
folder = File.dirname(file)
|
8
|
+
run "mkdir -p #{folder}" unless File.exist?(folder)
|
9
|
+
File.open(file, 'w'){|f| f.write content }
|
10
|
+
end
|
11
|
+
|
12
|
+
def read(file)
|
13
|
+
File.read(file)
|
14
|
+
end
|
15
|
+
|
16
|
+
def run(cmd, options={})
|
17
|
+
result = `#{cmd} 2>&1`
|
18
|
+
raise "FAILED #{cmd} --> #{result}" if $?.success? != !options[:fail]
|
19
|
+
result
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
module ClassMethods
|
24
|
+
def inside_of_folder(folder)
|
25
|
+
folder = File.expand_path(folder, File.dirname(File.dirname(__FILE__)))
|
26
|
+
around do |example|
|
27
|
+
run "rm -rf #{folder} && mkdir #{folder}"
|
28
|
+
Dir.chdir folder do
|
29
|
+
`git init && git commit --allow-empty -am 'initial'` # so we never accidentally do commit to the current repo
|
30
|
+
example.call
|
31
|
+
end
|
32
|
+
run "rm -rf #{folder}"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
RSpec.configure do |c|
|
39
|
+
c.include SpecHelpers::InstanceMethods
|
40
|
+
c.extend SpecHelpers::ClassMethods
|
41
|
+
end
|
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.
|
4
|
+
version: 0.3.3
|
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: 2012-10-
|
12
|
+
date: 2012-10-25 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description:
|
15
15
|
email: g.marcilhacy@gmail.com
|
@@ -27,7 +27,10 @@ files:
|
|
27
27
|
- bin/bump
|
28
28
|
- bump.gemspec
|
29
29
|
- lib/bump.rb
|
30
|
+
- lib/bump/tasks.rb
|
31
|
+
- spec/bump/tasks_spec.rb
|
30
32
|
- spec/bump_spec.rb
|
33
|
+
- spec/spec_helper.rb
|
31
34
|
homepage: https://github.com/gregorym/bump
|
32
35
|
licenses:
|
33
36
|
- MIT
|