3 # an abstract base class representing a rule based
4 # on an individual file's attribute (like
5 # code content, or filename, etc..)
7 attr_reader :min_count, :count
9 def initialize(args = {})
16 when :min then @min_count = v
17 else raise ArgumentError.new("Unrecognized option: #{ k.inspect }")
20 FileRule.add_instance(self)
23 # default implementation - will yield a single trigger if appropriate
24 def triggers(gestalt_engine)
32 def self.process_source_file(source_file)
33 instances.each do |rule|
34 next if rule.triggered?
35 rule.process_source_file(source_file)
43 def self.add_instance(r)