Class: ResourceSpace::Configuration
- Inherits:
-
Object
- Object
- ResourceSpace::Configuration
- Defined in:
- lib/resourcespace/configuration.rb
Overview
Configuration class for ResourceSpace client
Instance Attribute Summary collapse
-
#auth_mode ⇒ String
Authentication mode ('userkey', 'sessionkey', or 'native').
-
#debug ⇒ Boolean
Whether to log API requests and responses (default: false).
-
#default_headers ⇒ Hash
Default headers to include with all requests.
-
#logger ⇒ Logger
Logger instance for debugging.
-
#private_key ⇒ String
The private API key for the user.
-
#retries ⇒ Integer
Number of retry attempts for failed requests (default: 3).
-
#timeout ⇒ Integer
Request timeout in seconds (default: 30).
-
#url ⇒ String
The ResourceSpace API URL (must end with /api/).
-
#user ⇒ String
The ResourceSpace username.
-
#user_agent ⇒ String
User agent string for requests.
-
#verify_ssl ⇒ Boolean
Whether to verify SSL certificates (default: true).
Instance Method Summary collapse
-
#dup ⇒ Configuration
Create a duplicate of this configuration.
-
#initialize ⇒ Configuration
constructor
Initialize a new configuration with default values.
-
#to_h ⇒ Hash
Convert configuration to a hash.
-
#valid? ⇒ Boolean
Check if configuration is valid without raising an error.
-
#validate! ⇒ Boolean
Validate the configuration.
Constructor Details
#initialize ⇒ Configuration
Initialize a new configuration with default values
46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/resourcespace/configuration.rb', line 46 def initialize @url = nil @user = nil @private_key = nil @timeout = 30 @retries = 3 @user_agent = "ResourceSpace Ruby Client #{ResourceSpace::VERSION}" @verify_ssl = true @auth_mode = "userkey" @default_headers = {} @debug = false @logger = nil end |
Instance Attribute Details
#auth_mode ⇒ String
Returns authentication mode ('userkey', 'sessionkey', or 'native').
34 35 36 |
# File 'lib/resourcespace/configuration.rb', line 34 def auth_mode @auth_mode end |
#debug ⇒ Boolean
Returns whether to log API requests and responses (default: false).
40 41 42 |
# File 'lib/resourcespace/configuration.rb', line 40 def debug @debug end |
#default_headers ⇒ Hash
Returns default headers to include with all requests.
37 38 39 |
# File 'lib/resourcespace/configuration.rb', line 37 def default_headers @default_headers end |
#logger ⇒ Logger
Returns logger instance for debugging.
43 44 45 |
# File 'lib/resourcespace/configuration.rb', line 43 def logger @logger end |
#private_key ⇒ String
Returns the private API key for the user.
19 20 21 |
# File 'lib/resourcespace/configuration.rb', line 19 def private_key @private_key end |
#retries ⇒ Integer
Returns number of retry attempts for failed requests (default: 3).
25 26 27 |
# File 'lib/resourcespace/configuration.rb', line 25 def retries @retries end |
#timeout ⇒ Integer
Returns request timeout in seconds (default: 30).
22 23 24 |
# File 'lib/resourcespace/configuration.rb', line 22 def timeout @timeout end |
#url ⇒ String
Returns the ResourceSpace API URL (must end with /api/).
13 14 15 |
# File 'lib/resourcespace/configuration.rb', line 13 def url @url end |
#user ⇒ String
Returns the ResourceSpace username.
16 17 18 |
# File 'lib/resourcespace/configuration.rb', line 16 def user @user end |
#user_agent ⇒ String
Returns user agent string for requests.
28 29 30 |
# File 'lib/resourcespace/configuration.rb', line 28 def user_agent @user_agent end |
#verify_ssl ⇒ Boolean
Returns whether to verify SSL certificates (default: true).
31 32 33 |
# File 'lib/resourcespace/configuration.rb', line 31 def verify_ssl @verify_ssl end |
Instance Method Details
#dup ⇒ Configuration
Create a duplicate of this configuration
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/resourcespace/configuration.rb', line 111 def dup new_config = Configuration.new new_config.url = url new_config.user = user new_config.private_key = private_key new_config.timeout = timeout new_config.retries = retries new_config.user_agent = user_agent new_config.verify_ssl = verify_ssl new_config.auth_mode = auth_mode new_config.default_headers = default_headers.dup new_config.debug = debug new_config.logger = logger new_config end |
#to_h ⇒ Hash
Convert configuration to a hash
93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/resourcespace/configuration.rb', line 93 def to_h { url: url, user: user, private_key: private_key ? "[REDACTED]" : nil, timeout: timeout, retries: retries, user_agent: user_agent, verify_ssl: verify_ssl, auth_mode: auth_mode, default_headers: default_headers, debug: debug } end |
#valid? ⇒ Boolean
Check if configuration is valid without raising an error
83 84 85 86 87 88 |
# File 'lib/resourcespace/configuration.rb', line 83 def valid? validate! true rescue ConfigurationError false end |
#validate! ⇒ Boolean
Validate the configuration
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/resourcespace/configuration.rb', line 64 def validate! errors = [] errors << "URL is required" if url.nil? || url.empty? errors << "URL must end with /api/" if url && !url.end_with?("/api/") errors << "User is required" if user.nil? || user.empty? errors << "Private key is required" if private_key.nil? || private_key.empty? errors << "Timeout must be positive" if timeout && timeout <= 0 errors << "Retries must be non-negative" if retries && retries < 0 errors << "Auth mode must be userkey, sessionkey, or native" unless %w[userkey sessionkey native].include?(auth_mode) raise ConfigurationError, "Configuration errors: #{errors.join(', ')}" unless errors.empty? true end |