class Gitra::Parser

Public Class Methods

new(rule_file) click to toggle source
# File lib/gitra/parser.rb, line 5
def initialize(rule_file)
  rule_file ||= '.gitra-rules.yml'
  @rules = YAML.load_file(rule_file)

  @uses = {}
  @rules.each_pair do |name, patterns|
    @uses[name] = {}
    patterns.map! { |p| Regexp.new p }
  end
end

Public Instance Methods

result() click to toggle source
# File lib/gitra/parser.rb, line 28
def result
  @uses
end
use(commit) click to toggle source
# File lib/gitra/parser.rb, line 16
def use(commit)
  @rules.each_pair do |name, patterns|
    patterns.each do |pattern|
      match = pattern.match commit.message
      next unless match

      id = match[1].to_i
      (@uses[name][id] ||= []) << commit
    end
  end
end