class Danger::DangerLocalRules
Attributes
rules_file[RW]
Public Instance Methods
check()
click to toggle source
# File lib/local_rules/plugin.rb, line 12 def check diff = github.pr_diff return if diff.nil? failure_rules = rules['failure'] warning_rules = rules['warning'] return if failure_rules.nil? && warning_rules.nil? if diff.match(Regexp.union(failure_rules.keys + warning_rules.keys)) regexp_to_fail = Regexp.union(failure_rules.keys) regexp_to_warn = Regexp.union(warning_rules.keys) GitDiffParser.parse(diff).each do |changed_file| next if changed_file.file == rules_file changed_file.changed_lines.each do |changed_line| content = changed_line.content # Only checks added contents next unless content.start_with?('+') if (content.match(regexp_to_fail)) content.match(regexp_to_fail) do |data| fail(failure_rules[data[0]], file: changed_file.file, line: changed_line.number) end end if (content.match(regexp_to_warn)) content.match(regexp_to_warn) do |data| warn(warning_rules[data[0]], file: changed_file.file, line: changed_line.number) end end end end end end
Private Instance Methods
rules()
click to toggle source
# File lib/local_rules/plugin.rb, line 49 def rules YAML.load_file(rules_file) end