class Poper::Runner
Public Class Methods
new(commit, repo_path = '.')
click to toggle source
# File lib/poper/runner.rb, line 5 def initialize(commit, repo_path = '.') @repo = Rugged::Repository.new(repo_path) oid = @repo.rev_parse_oid(commit) @commit = @repo.lookup(oid) end
Public Instance Methods
run()
click to toggle source
# File lib/poper/runner.rb, line 11 def run commits.flat_map { |c| check(c) }.compact end
Private Instance Methods
check(commit)
click to toggle source
# File lib/poper/runner.rb, line 17 def check(commit) rules.map do |rule| result = rule.check(commit.message) OpenStruct.new(commit: commit.oid, message: result) if result end end
commits()
click to toggle source
# File lib/poper/runner.rb, line 32 def commits @commits ||= begin walker.reset walker.push(@repo.last_commit) walker.take_while { |c| c.oid != @commit.oid } << @commit end end
rules()
click to toggle source
# File lib/poper/runner.rb, line 24 def rules Rule::Rule.all.map do |rule_klass| rule = rule_klass.new rule if rule.enabled? end.compact end
walker()
click to toggle source
# File lib/poper/runner.rb, line 40 def walker @walker ||= Rugged::Walker.new(@repo) end