Sha256: 8dbd2207a02dbd5f6c14c925d7c0859de82577471be1a78a0f6d182122dfd3cf

Contents?: true

Size: 764 Bytes

Versions: 16

Compression:

Stored size: 764 Bytes

Contents

module Sufia
  module Noid
    extend ActiveSupport::Concern

    module ClassMethods
      ## This overrides the default behavior, which is to ask Fedora for a pid
      # @see ActiveFedora::Sharding.assign_pid
      def assign_pid(_)
        Sufia::IdService.mint
      end
    end

    def noid
      Noid.noidify(self.pid)
    end

    # Redefine this for more intuitive keys in Redis
    def to_param
      noid
    end

    class << self
      def noidify(identifier)
        String(identifier).split(":").last
      end

      def namespaceize(identifier)
        return identifier if identifier.include?(':')
        "#{namespace}:#{identifier}"
      end

      protected

      def namespace
        Sufia.config.id_namespace
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
sufia-5.0.0 sufia-models/app/services/sufia/noid.rb
sufia-models-5.0.0 app/services/sufia/noid.rb
sufia-5.0.0.rc1 sufia-models/app/services/sufia/noid.rb
sufia-models-5.0.0.rc1 app/services/sufia/noid.rb
sufia-4.3.1 sufia-models/app/services/sufia/noid.rb
sufia-models-4.3.1 app/services/sufia/noid.rb
sufia-4.2.0 sufia-models/app/services/sufia/noid.rb
sufia-models-4.2.0 app/services/sufia/noid.rb
sufia-4.1.0 sufia-models/app/services/sufia/noid.rb
sufia-models-4.1.0 app/services/sufia/noid.rb
sufia-4.0.1 sufia-models/app/services/sufia/noid.rb
sufia-models-4.0.1 app/services/sufia/noid.rb
sufia-models-4.0.0 app/services/sufia/noid.rb
sufia-4.0.0 sufia-models/app/services/sufia/noid.rb
sufia-4.0.0.rc2 sufia-models/app/services/sufia/noid.rb
sufia-models-4.0.0.rc2 app/services/sufia/noid.rb