Class: Tripwire::Scanner
- Inherits:
-
Object
- Object
- Tripwire::Scanner
- Defined in:
- lib/tripwire/scanner.rb
Instance Attribute Summary collapse
-
#exclude_patterns ⇒ Object
Returns the value of attribute exclude_patterns.
-
#quiet ⇒ Object
Returns the value of attribute quiet.
-
#scan_patterns ⇒ Object
Returns the value of attribute scan_patterns.
-
#scanned_file_mtimes ⇒ Object
Returns the value of attribute scanned_file_mtimes.
-
#scanned_files ⇒ Object
Returns the value of attribute scanned_files.
-
#updates ⇒ Object
Returns the value of attribute updates.
Instance Method Summary collapse
Instance Attribute Details
#exclude_patterns ⇒ Object
Returns the value of attribute exclude_patterns.
3 4 5 |
# File 'lib/tripwire/scanner.rb', line 3 def exclude_patterns @exclude_patterns end |
#quiet ⇒ Object
Returns the value of attribute quiet.
8 9 10 |
# File 'lib/tripwire/scanner.rb', line 8 def quiet @quiet end |
#scan_patterns ⇒ Object
Returns the value of attribute scan_patterns.
4 5 6 |
# File 'lib/tripwire/scanner.rb', line 4 def scan_patterns @scan_patterns end |
#scanned_file_mtimes ⇒ Object
Returns the value of attribute scanned_file_mtimes.
6 7 8 |
# File 'lib/tripwire/scanner.rb', line 6 def scanned_file_mtimes @scanned_file_mtimes end |
#scanned_files ⇒ Object
Returns the value of attribute scanned_files.
5 6 7 |
# File 'lib/tripwire/scanner.rb', line 5 def scanned_files @scanned_files end |
#updates ⇒ Object
Returns the value of attribute updates.
7 8 9 |
# File 'lib/tripwire/scanner.rb', line 7 def updates @updates end |
Instance Method Details
#scan ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/tripwire/scanner.rb', line 10 def scan updates.clear files = scan_patterns.map {|scan_pattern| Dir.glob(scan_pattern) }.flatten.uniq exclude_list = exclude_patterns.map {|exclude_pattern| Dir.glob(exclude_pattern) }.flatten files -= exclude_list excluded_folders = exclude_list.select {|item| File.directory?(item) } excluded_folders.each do |folder| regexp = /^#{Regexp.escape(folder)}\// files -= files.select {|file| file.match(regexp)} end files.each do |file| mtime = File.mtime(file) previous_mtime = scanned_file_mtimes[file] if mtime != previous_mtime if !previous_mtime updates << "A #{file}" else updates << "M #{file}" end scanned_file_mtimes[file] = mtime end end missing_files = scanned_files - files missing_files.each do |file| scanned_file_mtimes.delete(file) updates << "D #{file}" end self.scanned_files.replace(files) puts updates unless quiet updates end |
#tripped? ⇒ Boolean
42 43 44 |
# File 'lib/tripwire/scanner.rb', line 42 def tripped? !updates.empty? end |