Sha256: aec7a5a2be988f08e8df06dce8526ad56568f88415ab504d4e999fcb4c4333e5

Contents?: true

Size: 645 Bytes

Versions: 8

Compression:

Stored size: 645 Bytes

Contents

class ModifiedFilter
  
  def initialize(file_class, last_modified = nil)
    @file_class = file_class
    @last_modified = last_modified
    @modifieds = []
    @prev_file_sizes = {}
  end
  
  def filter(path)
    modified = @file_class.mtime(path)
    @modifieds << modified
    
    file_size = @file_class.size(path)
    prev_file_size = @prev_file_sizes[path]
    modified = @last_modified.nil? || modified > @last_modified || prev_file_size.nil? || file_size != prev_file_size
    
    @prev_file_sizes[path] = file_size
    
    return modified
  end
  
  def complete
    @last_modified = @modifieds.max
    @modifieds = []
  end
  
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
loris-0.5.2 lib/filters/modified_filter.rb
loris-0.5.1 lib/filters/modified_filter.rb
loris-0.5.0 lib/filters/modified_filter.rb
loris-0.4.1 lib/filters/modified_filter.rb
loris-0.4.0 lib/filters/modified_filter.rb
loris-0.3.2 lib/filters/modified_filter.rb
loris-0.3.1 lib/filters/modified_filter.rb
loris-0.3.0 lib/filters/modified_filter.rb