Sha256: 5e1a0276e7e735edad9b83a70716ed71477743711e01cfbc78decd9b903aadd5

Contents?: true

Size: 1.02 KB

Versions: 29

Compression:

Stored size: 1.02 KB

Contents

# encoding: utf-8
# copyright: 2015, Dominik Richter
# license: All rights reserved
# author: Dominik Richter
# author: Christoph Hartmann

require 'train'

module Inspec
  module Backend
    # Create the transport backend with aggregated resources.
    #
    # @param [Hash] config for the transport backend
    # @return [TransportBackend] enriched transport instance
    def self.create(config)
      conf = Train.target_config(config)
      name = conf[:backend] || :local
      transport = Train.create(name, conf)
      if transport.nil?
        fail "Can't find transport backend '#{name}'."
      end

      connection = transport.connection
      if connection.nil?
        fail "Can't connect to transport backend '#{name}'."
      end

      cls = Class.new do
        define_method :backend do
          connection
        end
        Inspec::Resource.registry.each do |id, r|
          define_method id.to_sym do |*args|
            r.new(self, id.to_s, *args)
          end
        end
      end

      cls.new
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
inspec-0.16.3 lib/inspec/backend.rb
inspec-0.16.2 lib/inspec/backend.rb
inspec-0.16.1 lib/inspec/backend.rb
inspec-0.16.0 lib/inspec/backend.rb
inspec-0.15.0 lib/inspec/backend.rb
inspec-0.14.8 lib/inspec/backend.rb
inspec-0.14.7 lib/inspec/backend.rb
inspec-0.14.6 lib/inspec/backend.rb
inspec-0.14.5 lib/inspec/backend.rb
inspec-0.14.4 lib/inspec/backend.rb
inspec-0.14.3 lib/inspec/backend.rb
inspec-0.14.2 lib/inspec/backend.rb
inspec-0.14.1 lib/inspec/backend.rb
inspec-0.14.0 lib/inspec/backend.rb
inspec-0.12.0 lib/inspec/backend.rb
inspec-0.11.0 lib/inspec/backend.rb
inspec-0.10.1 lib/inspec/backend.rb
inspec-0.9.11 lib/inspec/backend.rb
inspec-0.9.10 lib/inspec/backend.rb
inspec-0.9.9 lib/inspec/backend.rb