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
- API_VERSION =
EZID API version
"2"
Instance Attribute Summary collapse
- #host ⇒ Object readonly
- #password ⇒ Object readonly
- #port ⇒ Object readonly
- #timeout ⇒ Object readonly
- #use_ssl ⇒ 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.
Constructor Details
#initialize(opts = {}) ⇒ Client
Returns a new instance of Client.
47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/ezid/client.rb', line 47 def initialize(opts = {}) @host = opts[:host] || config.host @port = (opts[:port] || config.port).to_i @use_ssl = opts[:use_ssl] || config.use_ssl @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)
45 46 47 |
# File 'lib/ezid/client.rb', line 45 def host @host end |
#password ⇒ Object (readonly)
45 46 47 |
# File 'lib/ezid/client.rb', line 45 def password @password end |
#port ⇒ Object (readonly)
45 46 47 |
# File 'lib/ezid/client.rb', line 45 def port @port end |
#timeout ⇒ Object (readonly)
45 46 47 |
# File 'lib/ezid/client.rb', line 45 def timeout @timeout end |
#use_ssl ⇒ Object (readonly)
45 46 47 |
# File 'lib/ezid/client.rb', line 45 def use_ssl @use_ssl end |
#user ⇒ Object (readonly)
45 46 47 |
# File 'lib/ezid/client.rb', line 45 def user @user end |
Class Method Details
.config ⇒ Object
Configuration reader
28 29 30 |
# File 'lib/ezid/client.rb', line 28 def config @config ||= Configuration.new end |
.configure {|the| ... } ⇒ Object
Yields the configuration to a block
34 35 36 |
# File 'lib/ezid/client.rb', line 34 def configure yield config end |
.version ⇒ String
Verbose version string
40 41 42 |
# File 'lib/ezid/client.rb', line 40 def version "ezid-client #{VERSION} (EZID API Version #{API_VERSION})" end |
Instance Method Details
#batch_download(params = {}) ⇒ Object
Submit a batch download request
177 178 179 |
# File 'lib/ezid/client.rb', line 177 def batch_download(params={}) execute BatchDownloadRequest, params end |
#config ⇒ Ezid::Configuration
The client configuration
68 69 70 |
# File 'lib/ezid/client.rb', line 68 def config self.class.config end |
#connection ⇒ Net::HTTP
The Net::HTTP object used to connect to EZID
183 184 185 |
# File 'lib/ezid/client.rb', line 183 def connection @connection ||= build_connection end |
#create_identifier(identifier, metadata = nil) ⇒ Ezid::Response
Create an identifier (PUT an existing identifier)
120 121 122 |
# File 'lib/ezid/client.rb', line 120 def create_identifier(identifier, =nil) execute CreateIdentifierRequest, identifier, end |
#delete_identifier(identifier) ⇒ Ezid::Response
Delete an identifier (only reserved identifier can be deleted)
160 161 162 |
# File 'lib/ezid/client.rb', line 160 def delete_identifier(identifier) execute DeleteIdentifierRequest, identifier end |
#get_identifier_metadata(identifier) ⇒ Ezid::Response
Get the metadata for an identifier
151 152 153 |
# File 'lib/ezid/client.rb', line 151 def (identifier) execute GetIdentifierMetadataRequest, identifier end |
#inspect ⇒ Object
61 62 63 64 |
# File 'lib/ezid/client.rb', line 61 def inspect "#<#{self.class.name} connection=#{connection.inspect} " \ "user=\"#{user}\" session=#{logged_in? ? 'OPEN' : 'CLOSED'}>" end |
#logged_in? ⇒ true, false
Returns whether the client is logged in.
110 111 112 |
# File 'lib/ezid/client.rb', line 110 def logged_in? session.open? end |
#logger ⇒ Logger
The client logger
74 75 76 |
# File 'lib/ezid/client.rb', line 74 def logger @logger ||= config.logger end |
#login ⇒ Ezid::Client
Open a session
87 88 89 90 91 92 93 94 95 |
# File 'lib/ezid/client.rb', line 87 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
99 100 101 102 103 104 105 106 107 |
# File 'lib/ezid/client.rb', line 99 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
130 131 132 133 134 |
# File 'lib/ezid/client.rb', line 130 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
142 143 144 |
# File 'lib/ezid/client.rb', line 142 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)
169 170 171 |
# File 'lib/ezid/client.rb', line 169 def server_status(*subsystems) execute ServerStatusRequest, *subsystems end |
#session ⇒ Ezid::Session
The client session
80 81 82 |
# File 'lib/ezid/client.rb', line 80 def session @session ||= Session.new end |