renegade 0.1.33 → 0.1.48

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c46355bf57e7ff7ccd92cca140c467c5808534be
4
- data.tar.gz: 3596159941ef7e480c6667576e4f1582efe2cce2
3
+ metadata.gz: 3fdcc4d4286010b0ab5c4a48cc331044217cf32c
4
+ data.tar.gz: 0c21b2038427d11613c95590107bf85afd4db78f
5
5
  SHA512:
6
- metadata.gz: 7e32a89837d2a6127ebe23b3a881be43f5340b444c68217f4944a9b71f093c6ad36f7216052d8ee6b0e2362d51f194c3c964f40f3e5b1551b8579b0bfdda5f16
7
- data.tar.gz: b1d43597c1c4e8dc55eeca8bceca8cda1cc973e03acf034b581e700ae43e6c2007476b6c4b82ce07ad2b2367038733f4603ed36023069d5501b07fef0c45e02a
6
+ metadata.gz: c2d245a34f00f9c98a289aaf525ecde69b95f399f219b7ddd1b70d954235e02cde6691908ea42faaf8693aff59f345ebe67db290855fbfe095169f6a38ab4bc3
7
+ data.tar.gz: 9af1bb1b8f2b941e399448f4677c805b6fe7d9e02240d8290a86fd5943854afd635e9fa0e8b893802b3c5fd3956b19926eae665cd31e327d332321309da461be
@@ -9,24 +9,23 @@ module Renegade
9
9
  REGEX_STORY_BRANCH = /^(?:story)-(\d{4,6})-?(.*)?$/
10
10
  REGEX_BUG_BRANCH = /^(?:bug)-(\d{4,6})-?(.*)?$/
11
11
 
12
- def initialize(label)
12
+ def initialize
13
13
  # Instance variables
14
- @label = label
14
+ @label = 'Branch Name'
15
15
  @warnings = []
16
16
  @errors = []
17
17
  end
18
18
 
19
- def run
20
- branch_name = `git name-rev --name-only HEAD`
19
+ def run(branch_name)
20
+ # branch_name = `git name-rev --name-only HEAD`
21
21
 
22
22
  Status.report(@label, check_branch_name(branch_name), true)
23
23
  end
24
24
 
25
25
  def check_branch_name(branch_name)
26
- if REGEX_STORY_BRANCH.match(branch_name)
27
- # placeholder
28
- return true
29
- elsif REGEX_BUG_BRANCH.match(branch_name)
26
+ if REGEX_STORY_BRANCH.match(branch_name) ||
27
+ REGEX_BUG_BRANCH.match(branch_name) ||
28
+ branch_name == 'master'
30
29
  # placeholder
31
30
  return true
32
31
  else
@@ -7,9 +7,8 @@ module Renegade
7
7
 
8
8
  COMMIT_FORMAT = /^(?:(?:BugId: |Story: B+-|Epic: E-0)[1-9]\d* \| )(.*)/
9
9
 
10
- def initialize(label)
10
+ def initialize
11
11
  # Instance variables
12
- @label = label
13
12
  @warnings = []
14
13
  @errors = []
15
14
 
@@ -48,11 +47,11 @@ module Renegade
48
47
  end
49
48
 
50
49
  def check_commit_message_format_error
51
- 'You must include a valid BugId, Story or Epic number.' + "\n"\
52
- ' Examples:' + "\n"\
53
- ' - BugId: 12345 | Helpful comment describing bug fix' + "\n"\
54
- ' - Story: B-12345 | Helpful comment describing story' + "\n"\
55
- ' - Epic: E-12345 | Epic comment'
50
+ "You must include a valid BugId, Story or Epic number.\n"\
51
+ " Examples:\n"\
52
+ " - BugId: 12345 | Helpful comment describing bug fix\n"\
53
+ " - Story: B-12345 | Helpful comment describing story\n"\
54
+ ' - Epic: E-12345 | Epic comment'
56
55
  end
57
56
 
58
57
  # Check commit message contains no non-ASCII characters
@@ -1,31 +1,22 @@
1
- require 'open3'
2
1
  require 'renegade/status'
3
2
 
4
3
  module Renegade
5
4
  ##
6
5
  # Prevent merge artifacts from getting committed
7
6
  class ConflictMarkers
8
- attr_reader :errors, :warnings
7
+ attr_reader :errors
9
8
 
10
- def initialize(label)
11
- # Instance variables
12
- @label = label
9
+ def initialize
10
+ @label = 'No merge artifacts'
13
11
  @errors = []
14
12
  end
15
13
 
16
- def run
17
- markers = `git diff-index --check --cached HEAD --`
18
-
19
- check_markers(markers.chomp.strip)
20
- end
21
-
22
- def check_markers(markers)
23
- check_label = 'No merge artifacts'
24
-
14
+ def run(markers)
15
+ # markers = `git diff-index --check --cached HEAD --`
25
16
  if markers == ''
26
- Status.report(check_label, true)
17
+ Status.report(@label, true)
27
18
  else
28
- Status.report(check_label, false)
19
+ Status.report(@label, false)
29
20
  @errors.push('Merge artifacts were found!' + "\n" + markers)
30
21
  end
31
22
  end
@@ -4,16 +4,16 @@ module Renegade
4
4
  class HandleErrors
5
5
  # Handle errors if they exist
6
6
  def self.handle_errors(errors)
7
- if errors.size > 0
8
- print_errors(errors)
9
- exit 1
7
+ if errors.empty?
8
+ true
10
9
  else
11
- exit 0
10
+ print_errors(errors)
11
+ false
12
12
  end
13
13
  end
14
14
 
15
15
  def self.handle_warnings(warnings)
16
- print_warnings(warnings) if warnings.size > 0
16
+ print_warnings(warnings) unless warnings.empty?
17
17
  end
18
18
 
19
19
  def self.print_errors(errors)
@@ -19,7 +19,7 @@ module Renegade
19
19
  append_file_count(files)
20
20
 
21
21
  # Only run check if there are relevant files being committed
22
- if files.size == 0
22
+ if files.empty?
23
23
  Status.report(@label, true)
24
24
  else
25
25
  Status.report(@label, exec(files))
@@ -30,25 +30,21 @@ module Renegade
30
30
  def append_file_count(files)
31
31
  file_size = files.size
32
32
 
33
- if file_size == 0 || file_size > 1
34
- @label = "#{@label} (#{file_size} files)"
35
- else
36
- @label = "#{@label} (1 file)"
37
- end
33
+ label_count =
34
+ (file_size == 0 || file_size > 1) ? "#{file_size} files" : '1 file'
35
+
36
+ @label = "#{@label} (#{label_count})"
38
37
  end
39
38
 
40
39
  def exec(files)
41
40
  # http://stackoverflow.com/questions/690151/getting-output-of-system-calls-in-ruby
42
- _stdin, stdout, stderr,
43
- wait_thread = Open3.popen3(@exec_command, files.join(' '))
41
+ stdin, stdout, stderr,
42
+ wait_thread = Open3.popen3(@exec_command + " #{files.join(' ')}")
44
43
 
45
- if wait_thread.value.exitstatus == 1
46
- @errors.push(stdout.read)
47
- end
44
+ @errors.push(stdout.read) if wait_thread.value.exitstatus == 1
48
45
 
49
- stdout.gets(nil)
46
+ stdin.close
50
47
  stdout.close
51
- stderr.gets(nil)
52
48
  stderr.close
53
49
 
54
50
  wait_thread.value.exitstatus == 0
@@ -58,9 +54,7 @@ module Renegade
58
54
  filtered_files = []
59
55
 
60
56
  file_list.each do |file|
61
- if File.extname(file) == @extension
62
- filtered_files.push(file)
63
- end
57
+ filtered_files.push(file) if File.extname(file) == @extension
64
58
  end
65
59
 
66
60
  filtered_files
@@ -3,34 +3,38 @@ require 'renegade/status'
3
3
  require 'renegade/linters'
4
4
  require 'renegade/branch_name'
5
5
  require 'renegade/conflict_markers'
6
+ require 'renegade/protected_files'
6
7
 
7
8
  module Renegade
8
9
  # Run linters
9
10
  class PreCommit
10
11
  def initialize
11
12
  Renegade::Status.hook_start('pre-commit')
12
- # @scss_lint = Renegade::Linters.new('SCSS Lint', '.scss', 'scss-lint')
13
- # @eslint = Renegade::Linters.new('ESLint', '.js', 'eslint')
14
- @branch_name = Renegade::BranchName.new('Branch Name')
15
- @conflict_markers = Renegade::ConflictMarkers.new('Conflict Markers')
16
- # @protected_files = Renegade::ProtectedFiles.new('Protected Files')
17
-
18
- run
13
+ @scss_lint = Renegade::Linters.new('SCSS Lint', '.scss', 'scss-lint')
14
+ @eslint = Renegade::Linters.new('ESLint', '.js', 'eslint')
15
+ @branch_name = Renegade::BranchName.new
16
+ @conflict_markers = Renegade::ConflictMarkers.new
17
+ @protected_files = Renegade::ProtectedFiles.new
19
18
  end
20
19
 
21
- def run
22
- # @scss_lint.run
23
- # @eslint.run
24
- @branch_name.run
25
- @conflict_markers.run
26
- # @protected_files.run
20
+ def run(files, branch_name, markers)
21
+ unless files.empty?
22
+ files = files.split("\n")
23
+ @scss_lint.run(files)
24
+ @eslint.run(files)
25
+ @branch_name.run(branch_name)
26
+ @conflict_markers.run(markers)
27
+ @protected_files.run(files)
28
+ end
27
29
 
28
- Renegade::HandleErrors.handle_warnings(@branch_name.warnings)
29
- Renegade::HandleErrors.handle_errors(@conflict_markers.errors)
30
+ handle_errors
31
+ end
30
32
 
31
- # Renegade::HandleErrors.handle_errors(
32
- # @scss_lint.errors + @eslint.errors +
33
- # @branch_name.errors + @protected_files.errors)
33
+ def handle_errors
34
+ Renegade::HandleErrors.handle_warnings(@branch_name.warnings +
35
+ @protected_files.warnings)
36
+ Renegade::HandleErrors.handle_errors(@scss_lint.errors +
37
+ @eslint.errors + @conflict_markers.errors)
34
38
  end
35
39
  end
36
40
  end
@@ -3,26 +3,23 @@ require 'renegade/status'
3
3
  require 'renegade/commit_message'
4
4
 
5
5
  module Renegade
6
- # Run linters
6
+ # Run prepare commit message hooks
7
7
  class PrepareCommitMsg
8
- def initialize
9
- Renegade::Status.hook_start('prepare-commit-msg')
10
- run
8
+ def initialize(args)
9
+ @message = args[1]
10
+ @message_file = args[0]
11
+
12
+ # Avoid checking merges
13
+ Renegade::Status.hook_start('prepare-commit-msg') if @message == 'message'
11
14
  end
12
15
 
13
16
  def run
14
- message_type = ARGV[1]
15
-
16
- commit_message = Renegade::CommitMessage.new('Commit Message')
17
+ if @message == 'message' # Avoid checking merges
18
+ commit_message = Renegade::CommitMessage.new
19
+ commit_message.run(File.read(@message_file))
17
20
 
18
- # Avoid checking merges
19
- if message_type == 'message'
20
- message_file = ARGV[0]
21
- message = File.read(message_file)
22
- commit_message.run(message)
21
+ Renegade::HandleErrors.handle_errors(commit_message.errors)
23
22
  end
24
-
25
- Renegade::HandleErrors.handle_errors(commit_message.errors)
26
23
  end
27
24
  end
28
25
  end
@@ -0,0 +1,22 @@
1
+ require 'renegade/status'
2
+
3
+ module Renegade
4
+ # Check protected files
5
+ class ProtectedFiles
6
+ attr_reader :warnings, :protected_files
7
+
8
+ def initialize
9
+ # Instance variables
10
+ @warnings = []
11
+ @protected_files = ['app.config', 'web.config']
12
+ end
13
+
14
+ def run(files)
15
+ files.each do |file|
16
+ if @protected_files.include?(File.basename(file).downcase)
17
+ @warnings.push 'Warning! You are making changes to: ' + file.highlight
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -1,15 +1,23 @@
1
1
  # Add color options
2
2
  class String
3
- def red
4
- "\e[31m#{self}\e[0m"
3
+ def highlight
4
+ "\e[36m#{self}\e[0m"
5
5
  end
6
6
 
7
- def green
8
- "\e[32m#{self}\e[0m"
7
+ def status
8
+ "\e[35m#{self}\e[0m"
9
9
  end
10
10
 
11
- def yellow
12
- "\e[1;33m#{self}\e[0m"
11
+ def success
12
+ "\e[32m √ #{self}\e[0m"
13
+ end
14
+
15
+ def warning
16
+ "\e[33m × #{self}\e[0m"
17
+ end
18
+
19
+ def error
20
+ "\e[31m × #{self}\e[0m"
13
21
  end
14
22
  end
15
23
 
@@ -21,18 +29,16 @@ module Renegade
21
29
  # Report labels
22
30
  def self.report(label, passed, warning = nil)
23
31
  if passed
24
- puts " √ #{label}".green
32
+ puts label.success
33
+ elsif warning
34
+ puts label.warning
25
35
  else
26
- if warning
27
- puts " × #{label}".yellow
28
- else
29
- puts " × #{label}".red
30
- end
36
+ puts label.error
31
37
  end
32
38
  end
33
39
 
34
40
  def self.hook_start(hook)
35
- puts "\nRunning #{hook} hooks…"
41
+ puts "\n" + "Running #{hook} hooks…".status
36
42
  end
37
43
  end
38
44
  end
@@ -1,4 +1,4 @@
1
1
  # Renegade version
2
2
  module Renegade
3
- VERSION = '0.1.33'
3
+ VERSION = '0.1.48'.freeze
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: renegade
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.33
4
+ version: 0.1.48
5
5
  platform: ruby
6
6
  authors:
7
7
  - ratherblue
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-02-18 00:00:00.000000000 Z
11
+ date: 2016-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -38,20 +38,62 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest-reporters
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 1.1.7
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 1.1.7
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rubocop
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - "~>"
46
60
  - !ruby/object:Gem::Version
47
- version: 0.35.1
61
+ version: 0.37.2
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.37.2
69
+ - !ruby/object:Gem::Dependency
70
+ name: scss_lint
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.47.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.47.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: highline
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 1.7.8
48
90
  type: :development
49
91
  prerelease: false
50
92
  version_requirements: !ruby/object:Gem::Requirement
51
93
  requirements:
52
94
  - - "~>"
53
95
  - !ruby/object:Gem::Version
54
- version: 0.35.1
96
+ version: 1.7.8
55
97
  description: Gem description
56
98
  email:
57
99
  - ratherblue@gmail.com
@@ -67,6 +109,7 @@ files:
67
109
  - lib/renegade/linters.rb
68
110
  - lib/renegade/pre_commit.rb
69
111
  - lib/renegade/prepare_commit_msg.rb
112
+ - lib/renegade/protected_files.rb
70
113
  - lib/renegade/status.rb
71
114
  - lib/renegade/version.rb
72
115
  homepage: https://github.com/ratherblue/renegade