Class: File::Visitor::Filter::Mtime
- Inherits:
-
Object
- Object
- File::Visitor::Filter::Mtime
- Includes:
- TimeUtils
- Defined in:
- lib/file/visitor/filter/mtime.rb
Constant Summary collapse
- PASSED_COMPARATOR =
{ :passed => :is_older_than, :passed= => :is_older_than=, }
Constants included from TimeUtils
TimeUtils::COMPARATOR, TimeUtils::UNIT_SEC
Instance Method Summary collapse
-
#initialize(*args) ⇒ Mtime
constructor
Two ways to initialize filter: 1) File::Visitor::Filter::Mtime.new( :younger_than, “2012-01-01”) 2) File::Visitor::Filter::Mtime.new( :passed, 30, :days).
- #match?(path) ⇒ Boolean
Methods included from TimeUtils
#compare_time, #to_time, #unitexp2sec
Constructor Details
#initialize(*args) ⇒ Mtime
Two ways to initialize filter:
1) File::Visitor::Filter::Mtime.new(
:younger_than, "2012-01-01")
2) File::Visitor::Filter::Mtime.new(
:passed, 30, :days)
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/file/visitor/filter/mtime.rb', line 19 def initialize(*args) comparator = args.shift target_time = nil # case 1) if PASSED_COMPARATOR.keys.include?(comparator) count = args.shift unit = args.shift target_time = Time.now - unitexp2sec(count, unit) comparator = PASSED_COMPARATOR[comparator] # case 2) else unless COMPARATOR.include?(comparator) raise ArgumentError, "comparator must be in " + COMPARATOR.join(", ") end target_time = args.shift if target_time.is_a?(String) target_time = Time.parse(target_time) end unless target_time.is_a?(Time) raise ArgumentError, "time must be a Time" end end @comparator = comparator @target_time = target_time end |
Instance Method Details
#match?(path) ⇒ Boolean
50 51 52 53 54 55 56 |
# File 'lib/file/visitor/filter/mtime.rb', line 50 def match?(path) compare_time( File.mtime(path), @comparator, @target_time ) end |