Skip to content

Using a custom adapter

Johann edited this page Dec 8, 2018 · 6 revisions

Creating your adapter

To have more details on how to create your adapter, have a look at Creating your adapter wiki page

Registering your adapter

Basic version

# Get your learner instance
knowledge = Knowledge::Learner.new

# Register your adapter
knowledge.register_adapter(name: :custom, klass: MyCustomAdapter)

With variables

# Get your learner instance
knowledge = Knowledge::Learner.new

# Get your variables
variables = { super_secret_key: 's3cret' }

# Register your adapter
knowledge.register_adapter(name: :custom, klass: MyCustomAdapter, variables: variables)

Enable

# Get your learner instance
knowledge = Knowledge::Learner.new

# Register and enable your adapter
knowledge.register_adapter(name: :custom, klass: MyCustomAdapter, enable: true)

Unregistering your adapter

Note that if your adapter had been enabled, it will be disabled by unregister method.

knowledge = Knowledge::Learner.new
knowledge.register_adapter(name: :custom, klass: MyCustomAdapter)

# Somewhere else in the code, unregister your adapter
knowledge.unregister_adapter(name: :custom)

Enabling your adapter

To enable an adapter you must have registered it before. If you try to enable an unregistered adapter, you may have a Knowledge::AdapterNotFound error.

Basic version

knowledge = Knowledge::Learner.new
knowledge.register_adapter(name: :custom, klass: MyCustomAdapter)

# Somewhere else in the code, enable your adapter
knowledge.enable_adapter(name: :custom)

With variables

knowledge = Knowledge::Learner.new
knowledge.register_adapter(name: :custom, klass: MyCustomAdapter)

# Get your variables
variables = { super_secret_key: 's3cret' }

# Somewhere else in the code, enable your adapter
knowledge.enable_adapter(name: :custom, variables: variables)

Disabling your adapter

knowledge = Knowledge::Learner.new
knowledge.register_adapter(name: :custom, klass: MyCustomAdapter, enable: true)

# Somewhere else in the code, disable your adapter
knowledge.disable_adapter(name: :custom)

Passing custom parameters to your adapter

Many params

# Get your learner instance
knowledge = Knowledge::Learner.new
variables = { super_secret_key: 's3cret' }
knowledge.register_adapter(name: :custom, klass: MyCustomAdapter, variables: variables, enable: true)

# And add as many additional params as you need.
knowledge.add_adapter_params(adapter: :custom, params: { base_path: '/api/v1/' })

Single params

# Get your learner instance
knowledge = Knowledge::Learner.new
variables = { super_secret_key: 's3cret' }
knowledge.register_adapter(name: :custom, klass: MyCustomAdapter, variables: variables, enable: true)

# And add as many additional params as you need.
knowledge.add_adapter_param(adapter: :custom, name: :base_path, value: '/api/v1/')
Clone this wiki locally