[NEW] Gestalts for silverlight + popular JS libs
[ohcount] / ruby / gestalt / rules / java_import_rule.rb
1 module Ohcount
2         module Gestalt
3
4                 # Triggers if a matching java 'import' statement is present
5                 class JavaImportRule < FileRule
6
7                         def initialize(*args)
8                                 options = args.pop if args.last.is_a?(Hash)
9                                 @regex = args[0]
10                                 super(options)
11                         end
12
13                         def process_source_file(source_file)
14                                 return false unless source_file.language_breakdown('java')
15
16         java_code = source_file.language_breakdown('java').code
17         java_code.scan(import_regexp).each do |match|
18           import = match[0]
19           @count += 1 if import =~ @regex
20         end
21                         end
22
23                         def import_regexp
24                                 /^\s*import\s+([a-zA-Z][\w\.\*\-]*)\b/
25                         end
26                 end
27         end
28 end