X-Git-Url: https://pwan.org/git/?p=vagrant-dotfiles.git;a=blobdiff_plain;f=lib%2Fcopy_my_conf%2Fconfig.rb;h=a1e51e6b5cf3a7636de4601691b29ec647c32dde;hp=23f150e999dba0b9ef74edf11bdf36d7a7833f0d;hb=7adf63265cfc7d78bf36412e0ac0f480dd689678;hpb=2254852606b5104c60f643724a827701ae0c9c81 diff --git a/lib/copy_my_conf/config.rb b/lib/copy_my_conf/config.rb index 23f150e..a1e51e6 100644 --- a/lib/copy_my_conf/config.rb +++ b/lib/copy_my_conf/config.rb @@ -1,34 +1,25 @@ -module Vagrant - module Provisioners - class CopyMyConf < Base - class Config < Vagrant::Config::Base - def self.all_attributes - [:ssh, :vim, :git] - end - attr_accessor :user_home +require_relative "git" +require_relative "ssh" +require_relative "vim" - all_attributes.each do |attr| - define_method(attr) do - instance_variable_get_or_set(attr, CopyMyConf.const_get("#{attr.capitalize}").new) - end - end +module CopyMyConf + class Config < Vagrant.plugin("2", :config) + attr_accessor :user_home - def all_enabled_attributes - all_attributes.collect do |attr| - instance_variable_get "@#{attr}" - end.compact - [@ssh, @vim, @git].compact - end + def git + @git ||= CopyMyConf::Git.new + end + + def vim + @vim ||= CopyMyConf::Vim.new + end - private - def all_attributes - self.class.all_attributes - end + def ssh + @ssh ||=CopyMyConf::Ssh.new + end - def instance_variable_get_or_set(attr, value) - instance_variable_get("@#{attr}") || instance_variable_set("@#{attr}", value) - end - end + def all_enabled_attributes + [@ssh, @vim, @git].compact end end end