Я создаю библиотеку в Ruby, которая позволяет пользователю получать доступ к внешнему API.К этому API можно получить доступ через SOAP или REST API.Я хотел бы поддержать оба.
Я начал с определения необходимых объектов в разных модулях.Например:
soap_connecton = Library::Soap::Connection.new(username, password)
response = soap_connection.create Library::Soap::LibraryObject.new(type, data, etc)
puts response.class # Library::Soap::Response
rest_connecton = Library::Rest::Connection.new(username, password)
response = rest_connection.create Library::Rest::LibraryObject.new(type, data, etc)
puts response.class # Library::Rest::Response
Я хотел бы разрешить пользователю указывать, что он хочет использовать только один из API, возможно, что-то вроде этого:
Library::Modes.set_mode(Library::Modes::Rest)
rest_connection = Library::Connection.new(username, password)
response = rest_connection.create Library::LibraryObject.new(type, data, etc)
puts response.class # Library::Response
ОднакоЯ еще не нашел способ динамической установки, например, Library::Connection
на основе ввода в Library::Modes.set_mode
.Как лучше всего реализовать эту функцию?