nugrant 2.0.0.dev2 → 2.0.0.pre1

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.
Files changed (54) hide show
  1. checksums.yaml +6 -14
  2. data/.gitignore +2 -1
  3. data/.travis.yml +2 -2
  4. data/CHANGELOG.md +148 -3
  5. data/Gemfile +8 -20
  6. data/README.md +266 -72
  7. data/Rakefile +1 -0
  8. data/lib/nugrant.rb +14 -6
  9. data/lib/nugrant/bag.rb +116 -62
  10. data/lib/nugrant/helper/bag.rb +19 -19
  11. data/lib/nugrant/helper/env/exporter.rb +208 -0
  12. data/lib/nugrant/helper/env/namer.rb +47 -0
  13. data/lib/nugrant/helper/parameters.rb +12 -0
  14. data/lib/nugrant/helper/stack.rb +86 -0
  15. data/lib/nugrant/mixin/parameters.rb +98 -0
  16. data/lib/nugrant/parameters.rb +14 -68
  17. data/lib/nugrant/vagrant/errors.rb +27 -0
  18. data/lib/nugrant/vagrant/v2/command/env.rb +101 -0
  19. data/lib/nugrant/vagrant/v2/command/helper.rb +30 -0
  20. data/lib/nugrant/vagrant/v2/command/parameters.rb +16 -4
  21. data/lib/nugrant/vagrant/v2/command/restricted_keys.rb +60 -0
  22. data/lib/nugrant/vagrant/v2/command/root.rb +12 -2
  23. data/lib/nugrant/vagrant/v2/config/user.rb +9 -21
  24. data/lib/nugrant/vagrant/v2/plugin.rb +0 -1
  25. data/lib/nugrant/version.rb +1 -1
  26. data/locales/en.yml +13 -0
  27. data/nugrant.gemspec +3 -7
  28. data/test/lib/nugrant/helper/env/test_exporter.rb +238 -0
  29. data/test/lib/nugrant/helper/test_bag.rb +16 -0
  30. data/test/lib/nugrant/helper/test_parameters.rb +17 -0
  31. data/test/lib/nugrant/helper/test_stack.rb +152 -0
  32. data/test/lib/nugrant/test_bag.rb +132 -22
  33. data/test/lib/nugrant/test_config.rb +95 -92
  34. data/test/lib/nugrant/test_parameters.rb +232 -177
  35. data/test/lib/test_helper.rb +3 -0
  36. data/test/resources/json/params_user_nil_values.json +9 -0
  37. data/test/resources/vagrantfiles/v2.defaults_mixed_string_symbols +18 -0
  38. data/test/resources/vagrantfiles/v2.defaults_null_values_in_vagrantuser +23 -0
  39. data/test/resources/vagrantfiles/v2.defaults_using_string +18 -0
  40. data/test/resources/vagrantfiles/v2.defaults_using_symbol +18 -0
  41. data/test/resources/{Vagrantfile.v2.empty → vagrantfiles/v2.empty} +0 -2
  42. data/test/resources/{Vagrantfile.v2.fake → vagrantfiles/v2.fake} +4 -3
  43. data/test/resources/vagrantfiles/v2.missing_parameter +3 -0
  44. data/test/resources/{Vagrantfile.v2.real → vagrantfiles/v2.real} +0 -2
  45. data/test/resources/yaml/params_user_nil_values.yml +5 -0
  46. metadata +55 -88
  47. data/lib/nugrant/vagrant/v1/command/parameters.rb +0 -134
  48. data/lib/nugrant/vagrant/v1/command/root.rb +0 -81
  49. data/lib/nugrant/vagrant/v1/config/user.rb +0 -37
  50. data/lib/nugrant/vagrant/v1/plugin.rb +0 -6
  51. data/lib/vagrant_init.rb +0 -2
  52. data/test/resources/Vagrantfile.v1.empty +0 -2
  53. data/test/resources/Vagrantfile.v1.fake +0 -10
  54. data/test/resources/Vagrantfile.v1.real +0 -19
@@ -1,81 +0,0 @@
1
- require 'nugrant'
2
- require 'nugrant/version'
3
-
4
- module Nugrant
5
- module Vagrant
6
- module V1
7
- module Command
8
- class Root < ::Vagrant::Command::Base
9
- def initialize(arguments, environment)
10
- super(arguments, environment)
11
-
12
- @arguments, @subcommand, @subarguments = split_main_and_subcommand(arguments)
13
-
14
- # Change super class available arguments to main ones only
15
- @argv = @arguments
16
-
17
- @subcommands = ::Vagrant::Registry.new()
18
- @subcommands.register(:parameters) do
19
- require File.expand_path("../parameters", __FILE__)
20
- Parameters
21
- end
22
-
23
- @show_help = false
24
- @show_version = false
25
- end
26
-
27
- def create_parser()
28
- return OptionParser.new do |parser|
29
- parser.banner = "Usage: vagrant user [-h] [-v] <command> [<args>]"
30
-
31
- parser.separator ""
32
- parser.on("-h", "--help", "Print this help") do
33
- @show_help = true
34
- end
35
-
36
- parser.on("-v", "--version", "Print plugin version and exit.") do
37
- @show_version = true
38
- end
39
-
40
- parser.separator ""
41
- parser.separator "Available subcommands:"
42
-
43
- keys = []
44
- @subcommands.each { |key, value| keys << key.to_s }
45
-
46
- keys.sort.each do |key|
47
- parser.separator " #{key}"
48
- end
49
-
50
- parser.separator ""
51
- parser.separator "For help on any individual command run `vagrant user COMMAND -h`"
52
- end
53
- end
54
-
55
- def execute
56
- parser = create_parser()
57
- arguments = parse_options(parser)
58
-
59
- return version() if @show_version
60
- return help(parser) if @show_help
61
-
62
- command_class = @subcommands.get(@subcommand.to_sym) if @subcommand
63
- return help(parser) if !command_class || !@subcommand
64
-
65
- @logger.debug("Invoking nugrant command class: #{command_class} #{@subarguments.inspect}")
66
-
67
- command_class.new(@subarguments, @env).execute
68
- end
69
-
70
- def help(parser)
71
- @env.ui.info(parser.help, :prefix => false)
72
- end
73
-
74
- def version()
75
- @env.ui.info("Nugrant version #{Nugrant::VERSION}", :prefix => false)
76
- end
77
- end
78
- end
79
- end
80
- end
81
- end
@@ -1,37 +0,0 @@
1
- require 'nugrant'
2
-
3
- module Nugrant
4
- module Vagrant
5
- module V1
6
- module Config
7
- class User < ::Vagrant::Config::Base
8
- attr_reader :parameters
9
-
10
- def initialize()
11
- @parameters = Nugrant::Parameters.new({:config => {:params_filename => ".vagrantuser"}})
12
- end
13
-
14
- def [](param_name)
15
- return @parameters[param_name]
16
- end
17
-
18
- def method_missing(method, *args, &block)
19
- return @parameters.method_missing(method, *args, &block)
20
- end
21
-
22
- def each(&block)
23
- @parameters.each(&block)
24
- end
25
-
26
- def defaults(parameters)
27
- @parameters.defaults(parameters)
28
- end
29
-
30
- def defaults=(parameters)
31
- @parameters.defaults=(parameters)
32
- end
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,6 +0,0 @@
1
- require 'nugrant/vagrant/v1/command/root'
2
- require 'nugrant/vagrant/v1/config/user'
3
-
4
- # Plugin bootstrap
5
- Vagrant.commands.register(:user) { Nugrant::Vagrant::V1::Command::Root }
6
- Vagrant.config_keys.register(:user) { Nugrant::Vagrant::V1::Config::User }
data/lib/vagrant_init.rb DELETED
@@ -1,2 +0,0 @@
1
- # This module will initialize the vagrant plugin
2
- require "nugrant/vagrant/v1/plugin"
@@ -1,2 +0,0 @@
1
- Vagrant::Config.run do |config|
2
- end
@@ -1,10 +0,0 @@
1
- Vagrant::Config.run do |config|
2
- config.user.defaults = {
3
- 'first' => "value1",
4
- 'second' => "value2"
5
- }
6
-
7
- config.user.each do |name, value|
8
- puts "Parameters #{name}: #{value.inspect}"
9
- end
10
- end
@@ -1,19 +0,0 @@
1
- Vagrant::Config.run do |config|
2
- config.vm.box = "base"
3
- config.vm.box_url = "http://domain.com/path/to/above.box"
4
-
5
- config.vm.network :forwarded_port, guest: 80, host: 8080
6
-
7
- config.vm.shared_folder "C:/Users/Matt/nugrant", "/vagrant_data"
8
-
9
- config.vm.customize ["modifyvm", :id, "--memory", "256"]
10
-
11
- config.vm.provision :chef_solo do |chef|
12
- chef.cookbooks_path = "C:\Users\Matt\Work\kitchen\cookbooks"
13
- chef.roles_path = "C:\Users\Matt\Work\kitchen\roles"
14
- chef.nodes_path = "C:\Users\Matt\Work\kitchen\nodes"
15
-
16
- chef.add_recipe "mysql"
17
- chef.add_role "web"
18
- end
19
- end