Class: VagrantLXD::Driver::ProjectMiddleware

Inherits:
Faraday::Middleware
  • Object
show all
Defined in:
lib/vagrant-lxd/driver.rb

Overview

Custom middleware that adds a ‘project` query parameter to all outgoing requests, in order to select the active LXD project.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.create(project) ⇒ Object



116
117
118
119
120
# File 'lib/vagrant-lxd/driver.rb', line 116

def ProjectMiddleware.create(project)
  Class.new(self) do
    define_method(:project) { project }
  end
end

Instance Method Details

#call(env) ⇒ Object



109
110
111
112
113
114
# File 'lib/vagrant-lxd/driver.rb', line 109

def call(env)
  url = URI(env.url.to_s)
  url.query = "#{url.query}&project=#{project}"
  url.query.delete_prefix!('&')
  @app.call(env.merge(url: url))
end