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.
@@ -0,0 +1,8 @@
1
+ require 'bundler/audit/cli'
2
+
3
+ namespace :bake do
4
+ desc 'Check Gemfile.lock for security issues'
5
+ task :bundler_audit do
6
+ Bundler::Audit::CLI.start
7
+ end
8
+ end
@@ -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
@@ -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
@@ -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: []