Skip to content

Working with multiple adapters

Johann edited this page Dec 2, 2018 · 2 revisions

Without extra dependencies

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

# Use default key/value adapter
knowledge.use(name: :default)

# Use default env adapter
knowledge.use(name: :environment)

# Set variables for each adapter
knowledge.variables = {
  default: { foo: :bar },
  environment: { application_token: 'RUBY_APPLICATION_TOKEN' }
}

knowledge.gather!

Knowledge::Configuration.foo # => "bar"
Knowledge::Configuration.application_token # => Value present in ENV['RUBY_APPLICATION_TOKEN']

Using Knowledge SSM adapter

Add the gem knowledge-ssm in your Gemfile. Then:

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

# Use default key/value adapter
knowledge.use(name: :default)

# Use default env adapter
knowledge.use(name: :environment)

# Use default ssm adapter
knowledge.use(name: :ssm)

# Set variables for each adapter
knowledge.variables = {
  default: { foo: :bar },
  environment: { application_token: 'RUBY_APPLICATION_TOKEN' },
  ssm: { super_secret: 'path/to/super/secret' }
}

knowledge.gather!

Knowledge::Configuration.foo # => "bar"
Knowledge::Configuration.application_token # => Value present in ENV['RUBY_APPLICATION_TOKEN']
Knowledge::Configuration.super_secret # => Value present in path/to/super/secret in your SSM Parameter store

Clone this wiki locally