Sha256: dcb17ee9e3c79fa2d058858feaa9163ae4e7ba209ff21ad73266572ce2a6013b

Contents?: true

Size: 848 Bytes

Versions: 2

Compression:

Stored size: 848 Bytes

Contents

require "vagrant"
require "ostruct"

module VagrantPlugins
  module Registration
    class Config < Vagrant.plugin("2", :config)
      def initialize(region_specific=false)
        @conf = OpenStruct.new
        @logger = Log4r::Logger.new("vagrant_registration::config")
      end

      def finalize!
        @conf.skip = false unless @conf.skip
        @logger.info "Final registration configuration: #{@conf.inspect}"
      end

      def method_missing(method_sym, *arguments, &block)
        command = "@conf.#{method_sym} #{adjust_arguments(arguments)}"
        @logger.info "Evaluating registration configuration: #{command}"
        eval command
      end

      private

        def adjust_arguments(args)
          return '' if args.size < 1
          args.map{|a| a.is_a?(String) ? "'#{a}'" : a}.join(',')
        end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
vagrant-registration-0.0.13 lib/vagrant-registration/config.rb
vagrant-registration-0.0.12 lib/vagrant-registration/config.rb