diff --git a/lib/vagrant/config/v2/dummy_config.rb b/lib/vagrant/config/v2/dummy_config.rb index cc53a1998..05fd4d064 100644 --- a/lib/vagrant/config/v2/dummy_config.rb +++ b/lib/vagrant/config/v2/dummy_config.rb @@ -5,7 +5,17 @@ module Vagrant # to it. Anything, and it just appears to keep working. class DummyConfig def method_missing(name, *args, &block) - DummyConfig.new + # Trying to define a variable + if name.to_s.match(/[\w]*=/) + var_name = "@#{name.to_s.split("=")[0]}" + self.instance_variable_set(var_name, args[0]) + else + DummyConfig.new + end + end + + def merge(c) + c end def set_options(options) diff --git a/parse_vagrantfile.rb b/parse_vagrantfile.rb index ad553092c..4efcb65bb 100644 --- a/parse_vagrantfile.rb +++ b/parse_vagrantfile.rb @@ -25,6 +25,7 @@ def stringify_symbols(m) end if v.is_a?(Array) v.map!{|sk| sk.is_a?(Symbol) ? sk.to_s : sk} + stringify_symbols(v) next end k = k.to_s if k.is_a?(Symbol) @@ -172,8 +173,6 @@ def parse_vagrantfile(path) extract_synced_folders(config_vm_proto.synced_folders, vm_config.synced_folders) extract_provider(config_vm_proto.providers, vm_config) - # require "pry-byebug"; binding.pry - machine_configs << Hashicorp::Vagrant::VagrantfileComponents::MachineConfig.new( name: mach.to_s, config_vm: config_vm_proto,