Module: Hydra::RemoteIdentifier

Defined in:
lib/hydra/remote_identifier/version.rb,
lib/hydra/remote_identifier/exceptions.rb,
lib/hydra/remote_identifier/registration.rb,
lib/hydra/remote_identifier/configuration.rb,
lib/hydra/remote_identifier/remote_service.rb,
lib/hydra/remote_identifier/minting_coordinator.rb,
lib/hydra/remote_identifier/remote_services/doi.rb,
lib/hydra/remote_identifier/minter.rb,
lib/hydra/remote_identifier/mapper.rb,
lib/hydra/remote_identifier.rb

Defined Under Namespace

Modules: RemoteServices Classes: Configuration, InvalidServiceMapping, Mapper, Minter, MintingCoordinator, Registration, RemoteService

Constant Summary collapse

VERSION =
"0.2.1"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configuration {|config| ... } ⇒ Object

Used for configuring available RemoteService and any additional initialization requirements for those RemoteServices (i.e. credentials)

Examples:

Hydra::RemoteIdentifier.configure do |config|
  config.remote_service(:doi, doi_credentials) do |doi|
    doi.register(target_class) do |map|
      map.target :url
      map.creator :creator
      map.title :title
      map.publisher :publisher
      map.publicationyear :publicationyear
      map.set_identifier(:set_identifier=)
    end
  end
end

Yield Parameters:



28
29
30
# File 'lib/hydra/remote_identifier.rb', line 28

def configuration
  @configuration
end

Class Method Details

.configure {|configuration| ... } ⇒ Object

Yields:



29
30
31
32
# File 'lib/hydra/remote_identifier.rb', line 29

def configure
  self.configuration ||= Configuration.new
  yield(configuration)
end

.mint(remote_service_name, target) ⇒ Object

Using the RemoteService mint the corresponding remote identifier for the target. You must first configure the RemoteService and target’s class to define the attribute map. See Hydra::RemoteIdentifier.configure

Examples:

Hydra::RemoteIdentifier.mint(:doi, book)

Parameters:

  • remote_service_name (#to_s)
  • target (#registered_remote_identifier_minters)


44
45
46
47
48
49
50
# File 'lib/hydra/remote_identifier.rb', line 44

def mint(remote_service_name, target)
  # @TODO - there is a better way to do this but this is "complete/correct"
  remote_service = configuration.find_remote_service(remote_service_name)
  target.registered_remote_identifier_minters.each do |minter|
    minter.call(target) if minter.remote_service == remote_service
  end
end