Sha256: 6f2354e28a3cc55209fecdb41e2ec0cbe29c6c48b39f2a6e3664618977fea40d

Contents?: true

Size: 961 Bytes

Versions: 1

Compression:

Stored size: 961 Bytes

Contents

module ActiveFedora
  module Noid
    class Config
      attr_writer :template, :translate_uri_to_id, :translate_id_to_uri,
                  :statefile, :namespace, :minter_class

      def template
        @template ||= '.reeddeeddk'
      end

      def statefile
        @statefile ||= '/tmp/minter-state'
      end

      def namespace
        @namespace ||= 'default'
      end

      def minter_class
        @minter_class ||= Minter::Db
      end

      def translate_uri_to_id
        lambda do |uri|
          uri.to_s.sub(baseurl, '').split('/', baseparts).last
        end
      end

      def translate_id_to_uri
        lambda do |id|
          "#{baseurl}/#{ActiveFedora::Noid.treeify(id)}"
        end
      end

      private

      def baseurl
        "#{ActiveFedora.fedora.host}#{ActiveFedora.fedora.base_path}"
      end

      def baseparts
        2 + [(template.gsub(/\.[rsz]/,'').length.to_f/2).ceil, 4].min
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
active_fedora-noid-2.0.0.beta4 lib/active_fedora/noid/config.rb