renegade 0.0.1 → 0.1.29
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/lib/renegade.rb +6 -5
- data/lib/renegade/branch_name.rb +40 -0
- data/lib/renegade/commit_message.rb +74 -22
- data/lib/renegade/conflict_markers.rb +33 -0
- data/lib/renegade/handle_errors.rb +39 -0
- data/lib/renegade/linters.rb +69 -0
- data/lib/renegade/pre_commit.rb +36 -0
- data/lib/renegade/prepare_commit_message.rb +28 -0
- data/lib/renegade/status.rb +30 -19
- data/lib/renegade/version.rb +4 -0
- metadata +46 -12
- data/lib/renegade/checks/branch_names.rb +0 -20
- data/lib/renegade/checks/lint.rb +0 -15
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: ade5a344f1baff35eaaaadd7d0c7145d69eae41a
         | 
| 4 | 
            +
              data.tar.gz: a9a9d80519950b55b9ba777ea6ca8cdf50e40bee
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 5ecd738fff4c3c4641e8b7247ab94abf4b03381c7a044a8b31eb362a10b34134b147f74fd766f30fc01ad8dded1e6432dfa9724536a949267e5e78f4af97be86
         | 
| 7 | 
            +
              data.tar.gz: b85a93764724822c908c8eda2842f7840b725536541a7e9decc26b90887a8a272dc169cb366a9e1b4e8bba73ffaf9a3c026b47f0dae360f8481519d621dc0395
         | 
    
        data/lib/renegade.rb
    CHANGED
    
    
| @@ -0,0 +1,40 @@ | |
| 1 | 
            +
            require 'renegade/status'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Renegade
         | 
| 4 | 
            +
              ##
         | 
| 5 | 
            +
              # Verify branch name
         | 
| 6 | 
            +
              class BranchName
         | 
| 7 | 
            +
                attr_reader :errors, :warnings
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                REGEX_STORY_BRANCH = /^(?:story)-(\d{4,6})-?(.*)?$/
         | 
| 10 | 
            +
                REGEX_BUG_BRANCH = /^(?:bug)-(\d{4,6})-?(.*)?$/
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                def initialize(label)
         | 
| 13 | 
            +
                  # Instance variables
         | 
| 14 | 
            +
                  @label = label
         | 
| 15 | 
            +
                  @warnings = []
         | 
| 16 | 
            +
                  @errors = []
         | 
| 17 | 
            +
                end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                def run
         | 
| 20 | 
            +
                  branch_name = `git name-rev --name-only HEAD`
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                  Status.report(@label, check_branch_name(branch_name))
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
             | 
| 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)
         | 
| 30 | 
            +
                    # placeholder
         | 
| 31 | 
            +
                    return true
         | 
| 32 | 
            +
                  else
         | 
| 33 | 
            +
                    @warnings.push('Branches must start with bug-##### or story-#####.')
         | 
| 34 | 
            +
                    @warnings.push('You may continue to develop in this branch, but you'\
         | 
| 35 | 
            +
                      ' will not be allowed to merge unless you rename it.')
         | 
| 36 | 
            +
                    return false
         | 
| 37 | 
            +
                  end
         | 
| 38 | 
            +
                end
         | 
| 39 | 
            +
              end
         | 
| 40 | 
            +
            end
         | 
| @@ -1,22 +1,74 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
             | 
| 3 | 
            -
             | 
| 4 | 
            -
            # | 
| 5 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 8 | 
            -
             | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 11 | 
            -
            # | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 1 | 
            +
            require 'renegade/status'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Renegade
         | 
| 4 | 
            +
              # Check commit messages meet certain criteria
         | 
| 5 | 
            +
              class CommitMessage
         | 
| 6 | 
            +
                attr_reader :errors, :warnings
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                COMMIT_FORMAT = /^(?:(?:BugId: |Story: B+-|Epic: E-0)[1-9]\d* \| )(.*)/
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                def initialize(label)
         | 
| 11 | 
            +
                  # Instance variables
         | 
| 12 | 
            +
                  @label = label
         | 
| 13 | 
            +
                  @warnings = []
         | 
| 14 | 
            +
                  @errors = []
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                  @min_length = 7
         | 
| 17 | 
            +
                  @max_length = 50
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                def run(message)
         | 
| 21 | 
            +
                  check_commit_message_format(message)
         | 
| 22 | 
            +
                  check_commit_message_non_ascii(message)
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                # Check message length
         | 
| 26 | 
            +
                def check_commit_message_length(message)
         | 
| 27 | 
            +
                  check_label = 'Commit message length'
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                  if message.length >= @min_length && message.length <= @max_length
         | 
| 30 | 
            +
                    Status.report(check_label, true)
         | 
| 31 | 
            +
                  else
         | 
| 32 | 
            +
                    @errors.push "Commit messages should be between #{@min_length} "\
         | 
| 33 | 
            +
                      "and #{@max_length} characters."
         | 
| 34 | 
            +
                    Status.report(check_label, false)
         | 
| 35 | 
            +
                  end
         | 
| 36 | 
            +
                end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                # Check commit message contains no non-ASCII characters
         | 
| 39 | 
            +
                def check_commit_message_non_ascii(message)
         | 
| 40 | 
            +
                  check_label = 'Only ASCII characters'
         | 
| 41 | 
            +
             | 
| 42 | 
            +
                  if message.ascii_only?
         | 
| 43 | 
            +
                    Status.report(check_label, true)
         | 
| 44 | 
            +
                  else
         | 
| 45 | 
            +
                    Status.report(check_label, false)
         | 
| 46 | 
            +
                    @errors.push('Commit messages may not contain non-ASCII characters')
         | 
| 47 | 
            +
                  end
         | 
| 48 | 
            +
                end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                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'
         | 
| 56 | 
            +
                end
         | 
| 57 | 
            +
             | 
| 58 | 
            +
                # Check commit message contains no non-ASCII characters
         | 
| 59 | 
            +
                def check_commit_message_format(message)
         | 
| 60 | 
            +
                  check_label = 'Includes a valid BugId, Story or Epic number'
         | 
| 61 | 
            +
             | 
| 62 | 
            +
                  matches = COMMIT_FORMAT.match(message)
         | 
| 63 | 
            +
             | 
| 64 | 
            +
                  if matches
         | 
| 65 | 
            +
                    Status.report(check_label, true)
         | 
| 66 | 
            +
                    check_commit_message_length(matches[1])
         | 
| 67 | 
            +
                  else
         | 
| 68 | 
            +
                    Status.report(check_label, false)
         | 
| 69 | 
            +
                    check_commit_message_length(message)
         | 
| 70 | 
            +
                    @errors.push(check_commit_message_format_error)
         | 
| 71 | 
            +
                  end
         | 
| 72 | 
            +
                end
         | 
| 73 | 
            +
              end
         | 
| 74 | 
            +
            end
         | 
| @@ -0,0 +1,33 @@ | |
| 1 | 
            +
            require 'open3'
         | 
| 2 | 
            +
            require 'renegade/status'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            module Renegade
         | 
| 5 | 
            +
              ##
         | 
| 6 | 
            +
              # Prevent merge artifacts from getting committed
         | 
| 7 | 
            +
              class ConflictMarkers
         | 
| 8 | 
            +
                attr_reader :errors, :warnings
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                def initialize(label)
         | 
| 11 | 
            +
                  # Instance variables
         | 
| 12 | 
            +
                  @label = label
         | 
| 13 | 
            +
                  @errors = []
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
             | 
| 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 | 
            +
             | 
| 25 | 
            +
                  if markers == ''
         | 
| 26 | 
            +
                    Status.report(check_label, true)
         | 
| 27 | 
            +
                  else
         | 
| 28 | 
            +
                    Status.report(check_label, false)
         | 
| 29 | 
            +
                    @errors.push('Merge artifacts were found!' + "\n" + markers)
         | 
| 30 | 
            +
                  end
         | 
| 31 | 
            +
                end
         | 
| 32 | 
            +
              end
         | 
| 33 | 
            +
            end
         | 
| @@ -0,0 +1,39 @@ | |
| 1 | 
            +
            module Renegade
         | 
| 2 | 
            +
              ##
         | 
| 3 | 
            +
              # Handle errors
         | 
| 4 | 
            +
              class HandleErrors
         | 
| 5 | 
            +
                # Handle errors if they exist
         | 
| 6 | 
            +
                def self.handle_errors(errors)
         | 
| 7 | 
            +
                  if errors.size > 0
         | 
| 8 | 
            +
                    print_errors(errors)
         | 
| 9 | 
            +
                    exit 1
         | 
| 10 | 
            +
                  else
         | 
| 11 | 
            +
                    exit 0
         | 
| 12 | 
            +
                  end
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                def self.handle_warnings(warnings)
         | 
| 16 | 
            +
                  print_warnings(warnings) if warnings.size > 0
         | 
| 17 | 
            +
                end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                def self.print_errors(errors)
         | 
| 20 | 
            +
                  puts "\nErrors:"
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                  errors.each do |error|
         | 
| 23 | 
            +
                    puts "- #{error}"
         | 
| 24 | 
            +
                  end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  puts "\n"
         | 
| 27 | 
            +
                end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                def self.print_warnings(warnings)
         | 
| 30 | 
            +
                  puts "\nWarnings:"
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                  warnings.each do |warning|
         | 
| 33 | 
            +
                    puts "- #{warning}"
         | 
| 34 | 
            +
                  end
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                  puts "\n"
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
              end
         | 
| 39 | 
            +
            end
         | 
| @@ -0,0 +1,69 @@ | |
| 1 | 
            +
            require 'open3'
         | 
| 2 | 
            +
            require 'renegade/status'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            module Renegade
         | 
| 5 | 
            +
              # Run linters
         | 
| 6 | 
            +
              class Linters
         | 
| 7 | 
            +
                attr_reader :errors
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                def initialize(label, extension, exec_command)
         | 
| 10 | 
            +
                  # Instance variables
         | 
| 11 | 
            +
                  @label = label
         | 
| 12 | 
            +
                  @extension = extension
         | 
| 13 | 
            +
                  @exec_command = exec_command
         | 
| 14 | 
            +
                  @errors = []
         | 
| 15 | 
            +
                end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                def run(files)
         | 
| 18 | 
            +
                  files = filter_files(files)
         | 
| 19 | 
            +
                  append_file_count(files)
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                  # Only run check if there are relevant files being committed
         | 
| 22 | 
            +
                  if files.size == 0
         | 
| 23 | 
            +
                    Status.report(@label, true)
         | 
| 24 | 
            +
                  else
         | 
| 25 | 
            +
                    Status.report(@label, exec(files))
         | 
| 26 | 
            +
                  end
         | 
| 27 | 
            +
                end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                # Add the file count to the end of the label
         | 
| 30 | 
            +
                def append_file_count(files)
         | 
| 31 | 
            +
                  file_size = files.size
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                  if file_size == 0 || file_size > 1
         | 
| 34 | 
            +
                    @label = "#{@label} (#{file_size} files)"
         | 
| 35 | 
            +
                  else
         | 
| 36 | 
            +
                    @label = "#{@label} (1 file)"
         | 
| 37 | 
            +
                  end
         | 
| 38 | 
            +
                end
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                def exec(files)
         | 
| 41 | 
            +
                  # 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(' '))
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                  if wait_thread.value.exitstatus == 1
         | 
| 46 | 
            +
                    @errors.push(stdout.read)
         | 
| 47 | 
            +
                  end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                  stdout.gets(nil)
         | 
| 50 | 
            +
                  stdout.close
         | 
| 51 | 
            +
                  stderr.gets(nil)
         | 
| 52 | 
            +
                  stderr.close
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                  wait_thread.value.exitstatus == 0
         | 
| 55 | 
            +
                end
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                def filter_files(file_list)
         | 
| 58 | 
            +
                  filtered_files = []
         | 
| 59 | 
            +
             | 
| 60 | 
            +
                  file_list.each do |file|
         | 
| 61 | 
            +
                    if File.extname(file) == @extension
         | 
| 62 | 
            +
                      filtered_files.push(file)
         | 
| 63 | 
            +
                    end
         | 
| 64 | 
            +
                  end
         | 
| 65 | 
            +
             | 
| 66 | 
            +
                  filtered_files
         | 
| 67 | 
            +
                end
         | 
| 68 | 
            +
              end
         | 
| 69 | 
            +
            end
         | 
| @@ -0,0 +1,36 @@ | |
| 1 | 
            +
            require 'renegade/handle_errors'
         | 
| 2 | 
            +
            require 'renegade/status'
         | 
| 3 | 
            +
            require 'renegade/linters'
         | 
| 4 | 
            +
            require 'renegade/branch_name'
         | 
| 5 | 
            +
            require 'renegade/conflict_markers'
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            module Renegade
         | 
| 8 | 
            +
              # Run linters
         | 
| 9 | 
            +
              class PreCommit
         | 
| 10 | 
            +
                def initialize
         | 
| 11 | 
            +
                  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
         | 
| 19 | 
            +
                end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                def run
         | 
| 22 | 
            +
                  # @scss_lint.run
         | 
| 23 | 
            +
                  # @eslint.run
         | 
| 24 | 
            +
                  @branch_name.run
         | 
| 25 | 
            +
                  @conflict_markers.run
         | 
| 26 | 
            +
                  # @protected_files.run
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                  Renegade::HandleErrors.handle_warnings(@branch_name.warnings)
         | 
| 29 | 
            +
                  Renegade::HandleErrors.handle_errors(@conflict_markers.errors)
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                  # Renegade::HandleErrors.handle_errors(
         | 
| 32 | 
            +
                  #   @scss_lint.errors + @eslint.errors +
         | 
| 33 | 
            +
                  #   @branch_name.errors + @protected_files.errors)
         | 
| 34 | 
            +
                end
         | 
| 35 | 
            +
              end
         | 
| 36 | 
            +
            end
         | 
| @@ -0,0 +1,28 @@ | |
| 1 | 
            +
            require 'renegade/handle_errors'
         | 
| 2 | 
            +
            require 'renegade/status'
         | 
| 3 | 
            +
            require 'renegade/commit_message'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module Renegade
         | 
| 6 | 
            +
              # Run linters
         | 
| 7 | 
            +
              class PrepareCommitMessage
         | 
| 8 | 
            +
                def initialize
         | 
| 9 | 
            +
                  Renegade::Status.hook_start('prepare-commit-msg')
         | 
| 10 | 
            +
                  run
         | 
| 11 | 
            +
                end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                def run
         | 
| 14 | 
            +
                  message_type = ARGV[1]
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                  commit_message = Renegade::CommitMessage.new('Commit Message')
         | 
| 17 | 
            +
             | 
| 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)
         | 
| 23 | 
            +
                  end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                  Renegade::HandleErrors.handle_errors(commit_message.errors)
         | 
| 26 | 
            +
                end
         | 
| 27 | 
            +
              end
         | 
| 28 | 
            +
            end
         | 
    
        data/lib/renegade/status.rb
    CHANGED
    
    | @@ -1,19 +1,30 @@ | |
| 1 | 
            -
            #  | 
| 2 | 
            -
             | 
| 3 | 
            -
             | 
| 4 | 
            -
            # | 
| 5 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 8 | 
            -
            #
         | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 12 | 
            -
            #
         | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
            # | 
| 16 | 
            -
             | 
| 17 | 
            -
            # | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 1 | 
            +
            # Add color options
         | 
| 2 | 
            +
            class String
         | 
| 3 | 
            +
              def red
         | 
| 4 | 
            +
                "\e[31m#{self}\e[0m"
         | 
| 5 | 
            +
              end
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              def green
         | 
| 8 | 
            +
                "\e[32m#{self}\e[0m"
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
            end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            # Define string colors
         | 
| 13 | 
            +
            module Renegade
         | 
| 14 | 
            +
              ##
         | 
| 15 | 
            +
              # Report statuses
         | 
| 16 | 
            +
              class Status
         | 
| 17 | 
            +
                # Report labels
         | 
| 18 | 
            +
                def self.report(label, passed)
         | 
| 19 | 
            +
                  if passed
         | 
| 20 | 
            +
                    puts "  √ #{label}".green
         | 
| 21 | 
            +
                  else
         | 
| 22 | 
            +
                    puts "  × #{label}".red
         | 
| 23 | 
            +
                  end
         | 
| 24 | 
            +
                end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                def self.hook_start(hook)
         | 
| 27 | 
            +
                  puts "\nRunning #{hook} hooks…"
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
              end
         | 
| 30 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,41 +1,75 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: renegade
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.1.29
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 | 
            -
            -  | 
| 7 | 
            +
            - ratherblue
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 | 
            -
            bindir:  | 
| 9 | 
            +
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2016- | 
| 11 | 
            +
            date: 2016-02-18 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            -
              name:  | 
| 14 | 
            +
              name: rake
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 17 | 
             
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: ' | 
| 20 | 
            -
              type: : | 
| 19 | 
            +
                    version: '10.0'
         | 
| 20 | 
            +
              type: :development
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 24 | 
             
                - - "~>"
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version: ' | 
| 26 | 
            +
                    version: '10.0'
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: minitest
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - ">="
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '0'
         | 
| 34 | 
            +
              type: :development
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - ">="
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '0'
         | 
| 41 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            +
              name: rubocop
         | 
| 43 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 | 
            +
                requirements:
         | 
| 45 | 
            +
                - - "~>"
         | 
| 46 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            +
                    version: 0.35.1
         | 
| 48 | 
            +
              type: :development
         | 
| 49 | 
            +
              prerelease: false
         | 
| 50 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 | 
            +
                requirements:
         | 
| 52 | 
            +
                - - "~>"
         | 
| 53 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            +
                    version: 0.35.1
         | 
| 27 55 | 
             
            description: Gem description
         | 
| 28 | 
            -
            email: | 
| 56 | 
            +
            email:
         | 
| 57 | 
            +
            - ratherblue@gmail.com
         | 
| 29 58 | 
             
            executables: []
         | 
| 30 59 | 
             
            extensions: []
         | 
| 31 60 | 
             
            extra_rdoc_files: []
         | 
| 32 61 | 
             
            files:
         | 
| 33 62 | 
             
            - lib/renegade.rb
         | 
| 34 | 
            -
            - lib/renegade/ | 
| 35 | 
            -
            - lib/renegade/checks/lint.rb
         | 
| 63 | 
            +
            - lib/renegade/branch_name.rb
         | 
| 36 64 | 
             
            - lib/renegade/commit_message.rb
         | 
| 65 | 
            +
            - lib/renegade/conflict_markers.rb
         | 
| 66 | 
            +
            - lib/renegade/handle_errors.rb
         | 
| 67 | 
            +
            - lib/renegade/linters.rb
         | 
| 68 | 
            +
            - lib/renegade/pre_commit.rb
         | 
| 69 | 
            +
            - lib/renegade/prepare_commit_message.rb
         | 
| 37 70 | 
             
            - lib/renegade/status.rb
         | 
| 38 | 
            -
             | 
| 71 | 
            +
            - lib/renegade/version.rb
         | 
| 72 | 
            +
            homepage: https://github.com/ratherblue/renegade
         | 
| 39 73 | 
             
            licenses:
         | 
| 40 74 | 
             
            - Apache 2.0
         | 
| 41 75 | 
             
            metadata: {}
         | 
| @@ -1,20 +0,0 @@ | |
| 1 | 
            -
            # module Renegade
         | 
| 2 | 
            -
            #   ##
         | 
| 3 | 
            -
            #   # Validate class names
         | 
| 4 | 
            -
            #   class BranchNames
         | 
| 5 | 
            -
            #     REGEX_STORY_BRANCH = /^(?:story)-(\d{4,6})?-?(.*)?$/
         | 
| 6 | 
            -
            #     REGEX_BUG_BRANCH = /^(?:bug)-(\d{4,6})?-?(.*)?$/
         | 
| 7 | 
            -
            #
         | 
| 8 | 
            -
            #     def self.check_branch_name(branch_name)
         | 
| 9 | 
            -
            #       if REGEX_STORY_BRANCH.match(branch_name)
         | 
| 10 | 
            -
            #         # placeholder
         | 
| 11 | 
            -
            #         return true
         | 
| 12 | 
            -
            #       elsif REGEX_BUG_BRANCH.match(branch_name)
         | 
| 13 | 
            -
            #         # placeholder
         | 
| 14 | 
            -
            #         return true
         | 
| 15 | 
            -
            #       else
         | 
| 16 | 
            -
            #         return false
         | 
| 17 | 
            -
            #       end
         | 
| 18 | 
            -
            #     end
         | 
| 19 | 
            -
            #   end
         | 
| 20 | 
            -
            # end
         | 
    
        data/lib/renegade/checks/lint.rb
    DELETED