rake_rack 1.1.0 → 2.0.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.
- checksums.yaml +4 -4
- data/Gemfile +1 -0
- data/Gemfile.lock +2 -0
- data/README.md +1 -72
- data/lib/semver_versioning.rb +62 -0
- data/rake_rack.gemspec +2 -1
- data/spec/semver_versioning_spec.rb +123 -0
- data/spec/spec_helper.rb +1 -0
- data/tasks/semver.rake +53 -0
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 917f8815273708d4b3c5da0390ed553b3a5bdab2
|
4
|
+
data.tar.gz: a7f8b74fe7ae9f4352957b1d25edcf1b7b1c710e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 936e11a20ffcaf9fcb453b316515ec077543b9b40d175b9b3174b653d73f4b6de22275d06f58942468382ea095a7bff2f29c1e94b7474951a870119f1ea130f1
|
7
|
+
data.tar.gz: 5d27e61f57bcb1e9a288a58f61530fe78e0245226fcede9b045ea9246173ce4995af10a76c8854459f29f441eab9970916e168467565b801934feb5b82051605
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -27,6 +27,7 @@ GEM
|
|
27
27
|
rspec-mocks (3.0.3)
|
28
28
|
rspec-support (~> 3.0.0)
|
29
29
|
rspec-support (3.0.3)
|
30
|
+
semver2 (3.4.0)
|
30
31
|
simplecov (0.9.0)
|
31
32
|
docile (~> 1.1.0)
|
32
33
|
multi_json
|
@@ -46,6 +47,7 @@ DEPENDENCIES
|
|
46
47
|
rake
|
47
48
|
rake_rack!
|
48
49
|
rspec
|
50
|
+
semver2
|
49
51
|
simplecov
|
50
52
|
term-ansicolor (~> 1.3)
|
51
53
|
timecop
|
data/README.md
CHANGED
@@ -1,75 +1,4 @@
|
|
1
1
|
RakeRack
|
2
2
|
========
|
3
3
|
|
4
|
-
|
5
|
-
------------------------
|
6
|
-
...collected together and given a new coat of paint (and nothing to do with [Rack](http://rack.github.io/))
|
7
|
-
|
8
|
-
|
9
|
-
[](https://travis-ci.org/RichardVickerstaff/rake_rack)
|
10
|
-
[](http://badge.fury.io/rb/rake_rack)
|
11
|
-
|
12
|
-
RakeRack is a collection of widely applicable Rake tasks used on many projects.
|
13
|
-
They have been extracted into a gem to allow them to easily be reused and maintained.
|
14
|
-
|
15
|
-
RakeRack tasks are used on the project itself, so you can always take a peek at our [Rakefile](https://github.com/RichardVickerstaff/rake_rack/blob/master/Rakefile) or the [tasks themselves](https://github.com/RichardVickerstaff/rake_rack/tree/master/tasks) to work out what is going on
|
16
|
-
|
17
|
-
Installation
|
18
|
-
------------
|
19
|
-
Install the gem or add `gem "rake_rack"` to your Gemfile.
|
20
|
-
|
21
|
-
Usage
|
22
|
-
-----
|
23
|
-
1. Add `require "rake_rack"` to your Rakefile
|
24
|
-
2. Call the tasks that you want, in with your usual Rake tasks.
|
25
|
-
|
26
|
-
Tasks are namespaced under `:rake_rack` to prevent clashes.
|
27
|
-
For example, this means the `:ok` task is called by invoking `:rake_rack:ok`
|
28
|
-
|
29
|
-
Tasks
|
30
|
-
-----
|
31
|
-
### :bundler_audit
|
32
|
-
Check the current Gemfile.lock for gem versions with known security issues, courtesy of [Bundler Audit](https://github.com/rubysec/bundler-audit#readme)
|
33
|
-
|
34
|
-
### :check_external_dependencies
|
35
|
-
Check that each command in the `@external_dependencies` array is present on the system path (and fails the task if it isn't)
|
36
|
-
For example:
|
37
|
-
```ruby
|
38
|
-
@external_dependencies = ['ruby', 'postgres', 'foo']
|
39
|
-
```
|
40
|
-
You can also use the underlying checker object by creating an instance of `RakeRack::DependencyChecker` with your array of dependencies and calling `#check` or `#missing` on it.
|
41
|
-
|
42
|
-
### :code_quality
|
43
|
-
#### :all
|
44
|
-
Runs `[:trailing_spaces, :shoulds, :debugger, :pry, :console_log]` tasks. It does not run `:time_check`
|
45
|
-
##### :trailing_spaces
|
46
|
-
Check for trailing spaces in `[spec, features, lib, app, factories, db]`.
|
47
|
-
##### :shoulds
|
48
|
-
Check for legacy 'it "should blah"' style specs
|
49
|
-
##### :debugger
|
50
|
-
Check for debugger statements in `[lib, app, spec, features]`.
|
51
|
-
##### :pry
|
52
|
-
Check for binding.pry statements in `[lib, app, spec, features]`.
|
53
|
-
##### :console_log
|
54
|
-
Check for console.log statements in `app/assets/javascripys`.
|
55
|
-
##### :time_check
|
56
|
-
Check for `Time.now` statements in `[lib, app]` (Time.zone.now is more reliable for servers wanting to use UTC).
|
57
|
-
This check is NOT part of :all as `Time.zone.now` is an ActiveSupport method.
|
58
|
-
|
59
|
-
### :coverage
|
60
|
-
#### :check_specs
|
61
|
-
Look at SimpleCov results for spec coverage in `log/coverage/spec` and fail the build if not 100%
|
62
|
-
#### :check_cucumber
|
63
|
-
Look at SimpleCov results for Cucumber coverage in `log/coverage/features` and fail the build if not 100%
|
64
|
-
|
65
|
-
### :ok
|
66
|
-
Useful at the end of any Rake tasks which test your application, it prints `***** ALL TESTS PASSED *****`.
|
67
|
-
|
68
|
-
### :ok_rainbow
|
69
|
-
Run this task last to print a more magical version of `:ok`
|
70
|
-
|
71
|
-
Contributing
|
72
|
-
------------
|
73
|
-
1. Make a fork
|
74
|
-
2. Make and push your changes to your fork
|
75
|
-
3. Create a Pull Reques
|
4
|
+
This gem has moved to rake-n-bake, please use that instead.
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'semver'
|
2
|
+
class RakeRack
|
3
|
+
class SemverVersioning
|
4
|
+
def self.current_version
|
5
|
+
if File.exist? SemVer.file_name
|
6
|
+
SemVer.find
|
7
|
+
else
|
8
|
+
version = SemVer.new
|
9
|
+
version.save SemVer.file_name
|
10
|
+
version
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.inc_major
|
15
|
+
v = current_version
|
16
|
+
v.major = v.major.to_i + 1
|
17
|
+
v.minor = '0'
|
18
|
+
v.patch = '0'
|
19
|
+
v.save
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.inc_minor
|
23
|
+
v = current_version
|
24
|
+
v.minor = v.minor.to_i + 1
|
25
|
+
v.patch = '0'
|
26
|
+
v.save
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.inc_patch
|
30
|
+
v = current_version
|
31
|
+
v.patch = v.patch.to_i + 1
|
32
|
+
v.save
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.prerelease s
|
36
|
+
v = current_version
|
37
|
+
v.special = s
|
38
|
+
v.save
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.inc_prerelease s
|
42
|
+
inc_major
|
43
|
+
v = current_version
|
44
|
+
v.special = s
|
45
|
+
v.save
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.release
|
49
|
+
v = current_version
|
50
|
+
v.special = ''
|
51
|
+
v.save
|
52
|
+
end
|
53
|
+
|
54
|
+
def self.tag
|
55
|
+
v = current_version.to_s
|
56
|
+
`git add .semver && git commit -m 'Increment version to #{v}' && git tag #{v}`
|
57
|
+
branch = `git symbolic-ref HEAD`[%r{.*/(.*)}, 1]
|
58
|
+
puts "To push the new tag, use 'git push origin #{branch} --tags'"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
data/rake_rack.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "rake_rack"
|
7
|
-
spec.version = '
|
7
|
+
spec.version = '2.0.0'
|
8
8
|
spec.authors = ["Richard Vickerstaff"]
|
9
9
|
spec.email = ["m3akq@btinternet.com"]
|
10
10
|
spec.description = "A set of rake tasks I commonly use - Formerly known as pool_net"
|
@@ -13,6 +13,7 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.license = "MIT"
|
14
14
|
spec.files = `git ls-files`.split($/)
|
15
15
|
spec.require_paths = ["lib","tasks"]
|
16
|
+
spec.post_install_message = "This gem has moved to rake-n-bake, please use that instead"
|
16
17
|
|
17
18
|
spec.add_runtime_dependency "rake", "~> 10"
|
18
19
|
spec.add_runtime_dependency "term-ansicolor", "~> 1.3"
|
@@ -0,0 +1,123 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'yaml'
|
3
|
+
|
4
|
+
describe RakeRack::SemverVersioning do
|
5
|
+
let(:version) {
|
6
|
+
{
|
7
|
+
major: '1',
|
8
|
+
minor: '2',
|
9
|
+
patch: '3',
|
10
|
+
special: '',
|
11
|
+
metadata: ''
|
12
|
+
}
|
13
|
+
}
|
14
|
+
before(:all) do
|
15
|
+
if File.exist? File.join(File.dirname(__FILE__), '../.semver')
|
16
|
+
@current_semver_file = File.read(File.join(File.dirname(__FILE__), '../.semver'), force: true)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
after(:all) do
|
21
|
+
if @current_semver_file
|
22
|
+
File.write(File.join(File.dirname(__FILE__), '../.semver'), @current_semver_file, force: true)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
before do
|
26
|
+
FileUtils.rm(File.join(File.dirname(__FILE__), '../.semver'), force: true)
|
27
|
+
end
|
28
|
+
after do
|
29
|
+
FileUtils.rm(File.join(File.dirname(__FILE__), '../.semver'), force: true)
|
30
|
+
end
|
31
|
+
describe '#current_version' do
|
32
|
+
context 'when there is no .semver file' do
|
33
|
+
it 'returns the current version' do
|
34
|
+
expect(described_class.current_version.to_s).to eq 'v0.0.0'
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
context 'when there is a .semver file' do
|
39
|
+
before do
|
40
|
+
File.write(File.join(File.dirname(__FILE__), '../.semver'), YAML.dump(version))
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'returns the current version' do
|
44
|
+
expect(described_class.current_version.to_s).to eq 'v1.2.3'
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe 'inc_major' do
|
50
|
+
before do
|
51
|
+
File.write(File.join(File.dirname(__FILE__), '../.semver'), YAML.dump(version))
|
52
|
+
end
|
53
|
+
it 'increases major and resets minor and patch' do
|
54
|
+
described_class.inc_major
|
55
|
+
expect(described_class.current_version.to_s).to eq 'v2.0.0'
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe 'inc_minor' do
|
60
|
+
before do
|
61
|
+
File.write(File.join(File.dirname(__FILE__), '../.semver'), YAML.dump(version))
|
62
|
+
end
|
63
|
+
it 'increases minor and resets patch' do
|
64
|
+
described_class.inc_minor
|
65
|
+
expect(described_class.current_version.to_s).to eq 'v1.3.0'
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
describe 'inc_patch' do
|
70
|
+
before do
|
71
|
+
File.write(File.join(File.dirname(__FILE__), '../.semver'), YAML.dump(version))
|
72
|
+
end
|
73
|
+
it 'increases minor and resets patch' do
|
74
|
+
described_class.inc_patch
|
75
|
+
expect(described_class.current_version.to_s).to eq 'v1.2.4'
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
describe 'prerelease' do
|
80
|
+
before do
|
81
|
+
File.write(File.join(File.dirname(__FILE__), '../.semver'), YAML.dump(version))
|
82
|
+
end
|
83
|
+
it 'sets the prerelease to the supplied string' do
|
84
|
+
described_class.prerelease 'something'
|
85
|
+
expect(described_class.current_version.to_s).to eq 'v1.2.3-something'
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
describe 'inc_prerelease' do
|
90
|
+
before do
|
91
|
+
File.write(File.join(File.dirname(__FILE__), '../.semver'), YAML.dump(version))
|
92
|
+
end
|
93
|
+
it 'increments major version and sets the prerelease to the supplied string' do
|
94
|
+
described_class.inc_prerelease 'something'
|
95
|
+
expect(described_class.current_version.to_s).to eq 'v2.0.0-something'
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
describe 'release' do
|
100
|
+
before do
|
101
|
+
v = version
|
102
|
+
v[:special] = "a string"
|
103
|
+
File.write(File.join(File.dirname(__FILE__), '../.semver'), YAML.dump(v))
|
104
|
+
end
|
105
|
+
it 'removes the prerelease' do
|
106
|
+
described_class.release
|
107
|
+
expect(described_class.current_version.to_s).to eq 'v1.2.3'
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
describe 'tag' do
|
112
|
+
before do
|
113
|
+
File.write(File.join(File.dirname(__FILE__), '../.semver'), YAML.dump(version))
|
114
|
+
end
|
115
|
+
it 'tags with the curren semver release and outputs push instructions' do
|
116
|
+
expect(Object).to receive(:`).with("git add .semver && git commit -m 'Increment version to v1.2.3' && git tag v1.2.3")
|
117
|
+
expect(Object).to receive(:`).with('git symbolic-ref HEAD').and_return 'refs/heads/master'
|
118
|
+
expect(Object).to receive(:puts).with("To push the new tag, use 'git push origin master --tags'")
|
119
|
+
described_class.tag
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
data/spec/spec_helper.rb
CHANGED
data/tasks/semver.rake
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
begin
|
2
|
+
require 'semver'
|
3
|
+
namespace :rake_rack do
|
4
|
+
namespace :semver do
|
5
|
+
|
6
|
+
desc "Display the latest version (form .semver)"
|
7
|
+
task :version do
|
8
|
+
RakeRack::SemverVersioning.latest_version
|
9
|
+
RakeRack::SemverVersioning.tag
|
10
|
+
end
|
11
|
+
|
12
|
+
desc 'Increment major version in .semver (eg 1.2.3 => 2.0.0)'
|
13
|
+
task :major do
|
14
|
+
RakeRack::SemverVersioning.inc_major
|
15
|
+
RakeRack::SemverVersioning.tag
|
16
|
+
end
|
17
|
+
|
18
|
+
desc 'Increment minor version in .semver (eg 1.2.3 => 1.3.0)'
|
19
|
+
task :minor do
|
20
|
+
RakeRack::SemverVersioning.inc_minor
|
21
|
+
RakeRack::SemverVersioning.tag
|
22
|
+
end
|
23
|
+
|
24
|
+
desc 'Increment patch version in .semver (eg 1.2.3 => 2.0.0)'
|
25
|
+
task :patch do
|
26
|
+
RakeRack::SemverVersioning.inc_patch
|
27
|
+
RakeRack::SemverVersioning.tag
|
28
|
+
end
|
29
|
+
|
30
|
+
desc 'Add or modify the current prerelease version (eg 1.2.3-rc1 => 1.2.3-rc2'
|
31
|
+
task :prerelease, [:version] do |task, args|
|
32
|
+
version = args[:version] || fail("Invalid usage: rake rake_rack:semver:prerelase['release name']")
|
33
|
+
RakeRack::SemverVersioning.prerelease version
|
34
|
+
RakeRack::SemverVersioning.tag
|
35
|
+
end
|
36
|
+
|
37
|
+
desc 'Increment major version and add a prerelease version (eg 1.2.3 => 2.0.0-rc1)'
|
38
|
+
task :inc_prerelease, [:version] do |task, args|
|
39
|
+
version = args[:version] || fail("Invalid usage: rake rake_rack:semver:inc_prerelase['release name']")
|
40
|
+
RakeRack::SemverVersioning.inc_prerelease version
|
41
|
+
RakeRack::SemverVersioning.tag
|
42
|
+
end
|
43
|
+
|
44
|
+
desc 'Remove prerelease version (eg 1.2.3-rc2 => 1.2.3)'
|
45
|
+
task :release do
|
46
|
+
RakeRack::SemverVersioning.release
|
47
|
+
RakeRack::SemverVersioning.tag
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
rescue LoadError
|
52
|
+
$stderr.puts "Error: Semver not avaialble"
|
53
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rake_rack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Vickerstaff
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -55,10 +55,12 @@ files:
|
|
55
55
|
- history.rdoc
|
56
56
|
- lib/dependency_checker.rb
|
57
57
|
- lib/rake_rack.rb
|
58
|
+
- lib/semver_versioning.rb
|
58
59
|
- lib/version.rb
|
59
60
|
- rake_rack.gemspec
|
60
61
|
- spec/.keep
|
61
62
|
- spec/dependency_checker_spec.rb
|
63
|
+
- spec/semver_versioning_spec.rb
|
62
64
|
- spec/spec_helper.rb
|
63
65
|
- spec/version_spec.rb
|
64
66
|
- tasks/bundler_audit.rake
|
@@ -67,12 +69,13 @@ files:
|
|
67
69
|
- tasks/coverage.rake
|
68
70
|
- tasks/ok.rake
|
69
71
|
- tasks/rspec.rake
|
72
|
+
- tasks/semver.rake
|
70
73
|
- tasks/version.rake
|
71
74
|
homepage: https://github.com/RichardVickerstaff/rake_rack
|
72
75
|
licenses:
|
73
76
|
- MIT
|
74
77
|
metadata: {}
|
75
|
-
post_install_message:
|
78
|
+
post_install_message: This gem has moved to rake-n-bake, please use that instead
|
76
79
|
rdoc_options: []
|
77
80
|
require_paths:
|
78
81
|
- lib
|