Sha256: 66f776e6da19a9bdd6a834911013b8c2d72c7b2b1e666cba1a170892ae4e1b5c

Contents?: true

Size: 696 Bytes

Versions: 3

Compression:

Stored size: 696 Bytes

Contents

require 'noid'

module ActiveFedora
  module Noid
    module Minter
      class Base < ::Noid::Minter
        def initialize(template = default_template)
          super(:template => template.to_s)
        end

        def mint
          Mutex.new.synchronize do
            while true
              pid = next_id
              return pid unless ActiveFedora::Base.exists?(pid) || ActiveFedora::Base.gone?(pid)
            end
          end
        end

        protected

        def default_template
          ActiveFedora::Noid.config.template
        end

        def next_id
          raise NotImplementedError.new('Implement next_id in child class')
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
active_fedora-noid-2.0.0.beta3 lib/active_fedora/noid/minter/base.rb
active_fedora-noid-2.0.0.beta2 lib/active_fedora/noid/minter/base.rb
active_fedora-noid-2.0.0.beta1 lib/active_fedora/noid/minter/base.rb