Sha256: ad25261c938a49f374e4d6de9506a9a8cf6aa0189825f5e5d17922c2aa7495e2

Contents?: true

Size: 815 Bytes

Versions: 5

Compression:

Stored size: 815 Bytes

Contents

# Abstract base class for Vagrant provisioners
#
# @abstract
#
# @since 0.16.0
#
# @see https://www.vagrantup.com/docs/provisioning/basic_usage.html
class ConfigBuilder::Model::Provisioner::Base < ConfigBuilder::Model::Base
  def_model_option :name
  def_model_option :type
  def_model_option :run
  def_model_option :preserve_order

  def to_proc
    Proc.new do |vm_config|
      options = instance_options

      name = options.delete(:name)
      if name.nil?
        name = options.delete(:type)
      elsif Vagrant::VERSION < '1.7'
        # Vagrant 1.6 and earlier used "id" instead of "name".
        options[:id] = name
        name = options.delete(:type)
      end

      vm_config.provision(name, **options) do |config|
        configure!(config)
        eval_models(config)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
vagrant-config_builder-1.3.0 lib/config_builder/model/provisioner/base.rb
vagrant-config_builder-1.2.0 lib/config_builder/model/provisioner/base.rb
vagrant-config_builder-1.1.0 lib/config_builder/model/provisioner/base.rb
vagrant-config_builder-1.0.0 lib/config_builder/model/provisioner/base.rb
vagrant-config_builder-1.0.0.rc1 lib/config_builder/model/provisioner/base.rb