rake-n-bake 1.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 +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: []
|