rake-n-bake 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.bundle/config +2 -0
- data/.gitignore +3 -0
- data/.ruby-version +1 -0
- data/.travis.yml +16 -0
- data/Gemfile +13 -0
- data/Gemfile.lock +53 -0
- data/README.md +80 -0
- data/Rakefile +14 -0
- data/bin/bundle-audit +16 -0
- data/bin/bundler +16 -0
- data/bin/cdiff +16 -0
- data/bin/colortab +16 -0
- data/bin/decolor +16 -0
- data/bin/htmldiff +16 -0
- data/bin/ldiff +16 -0
- data/bin/rake +16 -0
- data/bin/rspec +16 -0
- data/bin/semver +16 -0
- data/bin/term_display +16 -0
- data/bin/term_mandel +16 -0
- data/bin/thor +16 -0
- data/history.rdoc +41 -0
- data/lib/dependency_checker.rb +26 -0
- data/lib/rake_n_bake.rb +9 -0
- data/lib/semver_versioning.rb +62 -0
- data/lib/version.rb +64 -0
- data/rake-n-bake.gemspec +19 -0
- data/spec/.keep +0 -0
- data/spec/dependency_checker_spec.rb +41 -0
- data/spec/semver_versioning_spec.rb +123 -0
- data/spec/spec_helper.rb +11 -0
- data/spec/version_spec.rb +165 -0
- data/tasks/bundler_audit.rake +8 -0
- data/tasks/check_external_deps.rake +16 -0
- data/tasks/code_quality.rake +85 -0
- data/tasks/coverage.rake +21 -0
- data/tasks/ok.rake +37 -0
- data/tasks/rspec.rake +13 -0
- data/tasks/semver.rake +53 -0
- data/tasks/version.rake +31 -0
- metadata +115 -0
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'term/ansicolor'
|
2
|
+
|
3
|
+
namespace :bake do
|
4
|
+
task :check_external_dependencies do
|
5
|
+
include Term::ANSIColor
|
6
|
+
checker = RakeNBake::DependencyChecker.new(@external_dependencies)
|
7
|
+
|
8
|
+
puts 'Checking external dependencies...'
|
9
|
+
checker.check
|
10
|
+
puts
|
11
|
+
|
12
|
+
missing = checker.missing
|
13
|
+
fail("The following dependencies are missing: \n#{missing.join(%Q[\n])}") unless missing.empty?
|
14
|
+
puts
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
namespace :bake do
|
2
|
+
namespace :code_quality do
|
3
|
+
desc 'Runs all code quality checks'
|
4
|
+
task :all => [:trailing_spaces, :shoulds, :debugger, :pry, :console_log]
|
5
|
+
|
6
|
+
desc 'check for trailing spaces'
|
7
|
+
task :trailing_spaces do
|
8
|
+
grep_for_trailing_space %w{spec features lib app factories db}
|
9
|
+
end
|
10
|
+
|
11
|
+
desc %(check for legacy 'it "should blah"' style specs)
|
12
|
+
task :shoulds do
|
13
|
+
grep_for_shoulds %w{spec}
|
14
|
+
end
|
15
|
+
|
16
|
+
desc 'check for debugger statements'
|
17
|
+
task :debugger do
|
18
|
+
grep_for_debugger %w{lib app spec features}
|
19
|
+
end
|
20
|
+
|
21
|
+
desc 'check for binding.pry statements'
|
22
|
+
task :pry do
|
23
|
+
grep_for_pry %w{lib app spec features}
|
24
|
+
end
|
25
|
+
|
26
|
+
desc 'check for console.log'
|
27
|
+
task :console_log do
|
28
|
+
grep_for_console_log %w{app/assets/javascripts }
|
29
|
+
end
|
30
|
+
|
31
|
+
desc 'check for Time.now should use Time.zone.now'
|
32
|
+
task :time_check do
|
33
|
+
grep_for_time_now %w{app lib}
|
34
|
+
end
|
35
|
+
|
36
|
+
def grep_for_trailing_space *file_patterns
|
37
|
+
grep '^.*[[:space:]]+$', file_patterns, 'trailing spaces', ['*.yml', '*.csv']
|
38
|
+
end
|
39
|
+
|
40
|
+
def grep_for_shoulds *file_patterns
|
41
|
+
grep '^[[:space:]]*it "should.*$',
|
42
|
+
file_patterns,
|
43
|
+
'it block description starting with should'
|
44
|
+
end
|
45
|
+
|
46
|
+
def grep_for_pry *file_patterns
|
47
|
+
grep 'binding.pry',
|
48
|
+
file_patterns,
|
49
|
+
'binding.pry statement found',
|
50
|
+
%w[common_spec_helper.rb code_quality.rake]
|
51
|
+
end
|
52
|
+
|
53
|
+
def grep_for_debugger *file_patterns
|
54
|
+
grep 'debugger',
|
55
|
+
file_patterns,
|
56
|
+
'debugger statement found',
|
57
|
+
%w[common_spec_helper.rb code_quality.rake angular.js]
|
58
|
+
end
|
59
|
+
|
60
|
+
def grep_for_console_log *file_patterns
|
61
|
+
grep 'console.log',
|
62
|
+
file_patterns,
|
63
|
+
'console.log statement found',
|
64
|
+
%w[angular.js jquery.flot-0.8.1.js]
|
65
|
+
end
|
66
|
+
|
67
|
+
def grep_for_time_now *file_patterns
|
68
|
+
grep "Time.now",
|
69
|
+
file_patterns,
|
70
|
+
"Time.now found, use Time.zone.now to prevent timezone conflicts",
|
71
|
+
%w{*.rake}
|
72
|
+
end
|
73
|
+
|
74
|
+
def grep regex, file_patterns, error_message, exclude_patterns=[], perl_regex=false
|
75
|
+
files_found = ""
|
76
|
+
command = "grep -r -n -s --binary-files=without-match '#{regex}' #{file_patterns.join(' ')}"
|
77
|
+
exclude_patterns.each do |exclude_pattern|
|
78
|
+
command << " --exclude '#{exclude_pattern}'"
|
79
|
+
end
|
80
|
+
command << (perl_regex ? ' -P' : ' -E')
|
81
|
+
files_found << `#{command}`
|
82
|
+
abort("#{error_message} found:\n#{files_found}") unless files_found.empty?
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
data/tasks/coverage.rake
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
begin
|
2
|
+
require "simplecov"
|
3
|
+
|
4
|
+
namespace :bake do
|
5
|
+
namespace :coverage do
|
6
|
+
task :check_specs do
|
7
|
+
SimpleCov.coverage_dir 'log/coverage/spec'
|
8
|
+
coverage = SimpleCov.result.covered_percent
|
9
|
+
fail "Spec coverage was only #{coverage}%" if coverage < 100.0
|
10
|
+
end
|
11
|
+
|
12
|
+
task :check_cucumber do
|
13
|
+
SimpleCov.coverage_dir 'log/coverage/features'
|
14
|
+
coverage = SimpleCov.result.covered_percent
|
15
|
+
fail "Feature coverage was only #{coverage}%" if coverage < 100.0
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
rescue LoadError
|
20
|
+
$stderr.puts 'Warning: SimpleCov not available.'
|
21
|
+
end
|
data/tasks/ok.rake
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'term/ansicolor'
|
2
|
+
|
3
|
+
namespace :bake do
|
4
|
+
include Term::ANSIColor
|
5
|
+
|
6
|
+
desc 'Print the "ALL TESTS PASSED" message'
|
7
|
+
task :ok do
|
8
|
+
puts
|
9
|
+
print [
|
10
|
+
"*".bold.red,
|
11
|
+
"*".bold.yellow,
|
12
|
+
"*".bold.green,
|
13
|
+
"*".bold.blue,
|
14
|
+
"*".bold.magenta,
|
15
|
+
" ALL TESTS PASSED ".bold.green,
|
16
|
+
"*".bold.magenta,
|
17
|
+
"*".bold.blue,
|
18
|
+
"*".bold.green,
|
19
|
+
"*".bold.yellow,
|
20
|
+
"*".bold.red,
|
21
|
+
].join
|
22
|
+
puts
|
23
|
+
end
|
24
|
+
|
25
|
+
desc 'Print the "ALL TESTS PASSED" message WITH A SWEET RAINBOW!!!'
|
26
|
+
task :ok_rainbow do
|
27
|
+
puts
|
28
|
+
print " ", " ", " ", " ".on_red, " ", " ", " ", "\n"
|
29
|
+
print " ", " ", " ".on_red, " ".on_yellow, " ".on_red, " ", " ", "\n"
|
30
|
+
print " ", " ".on_red, " ".on_yellow, " ".on_green, " ".on_yellow, " ".on_red, " ", "\n"
|
31
|
+
print " ".on_red, " ".on_yellow, " ".on_green, " ".on_blue, " ".on_green, " ".on_yellow, " ".on_red, "\n"
|
32
|
+
print " ".on_yellow, " ".on_green, " ".on_blue, " ".on_magenta, " ".on_blue, " ".on_green, " ".on_yellow, "\n"
|
33
|
+
print " ".on_green, " ".on_blue, " ".on_magenta, " ", " ".on_magenta, " ".on_blue, " ".on_green, "\n"
|
34
|
+
print " ".on_blue, " ".on_magenta, " ", " ALL TESTS PASSED".bold.green, " ".green, " ".on_magenta, " ".on_blue, "\n"
|
35
|
+
puts
|
36
|
+
end
|
37
|
+
end
|
data/tasks/rspec.rake
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
begin
|
2
|
+
require 'rspec/core/rake_task'
|
3
|
+
|
4
|
+
RSpec::Core::RakeTask.new(:"bake:rspec") do |t|
|
5
|
+
t.verbose = false
|
6
|
+
end
|
7
|
+
|
8
|
+
RSpec::Core::RakeTask.new(:"bake:rspec_test_prepare" => :"test:prepare") do |t|
|
9
|
+
t.verbose = false
|
10
|
+
end
|
11
|
+
rescue LoadError
|
12
|
+
$stderr.puts 'Warning: RSpec not available.'
|
13
|
+
end
|
data/tasks/semver.rake
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
begin
|
2
|
+
require 'semver'
|
3
|
+
namespace :bake do
|
4
|
+
namespace :semver do
|
5
|
+
|
6
|
+
desc "Display the latest version (form .semver)"
|
7
|
+
task :version do
|
8
|
+
RakeNBake::SemverVersioning.latest_version
|
9
|
+
RakeNBake::SemverVersioning.tag
|
10
|
+
end
|
11
|
+
|
12
|
+
desc 'Increment major version in .semver (eg 1.2.3 => 2.0.0)'
|
13
|
+
task :major do
|
14
|
+
RakeNBake::SemverVersioning.inc_major
|
15
|
+
RakeNBake::SemverVersioning.tag
|
16
|
+
end
|
17
|
+
|
18
|
+
desc 'Increment minor version in .semver (eg 1.2.3 => 1.3.0)'
|
19
|
+
task :minor do
|
20
|
+
RakeNBake::SemverVersioning.inc_minor
|
21
|
+
RakeNBake::SemverVersioning.tag
|
22
|
+
end
|
23
|
+
|
24
|
+
desc 'Increment patch version in .semver (eg 1.2.3 => 2.0.0)'
|
25
|
+
task :patch do
|
26
|
+
RakeNBake::SemverVersioning.inc_patch
|
27
|
+
RakeNBake::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 bake:semver:prerelase['release name']")
|
33
|
+
RakeNBake::SemverVersioning.prerelease version
|
34
|
+
RakeNBake::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 bake:semver:inc_prerelase['release name']")
|
40
|
+
RakeNBake::SemverVersioning.inc_prerelease version
|
41
|
+
RakeNBake::SemverVersioning.tag
|
42
|
+
end
|
43
|
+
|
44
|
+
desc 'Remove prerelease version (eg 1.2.3-rc2 => 1.2.3)'
|
45
|
+
task :release do
|
46
|
+
RakeNBake::SemverVersioning.release
|
47
|
+
RakeNBake::SemverVersioning.tag
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
rescue LoadError
|
52
|
+
$stderr.puts "Error: Semver not avaialble"
|
53
|
+
end
|
data/tasks/version.rake
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
desc "Display the latest version (from history.rdoc)"
|
2
|
+
task :"bake:version" do
|
3
|
+
puts "Latest version is #{RakeNBake::Version.latest_version}"
|
4
|
+
end
|
5
|
+
|
6
|
+
namespace :bake do
|
7
|
+
namespace :version do
|
8
|
+
desc "Increment the major version in history.rdoc (eg 1.2.3 => 2.0.0)"
|
9
|
+
task :major do
|
10
|
+
new_version = RakeNBake::Version.latest_version
|
11
|
+
new_version[0] += 1
|
12
|
+
new_version[1,2] = 0, 0
|
13
|
+
RakeNBake::Version.update_to new_version
|
14
|
+
end
|
15
|
+
|
16
|
+
desc "Increment the minor version in history.rdoc (eg 1.2.3 => 1.3.0)"
|
17
|
+
task :minor do
|
18
|
+
new_version = RakeNBake::Version.latest_version
|
19
|
+
new_version[1] += 1
|
20
|
+
new_version[2] = 0
|
21
|
+
RakeNBake::Version.update_to new_version
|
22
|
+
end
|
23
|
+
|
24
|
+
desc "Increment the patch version in history.rdoc (eg 1.2.3 => 1.2.4)"
|
25
|
+
task :patch do
|
26
|
+
new_version = RakeNBake::Version.latest_version
|
27
|
+
new_version[2] += 1
|
28
|
+
RakeNBake::Version.update_to new_version
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
metadata
ADDED
@@ -0,0 +1,115 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rake-n-bake
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Richard Vickerstaff
|
8
|
+
- Adam Whittingham
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2014-10-20 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rake
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '10'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '10'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: term-ansicolor
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '1.3'
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '1.3'
|
42
|
+
description: Common rake tasks, baked to perfection and ready to serve!
|
43
|
+
email:
|
44
|
+
- m3akq@btinternet.com
|
45
|
+
- adam.whittingham@gmail.com
|
46
|
+
executables: []
|
47
|
+
extensions: []
|
48
|
+
extra_rdoc_files: []
|
49
|
+
files:
|
50
|
+
- ".bundle/config"
|
51
|
+
- ".gitignore"
|
52
|
+
- ".ruby-version"
|
53
|
+
- ".travis.yml"
|
54
|
+
- Gemfile
|
55
|
+
- Gemfile.lock
|
56
|
+
- README.md
|
57
|
+
- Rakefile
|
58
|
+
- bin/bundle-audit
|
59
|
+
- bin/bundler
|
60
|
+
- bin/cdiff
|
61
|
+
- bin/colortab
|
62
|
+
- bin/decolor
|
63
|
+
- bin/htmldiff
|
64
|
+
- bin/ldiff
|
65
|
+
- bin/rake
|
66
|
+
- bin/rspec
|
67
|
+
- bin/semver
|
68
|
+
- bin/term_display
|
69
|
+
- bin/term_mandel
|
70
|
+
- bin/thor
|
71
|
+
- history.rdoc
|
72
|
+
- lib/dependency_checker.rb
|
73
|
+
- lib/rake_n_bake.rb
|
74
|
+
- lib/semver_versioning.rb
|
75
|
+
- lib/version.rb
|
76
|
+
- rake-n-bake.gemspec
|
77
|
+
- spec/.keep
|
78
|
+
- spec/dependency_checker_spec.rb
|
79
|
+
- spec/semver_versioning_spec.rb
|
80
|
+
- spec/spec_helper.rb
|
81
|
+
- spec/version_spec.rb
|
82
|
+
- tasks/bundler_audit.rake
|
83
|
+
- tasks/check_external_deps.rake
|
84
|
+
- tasks/code_quality.rake
|
85
|
+
- tasks/coverage.rake
|
86
|
+
- tasks/ok.rake
|
87
|
+
- tasks/rspec.rake
|
88
|
+
- tasks/semver.rake
|
89
|
+
- tasks/version.rake
|
90
|
+
homepage: https://github.com/RichardVickerstaff/rake-n-bake
|
91
|
+
licenses:
|
92
|
+
- MIT
|
93
|
+
metadata: {}
|
94
|
+
post_install_message:
|
95
|
+
rdoc_options: []
|
96
|
+
require_paths:
|
97
|
+
- lib
|
98
|
+
- tasks
|
99
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '0'
|
109
|
+
requirements: []
|
110
|
+
rubyforge_project:
|
111
|
+
rubygems_version: 2.2.2
|
112
|
+
signing_key:
|
113
|
+
specification_version: 4
|
114
|
+
summary: Common rake tasks, baked to perfection and ready to serve!
|
115
|
+
test_files: []
|