class Adrian::Filters::FileLock

Constants

ONE_HOUR

Public Class Methods

new(options = {}) click to toggle source
# File lib/adrian/filters.rb, line 32
def initialize(options = {})
  @options       = options
  @reserved_path = @options.fetch(:reserved_path)
end

Public Instance Methods

allow?(item) click to toggle source
# File lib/adrian/filters.rb, line 37
def allow?(item)
  !locked?(item) || lock_expired?(item)
end
duration() click to toggle source
# File lib/adrian/filters.rb, line 49
def duration
  @options[:duration] ||= ONE_HOUR
end
lock_expired?(item) click to toggle source
# File lib/adrian/filters.rb, line 41
def lock_expired?(item)
  item.updated_at <= (Time.now - duration)
end
locked?(item) click to toggle source
# File lib/adrian/filters.rb, line 45
def locked?(item)
  @reserved_path == File.dirname(item.path)
end