Sha256: 131269f13ed075346ee6fdea264f1144a4f20a0e19db044f6784c6cb9a13908d

Contents?: true

Size: 888 Bytes

Versions: 25

Compression:

Stored size: 888 Bytes

Contents

# frozen_string_literal: true

#
# Copyright 2013 whiteleaf. All rights reserved.
#

module Narou
  module Mixin
    module Locker
      def locked?(target)
        id = Downloader.get_id_by_target(target) or return false
        Inventory.load("lock").include?(id)
      end

      def lock(target)
        id = Downloader.get_id_by_target(target)
        unless id
          yield if block_given?
          return
        end
        locked_list = Inventory.load("lock")
        locked_list[id] = Time.now
        locked_list.save
        return unless block_given?
        begin
          yield
        ensure
          unlock(target)
        end
      end

      def unlock(target)
        id = Downloader.get_id_by_target(target) or return
        locked_list = Inventory.load("lock")
        return unless locked_list.delete(id)
        locked_list.save
      end
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
narou-3.9.1 lib/mixin/locker.rb
narou-3.9.0 lib/mixin/locker.rb
narou-3.8.2 lib/mixin/locker.rb
narou-3.8.1 lib/mixin/locker.rb
narou-3.8.0 lib/mixin/locker.rb
narou-3.7.2 lib/mixin/locker.rb
narou-3.7.1 lib/mixin/locker.rb
narou-3.7.0 lib/mixin/locker.rb
narou-3.6.0 lib/mixin/locker.rb
narou-3.5.1 lib/mixin/locker.rb
narou-3.5.0.1 lib/mixin/locker.rb
narou-3.5.0 lib/mixin/locker.rb
narou-3.4.8 lib/mixin/locker.rb
narou-3.4.7.1 lib/mixin/locker.rb
narou-3.4.7 lib/mixin/locker.rb
narou-3.4.6.1 lib/mixin/locker.rb
narou-3.4.6 lib/mixin/locker.rb
narou-3.4.5 lib/mixin/locker.rb
narou-3.4.3 lib/mixin/locker.rb
narou-3.4.2 lib/mixin/locker.rb