Class: Ezid::Client
- Inherits:
-
Object
- Object
- Ezid::Client
- Defined in:
- lib/ezid/client.rb
Overview
EZID client
Constant Summary collapse
- VERSION =
ezid-client gem version (e.g., “0.8.0”)
File.read(File.("../../../VERSION", __FILE__)).chomp.freeze
- API_VERSION =
EZID API version
"2".freeze
Instance Attribute Summary collapse
- #host ⇒ Object readonly
- #password ⇒ Object readonly
- #port ⇒ Object readonly
- #timeout ⇒ Object readonly
- #user ⇒ Object readonly
Class Method Summary collapse
-
.config ⇒ Object
Configuration reader.
-
.configure {|the| ... } ⇒ Object
Yields the configuration to a block.
-
.version ⇒ String
Verbose version string.
Instance Method Summary collapse
-
#batch_download(params = {}) ⇒ Object
Submit a batch download request.
-
#config ⇒ Ezid::Configuration
The client configuration.
-
#connection ⇒ Net::HTTP
The Net::HTTP object used to connect to EZID.
-
#create_identifier(identifier, metadata = nil) ⇒ Ezid::Response
Create an identifier (PUT an existing identifier).
-
#delete_identifier(identifier) ⇒ Ezid::Response
Delete an identifier (only reserved identifier can be deleted).
-
#get_identifier_metadata(identifier) ⇒ Ezid::Response
Get the metadata for an identifier.
-
#initialize(opts = {}) ⇒ Client
constructor
A new instance of Client.
- #inspect ⇒ Object
-
#logged_in? ⇒ true, false
Whether the client is logged in.
-
#logger ⇒ Logger
The client logger.
-
#login ⇒ Ezid::Client
Open a session.
-
#logout ⇒ Ezid::Client
Close the session.
-
#mint_identifier(shoulder = nil, metadata = nil) ⇒ Ezid::Response
Mint an identifier.
-
#modify_identifier(identifier, metadata) ⇒ Ezid::Response
Modify an identifier.
-
#server_status(*subsystems) ⇒ Ezid::StatusResponse
Get the EZID server status (and the status of one or more subsystems).
-
#session ⇒ Ezid::Session
The client session.
- #use_ssl ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ Client
Returns a new instance of Client.
49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/ezid/client.rb', line 49 def initialize(opts = {}) @host = opts[:host] || config.host @port = (opts[:port] || config.port).to_i @timeout = (opts[:timeout] || config.timeout).to_i @user = opts[:user] || config.user @password = opts[:password] || config.password if block_given? login yield self logout end end |
Instance Attribute Details
#host ⇒ Object (readonly)
47 48 49 |
# File 'lib/ezid/client.rb', line 47 def host @host end |
#password ⇒ Object (readonly)
47 48 49 |
# File 'lib/ezid/client.rb', line 47 def password @password end |
#port ⇒ Object (readonly)
47 48 49 |
# File 'lib/ezid/client.rb', line 47 def port @port end |
#timeout ⇒ Object (readonly)
47 48 49 |
# File 'lib/ezid/client.rb', line 47 def timeout @timeout end |
#user ⇒ Object (readonly)
47 48 49 |
# File 'lib/ezid/client.rb', line 47 def user @user end |
Class Method Details
.config ⇒ Object
Configuration reader
30 31 32 |
# File 'lib/ezid/client.rb', line 30 def config @config ||= Configuration.new end |
.configure {|the| ... } ⇒ Object
Yields the configuration to a block
36 37 38 |
# File 'lib/ezid/client.rb', line 36 def configure yield config end |
.version ⇒ String
Verbose version string
42 43 44 |
# File 'lib/ezid/client.rb', line 42 def version "ezid-client #{VERSION} (EZID API Version #{API_VERSION})" end |
Instance Method Details
#batch_download(params = {}) ⇒ Object
Submit a batch download request
184 185 186 |
# File 'lib/ezid/client.rb', line 184 def batch_download(params={}) execute BatchDownloadRequest, params end |
#config ⇒ Ezid::Configuration
The client configuration
75 76 77 |
# File 'lib/ezid/client.rb', line 75 def config self.class.config end |
#connection ⇒ Net::HTTP
The Net::HTTP object used to connect to EZID
190 191 192 |
# File 'lib/ezid/client.rb', line 190 def connection @connection ||= build_connection end |
#create_identifier(identifier, metadata = nil) ⇒ Ezid::Response
Create an identifier (PUT an existing identifier)
127 128 129 |
# File 'lib/ezid/client.rb', line 127 def create_identifier(identifier, =nil) execute CreateIdentifierRequest, identifier, end |
#delete_identifier(identifier) ⇒ Ezid::Response
Delete an identifier (only reserved identifier can be deleted)
167 168 169 |
# File 'lib/ezid/client.rb', line 167 def delete_identifier(identifier) execute DeleteIdentifierRequest, identifier end |
#get_identifier_metadata(identifier) ⇒ Ezid::Response
Get the metadata for an identifier
158 159 160 |
# File 'lib/ezid/client.rb', line 158 def (identifier) execute GetIdentifierMetadataRequest, identifier end |
#inspect ⇒ Object
68 69 70 71 |
# File 'lib/ezid/client.rb', line 68 def inspect "#<#{self.class.name} connection=#{connection.inspect}, " \ "user=#{user.inspect}, session=#{logged_in? ? 'OPEN' : 'CLOSED'}>" end |
#logged_in? ⇒ true, false
Returns whether the client is logged in.
117 118 119 |
# File 'lib/ezid/client.rb', line 117 def logged_in? session.open? end |
#logger ⇒ Logger
The client logger
81 82 83 |
# File 'lib/ezid/client.rb', line 81 def logger @logger ||= config.logger end |
#login ⇒ Ezid::Client
Open a session
94 95 96 97 98 99 100 101 102 |
# File 'lib/ezid/client.rb', line 94 def login if logged_in? logger.info("Already logged in, skipping login request.") else response = execute LoginRequest session.open(response.) end self end |
#logout ⇒ Ezid::Client
Close the session
106 107 108 109 110 111 112 113 114 |
# File 'lib/ezid/client.rb', line 106 def logout if logged_in? execute LogoutRequest session.close else logger.info("Not logged in, skipping logout request.") end self end |
#mint_identifier(shoulder = nil, metadata = nil) ⇒ Ezid::Response
Mint an identifier
137 138 139 140 141 |
# File 'lib/ezid/client.rb', line 137 def mint_identifier(shoulder=nil, =nil) shoulder ||= config.default_shoulder raise Error, "Shoulder missing -- cannot mint identifier." unless shoulder execute MintIdentifierRequest, shoulder, end |
#modify_identifier(identifier, metadata) ⇒ Ezid::Response
Modify an identifier
149 150 151 |
# File 'lib/ezid/client.rb', line 149 def modify_identifier(identifier, ) execute ModifyIdentifierRequest, identifier, end |
#server_status(*subsystems) ⇒ Ezid::StatusResponse
Get the EZID server status (and the status of one or more subsystems)
176 177 178 |
# File 'lib/ezid/client.rb', line 176 def server_status(*subsystems) execute ServerStatusRequest, *subsystems end |
#session ⇒ Ezid::Session
The client session
87 88 89 |
# File 'lib/ezid/client.rb', line 87 def session @session ||= Session.new end |
#use_ssl ⇒ Object
62 63 64 65 66 |
# File 'lib/ezid/client.rb', line 62 def use_ssl warn "[DEPRECATION] `use_ssl` is deprecated and will be removed in ezid-client v2.0." \ " EZID requires SSL as of April 30, 2017." true end |