Instead of programmatically define options for authentication handlers, define an easy DSL.
name 'redfish'
desc 'Authentication and Session handling for the Redfish 1.0 API'
option :username, required
option :password, required
login_method :post
login_path 'SessionService/Sessions/'
login_headers { ... }
login_payload { |auth_options| ... }
logout_method :delete
logout_path ...
This could result in easy handlers just using the DSL and only more complex ones using the defined interface instead.
Instead of programmatically define options for authentication handlers, define an easy DSL.
This could result in easy handlers just using the DSL and only more complex ones using the defined interface instead.