vagrant-hypconfigmgmt 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/.rspec +1 -0
  4. data/Makefile +3 -1
  5. data/README.md +2 -3
  6. data/lib/vagrant-hypconfigmgmt/.command.rb.swo +0 -0
  7. data/lib/vagrant-hypconfigmgmt/command.rb +224 -183
  8. data/lib/vagrant-hypconfigmgmt/version.rb +1 -1
  9. data/pkg/vagrant-hypconfigmgmt-0.0.2.gem +0 -0
  10. data/spec/spec_helper.rb +15 -0
  11. data/spec/unit/command/call_spec.rb +93 -0
  12. data/spec/unit/command/configure_magento_spec.rb +35 -0
  13. data/spec/unit/command/configure_php_spec.rb +35 -0
  14. data/spec/unit/command/configure_synced_folders_spec.rb +35 -0
  15. data/spec/unit/command/configure_vagrant_spec.rb +33 -0
  16. data/spec/unit/command/configure_varnish_spec.rb +35 -0
  17. data/spec/unit/command/ensure_attribute_configured_spec.rb +100 -0
  18. data/spec/unit/command/ensure_magento_mounts_configured_spec.rb +268 -0
  19. data/spec/unit/command/ensure_required_plugins_are_installed_spec.rb +78 -0
  20. data/spec/unit/command/ensure_setting_exists_spec.rb +50 -0
  21. data/spec/unit/command/ensure_settings_are_configured_spec.rb +71 -0
  22. data/spec/unit/command/ensure_vagrant_box_type_configured_spec.rb +78 -0
  23. data/spec/unit/command/get_magento_version_spec.rb +57 -0
  24. data/spec/unit/command/get_options_string_spec.rb +48 -0
  25. data/spec/unit/command/get_php_version_spec.rb +56 -0
  26. data/spec/unit/command/get_setting_spec.rb +55 -0
  27. data/spec/unit/command/get_varnish_state_spec.rb +56 -0
  28. data/spec/unit/command/inform_if_gatling_not_installed_spec.rb +67 -0
  29. data/spec/unit/command/retrieve_settings_spec.rb +39 -0
  30. data/spec/unit/command/update_settings_spec.rb +30 -0
  31. data/spec/unit/command/use_default_input_if_input_empty_spec.rb +30 -0
  32. data/spec/unit/command/validate_magento2_root_spec.rb +101 -0
  33. data/vagrant-hypconfigmgmt.gemspec +3 -0
  34. metadata +70 -3
  35. data/pkg/vagrant-hypconfigmgmt-0.0.1.gem +0 -0
@@ -0,0 +1,55 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # vim: set fileencoding=utf-8
3
+
4
+ require 'spec_helper'
5
+ require "vagrant-hypconfigmgmt/command"
6
+
7
+ describe VagrantHypconfigmgmt::Command do
8
+ # create a fake app and env to pass into the VagrantHypconfigmgmt::Command constructor
9
+ let(:app) { }
10
+ let(:env) { { :ui => ui } }
11
+
12
+ # pretend env contains the Vagrant ui element
13
+ let(:ui) do
14
+ double('ui').tap do |ui|
15
+ allow(ui).to receive(:error) { nil }
16
+ allow(ui).to receive(:ask) { input }
17
+ end
18
+ end
19
+
20
+ # instantiate class of which a method is to be tested
21
+ subject { described_class.new(app, env) }
22
+
23
+ # the method that we are going to test
24
+ describe "#get_setting" do
25
+
26
+ context "value is not valid" do
27
+ let(:input) { 'not_valid_input' }
28
+ it "tries to get the setting again" do
29
+ # check if the user is prompted for the setting
30
+ expect(ui).to receive(:ask).twice.with("the ask message")
31
+ # check if we get the default if the input is empty and pretend the input was returned
32
+ expect(subject).to receive(:use_default_if_input_empty).with('not_valid_input', 2).and_return('not_valid', 2)
33
+ # check the error message is printed because the input is not valid
34
+ expect(ui).to receive(:error).once.with(/.*not a valid value.*/)
35
+ # check if the re-prompted for setting is returned
36
+ expect( subject.get_setting(env, [1, 2, 3], 2, "the ask message") ).to eq(2)
37
+ end
38
+ end
39
+
40
+ context "value is valid" do
41
+ let(:input) { '1' }
42
+ it "does not try to get the setting again" do
43
+ # check if the user is prompted for the setting
44
+ expect(ui).to receive(:ask).once.with("the ask message")
45
+ # check if we get the default if the input is empty and pretend the input was returned
46
+ expect(subject).to receive(:use_default_if_input_empty).with('1', 1).and_return('1')
47
+ # check we do not print an error message
48
+ expect(ui).to receive(:error).never
49
+ # check if the setting is returned
50
+ expect( subject.get_setting(env, [1, 2, 3], 1, "the ask message") ).to eq('1')
51
+ end
52
+ end
53
+ end
54
+ end
55
+
@@ -0,0 +1,56 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # vim: set fileencoding=utf-8
3
+
4
+ require 'spec_helper'
5
+ require "vagrant-hypconfigmgmt/command"
6
+
7
+ describe VagrantHypconfigmgmt::Command do
8
+ # create a fake app and env to pass into the VagrantHypconfigmgmt::Command constructor
9
+ let(:app) { }
10
+ let(:env) { { :ui => ui } }
11
+
12
+ # pretend env contains the Vagrant ui element
13
+ let(:ui) do
14
+ double('ui').tap do |ui|
15
+ allow(ui).to receive(:info) { nil }
16
+ end
17
+ end
18
+
19
+
20
+ # instantiate class of which a method is to be tested
21
+ subject { described_class.new(app, env) }
22
+
23
+ # the method that we are going to test
24
+ describe "#get_varnish_state" do
25
+
26
+ context "when the state is enabled" do
27
+ it "it notifies the user that it will be enabled and returns the value" do
28
+ # check if the setting is prompted for and pretend it returns a "varnish enabled" answer
29
+ expect(subject).to receive(:get_setting).with(
30
+ env, AVAILABLE_VARNISH_STATES, DEFAULT_VARNISH_STATE,
31
+ "Do you want to enable Varnish? Enter true or false [default false]: "
32
+ ).and_return("true")
33
+ # check if the user is notified that Varnish will be enabled
34
+ expect(ui).to receive(:info).once.with(/.*enabled.*/)
35
+ # check if the function returns true if Varnish should be enabled
36
+ expect( subject.get_varnish_state(env) ).to eq(true)
37
+ end
38
+ end
39
+
40
+
41
+ context "when the state is disabled" do
42
+ it "it notifies the user that it will be disabled and returns the value" do
43
+ # check if the setting is prompted for and pretend it returns a "varnish disabled" answer
44
+ expect(subject).to receive(:get_setting).with(
45
+ env, AVAILABLE_VARNISH_STATES, DEFAULT_VARNISH_STATE,
46
+ "Do you want to enable Varnish? Enter true or false [default false]: "
47
+ ).and_return("false")
48
+ # check if the user is notified that Varnish will be disabled
49
+ expect(ui).to receive(:info).once.with(/.*disabled.*/)
50
+ # check if the function returns false if Varnish should be disabled
51
+ expect( subject.get_varnish_state(env) ).to eq(false)
52
+ end
53
+ end
54
+ end
55
+ end
56
+
@@ -0,0 +1,67 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # vim: set fileencoding=utf-8
3
+
4
+ require 'spec_helper'
5
+ require "vagrant-hypconfigmgmt/command"
6
+
7
+ describe VagrantHypconfigmgmt::Command do
8
+ # create a fake app and env to pass into the VagrantHypconfigmgmt::Command constructor
9
+ let(:app) { }
10
+ let(:env) { { :ui => ui } }
11
+
12
+ # pretend env contains the Vagrant ui element
13
+ let(:ui) do
14
+ double('ui').tap do |ui|
15
+ allow(ui).to receive(:info) { nil }
16
+ end
17
+ end
18
+
19
+ # Call the method under test after every 'it'. Similar to setUp in Python TestCase
20
+ after do
21
+ subject.inform_if_gatling_not_installed(env)
22
+ end
23
+
24
+ # instantiate class of which a method is to be tested
25
+ subject { described_class.new(app, env) }
26
+
27
+ # the method that we are going to test
28
+ describe "#inform_if_gatling_not_installed" do
29
+
30
+ context "synced folder type is rsync gatling is not installed" do
31
+ let(:retrieved_settings) { { "fs" => { "type" => "rsync" } } }
32
+ it "notifies the user that it should install vagrant-gatling-rsync for a performance gain" do
33
+ # check if settings are retrieved from disk and pretend they return a configuration for fs type rsync
34
+ expect(subject).to receive(:retrieve_settings).once.with(no_args).and_return(retrieved_settings)
35
+ # check if we test if the vagrant-gatling-rsync plugin is installed and pretend it is not
36
+ expect(Vagrant).to receive(:has_plugin?).once.with("vagrant-gatling-rsync").and_return(false)
37
+ # check if a message is logged when the plugin is not installed
38
+ expect(ui).to receive(:info).once.with(/.*vagrant plugin install vagrant-gatling-rsync*./)
39
+ end
40
+ end
41
+
42
+ context "synced folder type is rsync gatling is installed" do
43
+ let(:retrieved_settings) { { "fs" => { "type" => "rsync" } } }
44
+ it "does not notify the user because vagrant-gatling-rsync is already installed" do
45
+ # check if settings are retrieved from disk and pretend they return a configuration for fs type rsync
46
+ expect(subject).to receive(:retrieve_settings).once.with(no_args).and_return(retrieved_settings)
47
+ # check if we test if the vagrant-gatling-rsync plugin is installed and pretend it is
48
+ expect(Vagrant).to receive(:has_plugin?).once.with("vagrant-gatling-rsync").and_return(true)
49
+ # check if no message is logged because the plugin is already installed
50
+ expect(ui).to receive(:info).never
51
+ end
52
+ end
53
+
54
+ context "synced folder type is not rsync" do
55
+ let(:retrieved_settings) { { "fs" => { "type" => "nfs_guest" } } }
56
+ it "notifies the user that it should install vagrant-gatling-rsync for a performance gain" do
57
+ # check if settings are retrieved from disk and pretend they return a configuration for fs type nfs_guest
58
+ expect(subject).to receive(:retrieve_settings).once.with(no_args).and_return(retrieved_settings)
59
+ # check if we don't test for the vagrant-gatling-rsync plugin because we are using a different fs type
60
+ expect(Vagrant).to receive(:has_plugin?).never
61
+ # check if no message is logged because we don't use the rsync fs type
62
+ expect(ui).to receive(:info).never
63
+ end
64
+ end
65
+ end
66
+ end
67
+
@@ -0,0 +1,39 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # vim: set fileencoding=utf-8
3
+
4
+ require 'yaml'
5
+ require 'spec_helper'
6
+ require "vagrant-hypconfigmgmt/command"
7
+
8
+
9
+ describe VagrantHypconfigmgmt::Command do
10
+ # create a fake app and env to pass into the VagrantHypconfigmgmt::Command constructor
11
+ let(:app) { }
12
+ let(:env) { }
13
+
14
+ # instantiate class of which a method is to be tested
15
+ subject { described_class.new(app, env) }
16
+
17
+ # the method that we are going to test
18
+ describe "#retrieve_settings" do
19
+
20
+ context "when the configuration file already exists" do
21
+ let(:return_hash) { { "some" => "setting" } }
22
+ it "loads the configuration file and returns the data" do
23
+ expect(YAML).to receive(:load_file).once.with(H_V_SETTINGS_FILE).and_return(return_hash)
24
+ expect(YAML).to receive(:load_file).never.with(H_V_BASE_SETTINGS_FILE)
25
+ expect( subject.retrieve_settings() ).to eq(return_hash)
26
+ end
27
+ end
28
+
29
+ context "when the configuration file still needs to be created" do
30
+ let(:return_hash) { { "some" => "other_setting" } }
31
+ it "loads the base configuration file and returns the data" do
32
+ expect(YAML).to receive(:load_file).once.with(H_V_SETTINGS_FILE).and_raise(Errno::ENOENT)
33
+ expect(YAML).to receive(:load_file).once.with(H_V_BASE_SETTINGS_FILE).and_return(return_hash)
34
+ expect( subject.retrieve_settings() ).to eq(return_hash)
35
+ end
36
+ end
37
+ end
38
+ end
39
+
@@ -0,0 +1,30 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # vim: set fileencoding=utf-8
3
+
4
+ require 'spec_helper'
5
+ require "vagrant-hypconfigmgmt/command"
6
+
7
+ describe VagrantHypconfigmgmt::Command do
8
+ # create a fake app and env to pass into the VagrantHypconfigmgmt::Command constructor
9
+ let(:app) { }
10
+ let(:env) { }
11
+
12
+ # Call the method under test after every 'it'. Similar to setUp in Python TestCase
13
+ after do
14
+ subject.update_settings(env)
15
+ end
16
+
17
+ # instantiate class of which a method is to be tested
18
+ subject { described_class.new(app, env) }
19
+
20
+ # the method that we are going to test
21
+ describe "#update_settings" do
22
+
23
+ context "when the settings are updated" do
24
+ it "writes them to the settings file" do
25
+ expect(File).to receive(:open).once.with(H_V_SETTINGS_FILE, 'w')
26
+ end
27
+ end
28
+ end
29
+ end
30
+
@@ -0,0 +1,30 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # vim: set fileencoding=utf-8
3
+
4
+ require 'spec_helper'
5
+ require "vagrant-hypconfigmgmt/command"
6
+
7
+ describe VagrantHypconfigmgmt::Command do
8
+ # create a fake app and env to pass into the VagrantHypconfigmgmt::Command constructor
9
+ let(:app) { }
10
+ let(:env) { }
11
+
12
+ # instantiate class of which a method is to be tested
13
+ subject { described_class.new(app, env) }
14
+
15
+ # the method that we are going to test
16
+ describe "#use_default_if_input_empty" do
17
+ context "when the input is empty (user pressed enter)" do
18
+ it "it returns the default as string" do
19
+ expect( subject.use_default_if_input_empty("", 1) ).to eq("1")
20
+ end
21
+ end
22
+
23
+ context "when the input is not empty (user entered a value)" do
24
+ it "it returns the input" do
25
+ expect( subject.use_default_if_input_empty("2", 2) ).to eq("2")
26
+ end
27
+ end
28
+ end
29
+ end
30
+
@@ -0,0 +1,101 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # vim: set fileencoding=utf-8
3
+
4
+ require 'spec_helper'
5
+ require "vagrant-hypconfigmgmt/command"
6
+
7
+ describe VagrantHypconfigmgmt::Command do
8
+ # create a fake app and env to pass into the VagrantHypconfigmgmt::Command constructor
9
+ let(:app) { }
10
+ let(:env) { { :ui => ui } }
11
+
12
+ # pretend env contains the Vagrant ui element
13
+ let(:ui) do
14
+ double('ui').tap do |ui|
15
+ allow(ui).to receive(:info) { nil }
16
+ allow(ui).to receive(:error) { nil }
17
+ end
18
+ end
19
+
20
+ # Call the method under test after every 'it'. Similar to setUp in Python TestCase
21
+ after do
22
+ subject.validate_magento2_root(env)
23
+ end
24
+
25
+ # instantiate class of which a method is to be tested
26
+ subject { described_class.new(app, env) }
27
+
28
+ # the method that we are going to test
29
+ describe "#validate_magento2_root" do
30
+
31
+ context "when no fs is configured" do
32
+ let(:retrieved_settings) { { "fs" => nil } }
33
+ it "does not print anything because there is no mount to go wrong" do
34
+ # pretend we retrieve the settings and they don't specify a fs block
35
+ expect(subject).to receive(:retrieve_settings).once.with(no_args).and_return(retrieved_settings)
36
+ # check if no info message is printed
37
+ expect(ui).to receive(:info).never
38
+ # check if no error message is printed
39
+ expect(ui).to receive(:error).never
40
+ end
41
+ end
42
+
43
+ context "when no folders are configured" do
44
+ let(:retrieved_settings) { { "fs" => { "folders" => { } } } }
45
+ it "does not print anything because there is no folder to go wrong" do
46
+ # pretend we retrieve the settings and they specify no folders to mount
47
+ expect(subject).to receive(:retrieve_settings).once.with(no_args).and_return(retrieved_settings)
48
+ # check if no info message is printed
49
+ expect(ui).to receive(:info).never
50
+ # check if no error message is printed
51
+ expect(ui).to receive(:error).never
52
+ end
53
+ end
54
+
55
+ context "when folders are configured for magento 2 but magento version is 1" do
56
+ let(:retrieved_settings) { { "magento" => { "version" => 1 }, "fs" => { "folders" => {
57
+ "magento2" => { "guest" => "/data/web/magento2" },
58
+ "nginx" => { "guest" => "/data/web/public/someotherdir" }
59
+ } } } }
60
+ it "does not print anything because magento 2 mounts can coexist with a magento 1 configured box" do
61
+ # pretend we retrieve the settings and they specify magento version 1and a synced folder with a magento 2 path
62
+ expect(subject).to receive(:retrieve_settings).once.with(no_args).and_return(retrieved_settings)
63
+ # check if no info message is printed
64
+ expect(ui).to receive(:info).never
65
+ # check if no error message is printed
66
+ expect(ui).to receive(:error).never
67
+ end
68
+ end
69
+
70
+ context "when folders are configured for magento 1 and magento version is 1" do
71
+ let(:retrieved_settings) { { "magento" => { "version" => 1 }, "fs" => { "folders" => {
72
+ "magento1" => { "guest" => "/data/web/public" },
73
+ "nginx" => { "guest" => "/data/web/public/someotherdir" }
74
+ } } } }
75
+ it "does not print anything because magento 1 configured and only magento 1 mounts detected" do
76
+ # pretend we retrieve the settings and they specify magento version 1 and a synced folder with a magento 1 path
77
+ expect(subject).to receive(:retrieve_settings).once.with(no_args).and_return(retrieved_settings)
78
+ # check if no info message is printed
79
+ expect(ui).to receive(:info).never
80
+ # check if no error message is printed
81
+ expect(ui).to receive(:error).never
82
+ end
83
+ end
84
+
85
+ context "when folders are configured for magento 1 but magento version is 2" do
86
+ let(:retrieved_settings) { { "magento" => { "version" => 2 }, "fs" => { "folders" => {
87
+ "magento1" => { "guest" => "/data/web/public/somedir" },
88
+ "nginx" => { "guest" => "/data/web/public/someotherdir" }
89
+ } } } }
90
+ it "prints an error message because magento 2 mounts can't coexist with a magento 1 configured box because of the pub symlink" do
91
+ # pretend we retrieve the settings and they specify magento version 2 and a synced folder with a magento 1 path
92
+ expect(subject).to receive(:retrieve_settings).once.with(no_args).and_return(retrieved_settings)
93
+ # check if a message is printed that tells the user that the magento 2 dir structure can't be mounted on magento 1 configured boxes.
94
+ expect(ui).to receive(:info).once.with(/Can not configure.*/)
95
+ # check if an error message is printed that tells the user to remove /data/web/public mounts from the config
96
+ expect(ui).to receive(:error).once.with(/Please remove all .*/)
97
+ end
98
+ end
99
+ end
100
+ end
101
+
@@ -18,4 +18,7 @@ Gem::Specification.new do |spec|
18
18
 
19
19
  spec.add_development_dependency "bundler"
20
20
  spec.add_development_dependency "rake"
21
+ spec.add_development_dependency "rspec"
22
+ spec.add_development_dependency "simplecov"
23
+ spec.add_development_dependency "coveralls"
21
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-hypconfigmgmt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rick van de Loo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-20 00:00:00.000000000 Z
11
+ date: 2016-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,6 +38,48 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: simplecov
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: coveralls
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
41
83
  description: Prompt to configure a hypernode-vagrant
42
84
  email:
43
85
  - rick@byte.nl
@@ -46,16 +88,41 @@ extensions: []
46
88
  extra_rdoc_files: []
47
89
  files:
48
90
  - ".gitignore"
91
+ - ".rspec"
49
92
  - Gemfile
50
93
  - LICENSE.txt
51
94
  - Makefile
52
95
  - README.md
53
96
  - Rakefile
54
97
  - lib/vagrant-hypconfigmgmt.rb
98
+ - lib/vagrant-hypconfigmgmt/.command.rb.swo
55
99
  - lib/vagrant-hypconfigmgmt/command.rb
56
100
  - lib/vagrant-hypconfigmgmt/config.rb
57
101
  - lib/vagrant-hypconfigmgmt/version.rb
58
- - pkg/vagrant-hypconfigmgmt-0.0.1.gem
102
+ - pkg/vagrant-hypconfigmgmt-0.0.2.gem
103
+ - spec/spec_helper.rb
104
+ - spec/unit/command/call_spec.rb
105
+ - spec/unit/command/configure_magento_spec.rb
106
+ - spec/unit/command/configure_php_spec.rb
107
+ - spec/unit/command/configure_synced_folders_spec.rb
108
+ - spec/unit/command/configure_vagrant_spec.rb
109
+ - spec/unit/command/configure_varnish_spec.rb
110
+ - spec/unit/command/ensure_attribute_configured_spec.rb
111
+ - spec/unit/command/ensure_magento_mounts_configured_spec.rb
112
+ - spec/unit/command/ensure_required_plugins_are_installed_spec.rb
113
+ - spec/unit/command/ensure_setting_exists_spec.rb
114
+ - spec/unit/command/ensure_settings_are_configured_spec.rb
115
+ - spec/unit/command/ensure_vagrant_box_type_configured_spec.rb
116
+ - spec/unit/command/get_magento_version_spec.rb
117
+ - spec/unit/command/get_options_string_spec.rb
118
+ - spec/unit/command/get_php_version_spec.rb
119
+ - spec/unit/command/get_setting_spec.rb
120
+ - spec/unit/command/get_varnish_state_spec.rb
121
+ - spec/unit/command/inform_if_gatling_not_installed_spec.rb
122
+ - spec/unit/command/retrieve_settings_spec.rb
123
+ - spec/unit/command/update_settings_spec.rb
124
+ - spec/unit/command/use_default_input_if_input_empty_spec.rb
125
+ - spec/unit/command/validate_magento2_root_spec.rb
59
126
  - vagrant-hypconfigmgmt.gemspec
60
127
  homepage: https://github.com/ByteInternet/hypernode-vagrant
61
128
  licenses: