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.3.0"
Class Attribute Summary collapse
-
.configuration {|config| ... } ⇒ Object
Used for configuring available RemoteService and any additional initialization requirements for those RemoteServices (i.e. credentials).
Class Method Summary collapse
- .configure {|configuration| ... } ⇒ Object
-
.mint(remote_service_name, target) ⇒ Object
Using the RemoteService mint the corresponding remote identifier for the target.
- .mint_if_applicable(remote_service_name, target) ⇒ Object
- .with_registered_remote_service(remote_service_name, target) ⇒ Object
Class Attribute Details
.configuration {|config| ... } ⇒ Object
Used for configuring available RemoteService and any additional initialization requirements for those RemoteServices (i.e. credentials)
28 29 30 |
# File 'lib/hydra/remote_identifier.rb', line 28 def configuration @configuration end |
Class Method Details
.configure {|configuration| ... } ⇒ Object
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
67 68 69 70 71 72 73 |
# File 'lib/hydra/remote_identifier.rb', line 67 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 |
.mint_if_applicable(remote_service_name, target) ⇒ Object
48 49 50 51 52 53 54 55 |
# File 'lib/hydra/remote_identifier.rb', line 48 def mint_if_applicable(remote_service_name, target) remote_service = configuration.find_remote_service(remote_service_name) if target.public_send(remote_service.accessor_name).to_i != 0 target.registered_remote_identifier_minters.each do |minter| minter.call(target) if minter.remote_service == remote_service end end end |
.with_registered_remote_service(remote_service_name, target) ⇒ Object
38 39 40 41 42 43 44 45 46 |
# File 'lib/hydra/remote_identifier.rb', line 38 def with_registered_remote_service(remote_service_name, target) # @TODO - the registered remote identifier is more than a bit off; # but it continues to work target.registered_remote_identifier_minters.each {|minter| if minter.remote_service.name.to_s == remote_service_name.to_s yield(minter.remote_service) end } end |