nugrant 0.0.12 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.md +9 -0
 - data/lib/nugrant/parameter_bag.rb +15 -30
 - data/lib/nugrant/parameters.rb +22 -35
 - data/lib/nugrant/vagrant/command/parameters.rb +45 -35
 - data/lib/nugrant/vagrant/config/user.rb +2 -0
 - data/lib/nugrant/version.rb +1 -1
 - data/nugrant.gemspec +2 -2
 - data/test/lib/nugrant/test_parameters.rb +2 -7
 - data/test/lib/nugrant/test_parameters_bag.rb +0 -80
 - metadata +6 -6
 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,3 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # 0.0.13
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            * Cleanup `Parameters` and `ParameterBag` interface
         
     | 
| 
      
 4 
     | 
    
         
            +
             * The method `defaults` has been removed from the bag
         
     | 
| 
      
 5 
     | 
    
         
            +
             * Setting defaults on `Parameters` now recompute the final bag
         
     | 
| 
      
 6 
     | 
    
         
            +
            * Improved `vagrant user parameters` command
         
     | 
| 
      
 7 
     | 
    
         
            +
             * Now using the exact config as seen by Vagrant, this includes defaults parameters
         
     | 
| 
      
 8 
     | 
    
         
            +
             * An option has been added to only see defaults parameters
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
       1 
10 
     | 
    
         
             
            # 0.0.12
         
     | 
| 
       2 
11 
     | 
    
         | 
| 
       3 
12 
     | 
    
         
             
            * Added travis configuration file
         
     | 
| 
         @@ -1,26 +1,29 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module Nugrant
         
     | 
| 
       2 
2 
     | 
    
         
             
              class ParameterBag
         
     | 
| 
       3 
3 
     | 
    
         
             
                def initialize(parameters)
         
     | 
| 
       4 
     | 
    
         
            -
                   
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
                  end
         
     | 
| 
      
 4 
     | 
    
         
            +
                  @bag = recompute(parameters)
         
     | 
| 
      
 5 
     | 
    
         
            +
                end
         
     | 
| 
       7 
6 
     | 
    
         | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
                  @ 
     | 
| 
      
 7 
     | 
    
         
            +
                def recompute(parameters)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  @bag = transform(parameters)
         
     | 
| 
      
 9 
     | 
    
         
            +
                  return @bag
         
     | 
| 
      
 10 
     | 
    
         
            +
                end
         
     | 
| 
       10 
11 
     | 
    
         | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
                    end
         
     | 
| 
      
 12 
     | 
    
         
            +
                def transform(parameters)
         
     | 
| 
      
 13 
     | 
    
         
            +
                  bag = {}
         
     | 
| 
      
 14 
     | 
    
         
            +
                  return bag if parameters == nil
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
      
 16 
     | 
    
         
            +
                  parameters.each do |key, value|
         
     | 
| 
       16 
17 
     | 
    
         
             
                    if not value.is_a?(Hash)
         
     | 
| 
       17 
     | 
    
         
            -
                       
     | 
| 
      
 18 
     | 
    
         
            +
                      bag[key] = value
         
     | 
| 
       18 
19 
     | 
    
         
             
                      next
         
     | 
| 
       19 
20 
     | 
    
         
             
                    end
         
     | 
| 
       20 
21 
     | 
    
         | 
| 
       21 
22 
     | 
    
         
             
                    # It is a hash, transform it into a bag
         
     | 
| 
       22 
     | 
    
         
            -
                     
     | 
| 
      
 23 
     | 
    
         
            +
                    bag[key] = Nugrant::ParameterBag.new(value)
         
     | 
| 
       23 
24 
     | 
    
         
             
                  end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                  return bag
         
     | 
| 
       24 
27 
     | 
    
         
             
                end
         
     | 
| 
       25 
28 
     | 
    
         | 
| 
       26 
29 
     | 
    
         
             
                def [](param_name)
         
     | 
| 
         @@ -32,15 +35,11 @@ module Nugrant 
     | 
|
| 
       32 
35 
     | 
    
         
             
                end
         
     | 
| 
       33 
36 
     | 
    
         | 
| 
       34 
37 
     | 
    
         
             
                def has_param?(param_name)
         
     | 
| 
       35 
     | 
    
         
            -
                  return @bag 
     | 
| 
      
 38 
     | 
    
         
            +
                  return @bag.has_key?(param_name)
         
     | 
| 
       36 
39 
     | 
    
         
             
                end
         
     | 
| 
       37 
40 
     | 
    
         | 
| 
       38 
41 
     | 
    
         
             
                def get_param(param_name)
         
     | 
| 
       39 
42 
     | 
    
         
             
                  if not has_param?(param_name)
         
     | 
| 
       40 
     | 
    
         
            -
                    if @defaults[param_name]
         
     | 
| 
       41 
     | 
    
         
            -
                      return @defaults[param_name]
         
     | 
| 
       42 
     | 
    
         
            -
                    end
         
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
43 
     | 
    
         
             
                    raise KeyError, "Undefined parameter '#{param_name}'"
         
     | 
| 
       45 
44 
     | 
    
         
             
                  end
         
     | 
| 
       46 
45 
     | 
    
         | 
| 
         @@ -50,19 +49,5 @@ module Nugrant 
     | 
|
| 
       50 
49 
     | 
    
         
             
                def get_params()
         
     | 
| 
       51 
50 
     | 
    
         
             
                  return @bag
         
     | 
| 
       52 
51 
     | 
    
         
             
                end
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
                def defaults(parameters)
         
     | 
| 
       55 
     | 
    
         
            -
                  parameters.each do |key, value|
         
     | 
| 
       56 
     | 
    
         
            -
                    if value.is_a?(Hash) and has_param?(key)
         
     | 
| 
       57 
     | 
    
         
            -
                      @bag[key].defaults(value)
         
     | 
| 
       58 
     | 
    
         
            -
                    end
         
     | 
| 
       59 
     | 
    
         
            -
                  end
         
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
     | 
    
         
            -
                  @defaults = Nugrant::ParameterBag.new(parameters)
         
     | 
| 
       62 
     | 
    
         
            -
                end
         
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
                def defaults=(parameters)
         
     | 
| 
       65 
     | 
    
         
            -
                  defaults(parameters)
         
     | 
| 
       66 
     | 
    
         
            -
                end
         
     | 
| 
       67 
52 
     | 
    
         
             
              end
         
     | 
| 
       68 
53 
     | 
    
         
             
            end
         
     | 
    
        data/lib/nugrant/parameters.rb
    CHANGED
    
    | 
         @@ -5,57 +5,44 @@ require 'yaml' 
     | 
|
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            module Nugrant
         
     | 
| 
       7 
7 
     | 
    
         
             
              class Parameters < Nugrant::ParameterBag
         
     | 
| 
      
 8 
     | 
    
         
            +
                attr_reader :defaults, :system, :user, :project, :all
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
       8 
10 
     | 
    
         
             
                def initialize(config = nil)
         
     | 
| 
       9 
11 
     | 
    
         
             
                  if config == nil
         
     | 
| 
       10 
12 
     | 
    
         
             
                    config = Nugrant::Config.new()
         
     | 
| 
       11 
13 
     | 
    
         
             
                  end
         
     | 
| 
       12 
14 
     | 
    
         | 
| 
       13 
15 
     | 
    
         
             
                  @config = config
         
     | 
| 
       14 
     | 
    
         
            -
                  @parameters = load_parameters()
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
                  super(@parameters)
         
     | 
| 
       17 
     | 
    
         
            -
                end
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
                def get_bag()
         
     | 
| 
       20 
     | 
    
         
            -
                  @bag
         
     | 
| 
       21 
     | 
    
         
            -
                end
         
     | 
| 
       22 
16 
     | 
    
         | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
                   
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
      
 17 
     | 
    
         
            +
                  @defaults = nil
         
     | 
| 
      
 18 
     | 
    
         
            +
                  @system = parse_parameters(@config.system_params_path)
         
     | 
| 
      
 19 
     | 
    
         
            +
                  @user = parse_parameters(@config.user_params_path)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  @project = parse_parameters(@config.project_params_path)
         
     | 
| 
       26 
21 
     | 
    
         | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
                  return @project_parameters
         
     | 
| 
      
 22 
     | 
    
         
            +
                  @all = compute_all()
         
     | 
| 
       29 
23 
     | 
    
         
             
                end
         
     | 
| 
       30 
24 
     | 
    
         | 
| 
       31 
     | 
    
         
            -
                def  
     | 
| 
       32 
     | 
    
         
            -
                   
     | 
| 
       33 
     | 
    
         
            -
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
                def defaults=(parameters)
         
     | 
| 
      
 26 
     | 
    
         
            +
                  @defaults = parameters
         
     | 
| 
       34 
27 
     | 
    
         | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
                   
     | 
| 
      
 28 
     | 
    
         
            +
                  # When defaults change, we need to recompute parameters hierarchy
         
     | 
| 
      
 29 
     | 
    
         
            +
                  compute_all()
         
     | 
| 
       37 
30 
     | 
    
         
             
                end
         
     | 
| 
       38 
31 
     | 
    
         | 
| 
       39 
     | 
    
         
            -
                def  
     | 
| 
       40 
     | 
    
         
            -
                  @ 
     | 
| 
       41 
     | 
    
         
            -
                  @ 
     | 
| 
       42 
     | 
    
         
            -
                  @ 
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
                   
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
                  if @project_parameters == nil and @user_parameters == nil and @system_parameters == nil
         
     | 
| 
       47 
     | 
    
         
            -
                    return parameters
         
     | 
| 
       48 
     | 
    
         
            -
                  end
         
     | 
| 
      
 32 
     | 
    
         
            +
                def compute_all()
         
     | 
| 
      
 33 
     | 
    
         
            +
                  @all = Hash.new()
         
     | 
| 
      
 34 
     | 
    
         
            +
                  @all.deep_merge!(@defaults) if @defaults != nil
         
     | 
| 
      
 35 
     | 
    
         
            +
                  @all.deep_merge!(@system) if @system != nil
         
     | 
| 
      
 36 
     | 
    
         
            +
                  @all.deep_merge!(@user) if @user != nil
         
     | 
| 
      
 37 
     | 
    
         
            +
                  @all.deep_merge!(@project) if @project != nil
         
     | 
| 
       49 
38 
     | 
    
         | 
| 
       50 
     | 
    
         
            -
                   
     | 
| 
       51 
     | 
    
         
            -
                  parameters.deep_merge!(@user_parameters) if @user_parameters != nil
         
     | 
| 
       52 
     | 
    
         
            -
                  parameters.deep_merge!(@project_parameters) if @project_parameters != nil
         
     | 
| 
      
 39 
     | 
    
         
            +
                  self.recompute(@all)
         
     | 
| 
       53 
40 
     | 
    
         | 
| 
       54 
     | 
    
         
            -
                  return  
     | 
| 
      
 41 
     | 
    
         
            +
                  return @all
         
     | 
| 
       55 
42 
     | 
    
         
             
                end
         
     | 
| 
       56 
43 
     | 
    
         | 
| 
       57 
     | 
    
         
            -
                def  
     | 
| 
       58 
     | 
    
         
            -
                  data =  
     | 
| 
      
 44 
     | 
    
         
            +
                def parse_parameters(file_path)
         
     | 
| 
      
 45 
     | 
    
         
            +
                  data = parse_data(file_path)
         
     | 
| 
       59 
46 
     | 
    
         
             
                  if data == nil || !data.kind_of?(Hash)
         
     | 
| 
       60 
47 
     | 
    
         
             
                    return
         
     | 
| 
       61 
48 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -68,7 +55,7 @@ module Nugrant 
     | 
|
| 
       68 
55 
     | 
    
         
             
                  return data
         
     | 
| 
       69 
56 
     | 
    
         
             
                end
         
     | 
| 
       70 
57 
     | 
    
         | 
| 
       71 
     | 
    
         
            -
                def  
     | 
| 
      
 58 
     | 
    
         
            +
                def parse_data(file_path)
         
     | 
| 
       72 
59 
     | 
    
         
             
                  return if not File.exists?(file_path)
         
     | 
| 
       73 
60 
     | 
    
         | 
| 
       74 
61 
     | 
    
         
             
                  begin
         
     | 
| 
         @@ -9,6 +9,7 @@ module Nugrant 
     | 
|
| 
       9 
9 
     | 
    
         
             
                      super(arguments, environment)
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
                      @show_help = false
         
     | 
| 
      
 12 
     | 
    
         
            +
                      @show_defaults = false
         
     | 
| 
       12 
13 
     | 
    
         
             
                      @show_system = false
         
     | 
| 
       13 
14 
     | 
    
         
             
                      @show_user = false
         
     | 
| 
       14 
15 
     | 
    
         
             
                      @show_project = false
         
     | 
| 
         @@ -26,6 +27,10 @@ module Nugrant 
     | 
|
| 
       26 
27 
     | 
    
         
             
                          @show_help = true
         
     | 
| 
       27 
28 
     | 
    
         
             
                        end
         
     | 
| 
       28 
29 
     | 
    
         | 
| 
      
 30 
     | 
    
         
            +
                        parser.on("-d", "--defaults", "Show only defaults parameters") do
         
     | 
| 
      
 31 
     | 
    
         
            +
                          @show_defaults = true
         
     | 
| 
      
 32 
     | 
    
         
            +
                        end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
       29 
34 
     | 
    
         
             
                        parser.on("-s", "--system", "Show only system parameters") do
         
     | 
| 
       30 
35 
     | 
    
         
             
                          @show_system = true
         
     | 
| 
       31 
36 
     | 
    
         
             
                        end
         
     | 
| 
         @@ -43,11 +48,6 @@ module Nugrant 
     | 
|
| 
       43 
48 
     | 
    
         
             
                                          "of all parameters that would be available for usage in the Vagrantfile.\n" +
         
     | 
| 
       44 
49 
     | 
    
         
             
                                          "The hierarchy of the parameters is respected, so the final values are\n" +
         
     | 
| 
       45 
50 
     | 
    
         
             
                                          "displayed."
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
                        parser.separator ""
         
     | 
| 
       48 
     | 
    
         
            -
                        parser.separator "Notice: For now, defaults directly defined in the Vagrantfile are not \n" +
         
     | 
| 
       49 
     | 
    
         
            -
                                         "considered by this command. This is something we would like to fix in \n" +
         
     | 
| 
       50 
     | 
    
         
            -
                                         "the near future."
         
     | 
| 
       51 
51 
     | 
    
         
             
                      end
         
     | 
| 
       52 
52 
     | 
    
         
             
                    end
         
     | 
| 
       53 
53 
     | 
    
         | 
| 
         @@ -57,11 +57,19 @@ module Nugrant 
     | 
|
| 
       57 
57 
     | 
    
         | 
| 
       58 
58 
     | 
    
         
             
                      return help(parser) if @show_help
         
     | 
| 
       59 
59 
     | 
    
         | 
| 
       60 
     | 
    
         
            -
                       
     | 
| 
       61 
     | 
    
         
            -
                       
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
      
 60 
     | 
    
         
            +
                      @logger.debug("'Parameters' each target VM...")
         
     | 
| 
      
 61 
     | 
    
         
            +
                      with_target_vms(arguments) do |vm|
         
     | 
| 
      
 62 
     | 
    
         
            +
                        parameters = vm.config.keys[:user].parameters
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
                        @env.ui.info("# Vm '#{vm.name}'", :prefix => false)
         
     | 
| 
       63 
65 
     | 
    
         | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
      
 66 
     | 
    
         
            +
                        defaults(parameters) if @show_defaults
         
     | 
| 
      
 67 
     | 
    
         
            +
                        system(parameters) if @show_system
         
     | 
| 
      
 68 
     | 
    
         
            +
                        user(parameters) if @show_user
         
     | 
| 
      
 69 
     | 
    
         
            +
                        project(parameters) if @show_project
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
                        all(parameters) if !@show_defaults && !@show_system && !@show_user && !@show_project
         
     | 
| 
      
 72 
     | 
    
         
            +
                      end
         
     | 
| 
       65 
73 
     | 
    
         | 
| 
       66 
74 
     | 
    
         
             
                      return 0
         
     | 
| 
       67 
75 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -70,55 +78,57 @@ module Nugrant 
     | 
|
| 
       70 
78 
     | 
    
         
             
                      @env.ui.info(parser.help, :prefix => false)
         
     | 
| 
       71 
79 
     | 
    
         
             
                    end
         
     | 
| 
       72 
80 
     | 
    
         | 
| 
       73 
     | 
    
         
            -
                    def  
     | 
| 
       74 
     | 
    
         
            -
                      parameters 
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
                      print_header("System")
         
     | 
| 
       77 
     | 
    
         
            -
                      print_parameters(parameters.get_system_params())
         
     | 
| 
      
 81 
     | 
    
         
            +
                    def defaults(parameters)
         
     | 
| 
      
 82 
     | 
    
         
            +
                      print_results("Defaults", parameters.defaults)
         
     | 
| 
       78 
83 
     | 
    
         
             
                    end
         
     | 
| 
       79 
84 
     | 
    
         | 
| 
       80 
     | 
    
         
            -
                    def  
     | 
| 
       81 
     | 
    
         
            -
                      parameters 
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
                      print_header("User")
         
     | 
| 
       84 
     | 
    
         
            -
                      print_parameters(parameters.get_user_params())
         
     | 
| 
      
 85 
     | 
    
         
            +
                    def system(parameters)
         
     | 
| 
      
 86 
     | 
    
         
            +
                      print_results("System", parameters.system)
         
     | 
| 
       85 
87 
     | 
    
         
             
                    end
         
     | 
| 
       86 
88 
     | 
    
         | 
| 
       87 
     | 
    
         
            -
                    def  
     | 
| 
       88 
     | 
    
         
            -
                      parameters 
     | 
| 
       89 
     | 
    
         
            -
             
     | 
| 
       90 
     | 
    
         
            -
                      print_header("Project")
         
     | 
| 
       91 
     | 
    
         
            -
                      print_parameters(parameters.get_project_params())
         
     | 
| 
      
 89 
     | 
    
         
            +
                    def user(parameters)
         
     | 
| 
      
 90 
     | 
    
         
            +
                      print_results("User", parameters.user)
         
     | 
| 
       92 
91 
     | 
    
         
             
                    end
         
     | 
| 
       93 
92 
     | 
    
         | 
| 
       94 
     | 
    
         
            -
                    def  
     | 
| 
       95 
     | 
    
         
            -
                      parameters 
     | 
| 
       96 
     | 
    
         
            -
             
     | 
| 
       97 
     | 
    
         
            -
                      print_parameters(parameters.get_params())
         
     | 
| 
      
 93 
     | 
    
         
            +
                    def project(parameters)
         
     | 
| 
      
 94 
     | 
    
         
            +
                      print_results("Project", parameters.project)
         
     | 
| 
       98 
95 
     | 
    
         
             
                    end
         
     | 
| 
       99 
96 
     | 
    
         | 
| 
       100 
     | 
    
         
            -
                    def  
     | 
| 
       101 
     | 
    
         
            -
                       
     | 
| 
       102 
     | 
    
         
            -
                      @env.ui.info("-----------------------------------------------", :prefix => false)
         
     | 
| 
      
 97 
     | 
    
         
            +
                    def all(parameters)
         
     | 
| 
      
 98 
     | 
    
         
            +
                      print_results("All", parameters.all)
         
     | 
| 
       103 
99 
     | 
    
         
             
                    end
         
     | 
| 
       104 
100 
     | 
    
         | 
| 
       105 
     | 
    
         
            -
                    def  
     | 
| 
      
 101 
     | 
    
         
            +
                    def print_results(kind, parameters)
         
     | 
| 
       106 
102 
     | 
    
         
             
                      if !parameters || parameters.empty?()
         
     | 
| 
      
 103 
     | 
    
         
            +
                        print_header(kind)
         
     | 
| 
       107 
104 
     | 
    
         
             
                        @env.ui.info(" Empty", :prefix => false)
         
     | 
| 
       108 
105 
     | 
    
         
             
                        @env.ui.info("", :prefix => false)
         
     | 
| 
       109 
106 
     | 
    
         
             
                        return
         
     | 
| 
       110 
107 
     | 
    
         
             
                      end
         
     | 
| 
       111 
108 
     | 
    
         | 
| 
       112 
     | 
    
         
            -
                       
     | 
| 
      
 109 
     | 
    
         
            +
                      print_parameters(kind, {
         
     | 
| 
       113 
110 
     | 
    
         
             
                        'config' => {
         
     | 
| 
       114 
111 
     | 
    
         
             
                          'user' => parameters
         
     | 
| 
       115 
112 
     | 
    
         
             
                        }
         
     | 
| 
       116 
     | 
    
         
            -
                      }
         
     | 
| 
      
 113 
     | 
    
         
            +
                      })
         
     | 
| 
      
 114 
     | 
    
         
            +
                    end
         
     | 
| 
       117 
115 
     | 
    
         | 
| 
       118 
     | 
    
         
            -
             
     | 
| 
      
 116 
     | 
    
         
            +
                    def print_parameters(kind, data)
         
     | 
| 
      
 117 
     | 
    
         
            +
                      string = Nugrant::Helper::Yaml.format(data.to_yaml, :indent => 1)
         
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
                      print_header(kind)
         
     | 
| 
       119 
120 
     | 
    
         
             
                      @env.ui.info(string, :prefix => false)
         
     | 
| 
       120 
121 
     | 
    
         
             
                      @env.ui.info("", :prefix => false)
         
     | 
| 
       121 
122 
     | 
    
         
             
                    end
         
     | 
| 
      
 123 
     | 
    
         
            +
             
     | 
| 
      
 124 
     | 
    
         
            +
                    def print_header(kind, length = 50)
         
     | 
| 
      
 125 
     | 
    
         
            +
                      @env.ui.info(" #{kind.capitalize} Parameters", :prefix => false)
         
     | 
| 
      
 126 
     | 
    
         
            +
                      @env.ui.info(" " + "-" * length, :prefix => false)
         
     | 
| 
      
 127 
     | 
    
         
            +
                    end
         
     | 
| 
      
 128 
     | 
    
         
            +
             
     | 
| 
      
 129 
     | 
    
         
            +
                    def compute_header_length(string)
         
     | 
| 
      
 130 
     | 
    
         
            +
             
     | 
| 
      
 131 
     | 
    
         
            +
                    end
         
     | 
| 
       122 
132 
     | 
    
         
             
                  end
         
     | 
| 
       123 
133 
     | 
    
         
             
                end
         
     | 
| 
       124 
134 
     | 
    
         
             
              end
         
     | 
    
        data/lib/nugrant/version.rb
    CHANGED
    
    
    
        data/nugrant.gemspec
    CHANGED
    
    | 
         @@ -12,9 +12,9 @@ Gem::Specification.new do |gem| 
     | 
|
| 
       12 
12 
     | 
    
         
             
              gem.homepage      = "https://github.com/nuecho/nugrant"
         
     | 
| 
       13 
13 
     | 
    
         
             
              gem.summary       = "Vagrant plugin to enable user specific configuration parameters."
         
     | 
| 
       14 
14 
     | 
    
         
             
              gem.description   = <<-EOF
         
     | 
| 
       15 
     | 
    
         
            -
                 This gem is in fact a Vagrant  
     | 
| 
      
 15 
     | 
    
         
            +
                 This gem is in fact a Vagrant plugin. By installing this gem, it will be
         
     | 
| 
       16 
16 
     | 
    
         
             
                 possible to define user specific configuration files that will be merge
         
     | 
| 
       17 
     | 
    
         
            -
                 directly into the Vagrant configuration. This is  
     | 
| 
      
 17 
     | 
    
         
            +
                 directly into the Vagrant configuration. This is useful if you need to
         
     | 
| 
       18 
18 
     | 
    
         
             
                 share a Vagrantfile to multiple developers but would like to customize
         
     | 
| 
       19 
19 
     | 
    
         
             
                 some parameters for each users differently.
         
     | 
| 
       20 
20 
     | 
    
         
             
              EOF
         
     | 
| 
         @@ -183,11 +183,6 @@ class Nugrant::TestParameters < Test::Unit::TestCase 
     | 
|
| 
       183 
183 
     | 
    
         
             
              def test_defaults()
         
     | 
| 
       184 
184 
     | 
    
         
             
                filetypes.each do |params_filetype|
         
     | 
| 
       185 
185 
     | 
    
         
             
                  parameters = create_parameters(params_filetype, "params_simple", invalid_path, invalid_path)
         
     | 
| 
       186 
     | 
    
         
            -
                  parameters.defaults({"test" => "override", "level" => "new"})
         
     | 
| 
       187 
     | 
    
         
            -
             
     | 
| 
       188 
     | 
    
         
            -
                  assert_equal("value", parameters.test)
         
     | 
| 
       189 
     | 
    
         
            -
                  assert_equal("new", parameters.level)
         
     | 
| 
       190 
     | 
    
         
            -
             
     | 
| 
       191 
186 
     | 
    
         
             
                  parameters.defaults = {"test" => "override1", "level" => "new1"}
         
     | 
| 
       192 
187 
     | 
    
         | 
| 
       193 
188 
     | 
    
         
             
                  assert_equal("value", parameters.test)
         
     | 
| 
         @@ -198,7 +193,7 @@ class Nugrant::TestParameters < Test::Unit::TestCase 
     | 
|
| 
       198 
193 
     | 
    
         
             
              def test_empty_file()
         
     | 
| 
       199 
194 
     | 
    
         
             
                filetypes.each do |params_filetype|
         
     | 
| 
       200 
195 
     | 
    
         
             
                  parameters = create_parameters(params_filetype, "params_empty", invalid_path, invalid_path)
         
     | 
| 
       201 
     | 
    
         
            -
                  parameters.defaults 
     | 
| 
      
 196 
     | 
    
         
            +
                  parameters.defaults = {"test" => "value"}
         
     | 
| 
       202 
197 
     | 
    
         | 
| 
       203 
198 
     | 
    
         
             
                  assert_equal("value", parameters.test)
         
     | 
| 
       204 
199 
     | 
    
         
             
                end
         
     | 
| 
         @@ -208,7 +203,7 @@ class Nugrant::TestParameters < Test::Unit::TestCase 
     | 
|
| 
       208 
203 
     | 
    
         
             
                ["boolean", "list"].each do |wrong_type|
         
     | 
| 
       209 
204 
     | 
    
         
             
                  filetypes.each do |params_filetype|
         
     | 
| 
       210 
205 
     | 
    
         
             
                    parameters = create_parameters(params_filetype, "params_#{wrong_type}", invalid_path, invalid_path)
         
     | 
| 
       211 
     | 
    
         
            -
                    parameters.defaults 
     | 
| 
      
 206 
     | 
    
         
            +
                    parameters.defaults = {"test" => "value"}
         
     | 
| 
       212 
207 
     | 
    
         | 
| 
       213 
208 
     | 
    
         
             
                    assert_equal("value", parameters.test)
         
     | 
| 
       214 
209 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -81,84 +81,4 @@ class Nugrant::TestParameterBag < Test::Unit::TestCase 
     | 
|
| 
       81 
81 
     | 
    
         
             
                  bag["invalid_value"]
         
     | 
| 
       82 
82 
     | 
    
         
             
                end
         
     | 
| 
       83 
83 
     | 
    
         
             
              end
         
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
              def test_restricted_key_defaults()
         
     | 
| 
       86 
     | 
    
         
            -
                assert_raise(ArgumentError) do
         
     | 
| 
       87 
     | 
    
         
            -
                  results = create_bag({"defaults" => "one"})
         
     | 
| 
       88 
     | 
    
         
            -
                  puts("Results: #{results.inspect} (Should have thrown!)")
         
     | 
| 
       89 
     | 
    
         
            -
                end
         
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
       91 
     | 
    
         
            -
                assert_raise(ArgumentError) do
         
     | 
| 
       92 
     | 
    
         
            -
                  results = create_bag({"level" => {"defaults" => "value"}})
         
     | 
| 
       93 
     | 
    
         
            -
                  puts("Results: #{results.inspect} (Should have thrown!)")
         
     | 
| 
       94 
     | 
    
         
            -
                end
         
     | 
| 
       95 
     | 
    
         
            -
              end
         
     | 
| 
       96 
     | 
    
         
            -
             
     | 
| 
       97 
     | 
    
         
            -
              def test_defaults()
         
     | 
| 
       98 
     | 
    
         
            -
                run_test_defaults({
         
     | 
| 
       99 
     | 
    
         
            -
                  "first" => {
         
     | 
| 
       100 
     | 
    
         
            -
                    "level1" => "value1",
         
     | 
| 
       101 
     | 
    
         
            -
                    "level2" => "value2",
         
     | 
| 
       102 
     | 
    
         
            -
                    "deeper" => {
         
     | 
| 
       103 
     | 
    
         
            -
                      "level3" => "value3"
         
     | 
| 
       104 
     | 
    
         
            -
                    }
         
     | 
| 
       105 
     | 
    
         
            -
                  },
         
     | 
| 
       106 
     | 
    
         
            -
                }, {
         
     | 
| 
       107 
     | 
    
         
            -
                  "first" => {
         
     | 
| 
       108 
     | 
    
         
            -
                    "level1" => "default1",
         
     | 
| 
       109 
     | 
    
         
            -
                    "level3" => "default3",
         
     | 
| 
       110 
     | 
    
         
            -
                    "deeper" => {
         
     | 
| 
       111 
     | 
    
         
            -
                      "level3" => "default3",
         
     | 
| 
       112 
     | 
    
         
            -
                      "level4" => "value4"
         
     | 
| 
       113 
     | 
    
         
            -
                    }
         
     | 
| 
       114 
     | 
    
         
            -
                  },
         
     | 
| 
       115 
     | 
    
         
            -
                  "second" => {
         
     | 
| 
       116 
     | 
    
         
            -
                    "level1" => "default1"
         
     | 
| 
       117 
     | 
    
         
            -
                  },
         
     | 
| 
       118 
     | 
    
         
            -
                  "third" => "default3"
         
     | 
| 
       119 
     | 
    
         
            -
                }, {
         
     | 
| 
       120 
     | 
    
         
            -
                  "first" => {
         
     | 
| 
       121 
     | 
    
         
            -
                    "level1" => "value1",
         
     | 
| 
       122 
     | 
    
         
            -
                    "level2" => "value2",
         
     | 
| 
       123 
     | 
    
         
            -
                    "level3" => "default3",
         
     | 
| 
       124 
     | 
    
         
            -
                    "deeper" => {
         
     | 
| 
       125 
     | 
    
         
            -
                      "level3" => "value3",
         
     | 
| 
       126 
     | 
    
         
            -
                      "level4" => "value4"
         
     | 
| 
       127 
     | 
    
         
            -
                    }
         
     | 
| 
       128 
     | 
    
         
            -
                  },
         
     | 
| 
       129 
     | 
    
         
            -
                  "second" => {
         
     | 
| 
       130 
     | 
    
         
            -
                    "level1" => "default1"
         
     | 
| 
       131 
     | 
    
         
            -
                  },
         
     | 
| 
       132 
     | 
    
         
            -
                  "third" => "default3"
         
     | 
| 
       133 
     | 
    
         
            -
                })
         
     | 
| 
       134 
     | 
    
         
            -
              end
         
     | 
| 
       135 
     | 
    
         
            -
             
     | 
| 
       136 
     | 
    
         
            -
              def test_defaults_empty()
         
     | 
| 
       137 
     | 
    
         
            -
                defaults = {
         
     | 
| 
       138 
     | 
    
         
            -
                  "first" => {
         
     | 
| 
       139 
     | 
    
         
            -
                    "second" => {
         
     | 
| 
       140 
     | 
    
         
            -
                      "third" => {
         
     | 
| 
       141 
     | 
    
         
            -
                        "value1" => "one",
         
     | 
| 
       142 
     | 
    
         
            -
                        "value2" => "two"
         
     | 
| 
       143 
     | 
    
         
            -
                      },
         
     | 
| 
       144 
     | 
    
         
            -
                      "fourth" => "third",
         
     | 
| 
       145 
     | 
    
         
            -
                    },
         
     | 
| 
       146 
     | 
    
         
            -
                    "fifth" => "four"
         
     | 
| 
       147 
     | 
    
         
            -
                  }
         
     | 
| 
       148 
     | 
    
         
            -
                }
         
     | 
| 
       149 
     | 
    
         
            -
             
     | 
| 
       150 
     | 
    
         
            -
                run_test_defaults({}, defaults, defaults)
         
     | 
| 
       151 
     | 
    
         
            -
              end
         
     | 
| 
       152 
     | 
    
         
            -
             
     | 
| 
       153 
     | 
    
         
            -
              def run_test_defaults(parameters, parameters_defaults, expected)
         
     | 
| 
       154 
     | 
    
         
            -
                bag = create_bag(parameters)
         
     | 
| 
       155 
     | 
    
         
            -
                bag.defaults(parameters_defaults)
         
     | 
| 
       156 
     | 
    
         
            -
             
     | 
| 
       157 
     | 
    
         
            -
                assert_bag(expected, bag)
         
     | 
| 
       158 
     | 
    
         
            -
             
     | 
| 
       159 
     | 
    
         
            -
                bag = create_bag(parameters)
         
     | 
| 
       160 
     | 
    
         
            -
                bag.defaults = parameters_defaults
         
     | 
| 
       161 
     | 
    
         
            -
             
     | 
| 
       162 
     | 
    
         
            -
                assert_bag(expected, bag)
         
     | 
| 
       163 
     | 
    
         
            -
              end
         
     | 
| 
       164 
84 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: nugrant
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.13
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2013-02- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2013-02-11 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: deep_merge
         
     | 
| 
         @@ -59,9 +59,9 @@ dependencies: 
     | 
|
| 
       59 
59 
     | 
    
         
             
                - - ~>
         
     | 
| 
       60 
60 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       61 
61 
     | 
    
         
             
                    version: 1.0.5
         
     | 
| 
       62 
     | 
    
         
            -
            description: ! "     This gem is in fact a Vagrant  
     | 
| 
      
 62 
     | 
    
         
            +
            description: ! "     This gem is in fact a Vagrant plugin. By installing this gem,
         
     | 
| 
       63 
63 
     | 
    
         
             
              it will be\n     possible to define user specific configuration files that will
         
     | 
| 
       64 
     | 
    
         
            -
              be merge\n     directly into the Vagrant configuration. This is  
     | 
| 
      
 64 
     | 
    
         
            +
              be merge\n     directly into the Vagrant configuration. This is useful if you need
         
     | 
| 
       65 
65 
     | 
    
         
             
              to\n     share a Vagrantfile to multiple developers but would like to customize\n
         
     | 
| 
       66 
66 
     | 
    
         
             
              \    some parameters for each users differently.\n"
         
     | 
| 
       67 
67 
     | 
    
         
             
            email:
         
     | 
| 
         @@ -141,7 +141,7 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       141 
141 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       142 
142 
     | 
    
         
             
                  segments:
         
     | 
| 
       143 
143 
     | 
    
         
             
                  - 0
         
     | 
| 
       144 
     | 
    
         
            -
                  hash: - 
     | 
| 
      
 144 
     | 
    
         
            +
                  hash: -1143289133319579260
         
     | 
| 
       145 
145 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       146 
146 
     | 
    
         
             
              none: false
         
     | 
| 
       147 
147 
     | 
    
         
             
              requirements:
         
     | 
| 
         @@ -150,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       150 
150 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       151 
151 
     | 
    
         
             
                  segments:
         
     | 
| 
       152 
152 
     | 
    
         
             
                  - 0
         
     | 
| 
       153 
     | 
    
         
            -
                  hash: - 
     | 
| 
      
 153 
     | 
    
         
            +
                  hash: -1143289133319579260
         
     | 
| 
       154 
154 
     | 
    
         
             
            requirements: []
         
     | 
| 
       155 
155 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       156 
156 
     | 
    
         
             
            rubygems_version: 1.8.24
         
     |