boxen 0.0.0

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.
@@ -0,0 +1,29 @@
1
+ require "boxen/test"
2
+ require "boxen/postflight"
3
+
4
+ class BoxenPostflightActiveTest < Boxen::Test
5
+ def setup
6
+ @check = Boxen::Postflight::Active.new :config
7
+ end
8
+
9
+ def test_ok?
10
+ Boxen::Util.expects(:active?).returns true
11
+ assert @check.ok?
12
+ end
13
+
14
+ def test_ok_bad
15
+ Boxen::Util.expects(:active?).returns false
16
+ refute @check.ok?
17
+ end
18
+
19
+ def test_run
20
+ config = stub :envfile => "foo"
21
+ @check = Boxen::Postflight::Active.new config
22
+
23
+ stdout, stderr = capture_io do
24
+ @check.run
25
+ end
26
+
27
+ assert_match "loaded", stderr
28
+ end
29
+ end
@@ -0,0 +1,6 @@
1
+ require "boxen/test"
2
+ require "boxen/postflight"
3
+
4
+ class BoxenPostflightEnvTest < Boxen::Test
5
+
6
+ end
@@ -0,0 +1,21 @@
1
+ require "boxen/test"
2
+ require "boxen/project"
3
+
4
+ class BoxenProjectTest < Boxen::Test
5
+ def test_initialize
6
+ project = Boxen::Project.new "foo"
7
+ assert_equal "foo", project.dir
8
+ end
9
+
10
+ def test_installed?
11
+ project = Boxen::Project.new "foo"
12
+
13
+ File.expects(:directory?).with("foo").returns true
14
+ assert project.installed?
15
+ end
16
+
17
+ def test_name
18
+ project = Boxen::Project.new "foo/bar/baz"
19
+ assert_equal "baz", project.name
20
+ end
21
+ end
@@ -0,0 +1,77 @@
1
+ require "boxen/test"
2
+ require "boxen/puppeteer"
3
+
4
+ class BoxenPuppeteerTest < Boxen::Test
5
+ def test_initialize
6
+ puppet = Boxen::Puppeteer.new :config
7
+ assert_equal :config, puppet.config
8
+ end
9
+
10
+ def test_flags
11
+ config = stub do
12
+ stubs(:homedir).returns "homedir"
13
+ stubs(:logfile).returns "logfile"
14
+ stubs(:profile?).returns true
15
+ stubs(:puppetdir).returns "puppetdir"
16
+ stubs(:repodir).returns "repodir"
17
+ stubs(:debug?).returns true
18
+ stubs(:pretend?).returns true
19
+ end
20
+
21
+ puppet = Boxen::Puppeteer.new config
22
+ flags = puppet.flags
23
+
24
+ assert_flag "--debug", flags
25
+ assert_flag "--detailed-exitcodes", flags
26
+ assert_flag "--evaltrace", flags
27
+ assert_flag "--no-report", flags
28
+ assert_flag "--noop", flags
29
+ assert_flag "--summarize", flags
30
+
31
+ assert_flag_value "--confdir", :anything, flags
32
+ assert_flag_value "--vardir", :anything, flags
33
+ assert_flag_value "--libdir", :anything, flags
34
+ assert_flag_value "--manifestdir", :anything, flags
35
+ assert_flag_value "--modulepath", :anything, flags
36
+
37
+ assert_flag_value "--logdest", "logfile", flags
38
+ assert_flag_value "--logdest", "console", flags
39
+ end
40
+
41
+ def test_run
42
+ config = stub do
43
+ stubs(:debug?).returns false
44
+ stubs(:homedir).returns "homedir"
45
+ stubs(:logfile).returns "logfile"
46
+ stubs(:pretend?).returns false
47
+ stubs(:profile?).returns false
48
+ stubs(:puppetdir).returns "puppetdir"
49
+ stubs(:repodir).returns "test/fixtures/repo"
50
+ end
51
+
52
+ puppet = Boxen::Puppeteer.new config
53
+
54
+ FileUtils.expects(:rm_f).with config.logfile
55
+ FileUtils.expects(:touch).with config.logfile
56
+ FileUtils.expects(:mkdir_p).with File.dirname(config.logfile)
57
+ FileUtils.expects(:mkdir_p).with config.puppetdir
58
+ Boxen::Util.expects(:sudo).with *puppet.command
59
+
60
+ puppet.run
61
+ end
62
+
63
+ def assert_flag(flag, flags)
64
+ assert flags.include?(flag), "Flags must include #{flag}."
65
+ end
66
+
67
+ def assert_flag_value(flag, value, flags)
68
+ pair = [flag, value]
69
+
70
+ found = (0..flags.size).detect do |i|
71
+ candidate = flags[i, pair.size]
72
+ value == :anything ? candidate.size == pair.size : candidate == pair
73
+ end
74
+
75
+ assert found, "Flags must include #{flag} #{value}."
76
+ end
77
+ end
@@ -0,0 +1,21 @@
1
+ require "boxen/test"
2
+ require "boxen/util"
3
+
4
+ class BoxenUtilTest < Boxen::Test
5
+ def test_self_active?
6
+ ENV.expects(:include?).with("BOXEN_HOME").returns true
7
+ assert Boxen::Util.active?
8
+ end
9
+
10
+ def test_self_active_disabled
11
+ ENV.expects(:include?).with("BOXEN_HOME").returns false
12
+ refute Boxen::Util.active?
13
+ end
14
+
15
+ def test_self_sudo
16
+ Boxen::Util.expects(:system).
17
+ with "sudo", "-p", "Password for sudo: ", "echo", "foo"
18
+
19
+ Boxen::Util.sudo "echo", "foo"
20
+ end
21
+ end
@@ -0,0 +1,10 @@
1
+ # THIS IS SUCH HAX. Faraday helpfully reminds you to install
2
+ # `system_timer` if you're running Ruby 1.8, since Timeout can give
3
+ # unreliable results. We can't do this during first-time runs, since
4
+ # there's no C compiler available.
5
+ #
6
+ # To squash the message and stop confusing people, this shim just
7
+ # exposes Timeout as SystemTimer. I'm a bad person.
8
+
9
+ require "timeout"
10
+ SystemTimer = Timeout
metadata ADDED
@@ -0,0 +1,211 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: boxen
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - John Barnette
9
+ - Will Farrington
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-10-03 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: ansi
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: '1.4'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: '1.4'
31
+ - !ruby/object:Gem::Dependency
32
+ name: highline
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ~>
37
+ - !ruby/object:Gem::Version
38
+ version: '1.6'
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: '1.6'
47
+ - !ruby/object:Gem::Dependency
48
+ name: json_pure
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.7'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: '1.7'
63
+ - !ruby/object:Gem::Dependency
64
+ name: octokit
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ~>
69
+ - !ruby/object:Gem::Version
70
+ version: '1.15'
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: '1.15'
79
+ - !ruby/object:Gem::Dependency
80
+ name: puppet
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ~>
85
+ - !ruby/object:Gem::Version
86
+ version: '3.0'
87
+ type: :runtime
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ~>
93
+ - !ruby/object:Gem::Version
94
+ version: '3.0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: minitest
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - '='
101
+ - !ruby/object:Gem::Version
102
+ version: 3.5.0
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - '='
109
+ - !ruby/object:Gem::Version
110
+ version: 3.5.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: mocha
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ~>
117
+ - !ruby/object:Gem::Version
118
+ version: '0.12'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ~>
125
+ - !ruby/object:Gem::Version
126
+ version: '0.12'
127
+ description: Manage Mac development boxes with love (and Puppet).
128
+ email:
129
+ - jbarnette@github.com
130
+ - wfarr@github.com
131
+ executables: []
132
+ extensions: []
133
+ extra_rdoc_files: []
134
+ files:
135
+ - .gitignore
136
+ - Gemfile
137
+ - Gemfile.lock
138
+ - LICENSE
139
+ - README.md
140
+ - boxen.gemspec
141
+ - lib/boxen/check.rb
142
+ - lib/boxen/cli.rb
143
+ - lib/boxen/config.rb
144
+ - lib/boxen/error.rb
145
+ - lib/boxen/flags.rb
146
+ - lib/boxen/postflight.rb
147
+ - lib/boxen/postflight/active.rb
148
+ - lib/boxen/postflight/env.rb
149
+ - lib/boxen/preflight.rb
150
+ - lib/boxen/preflight/creds.rb
151
+ - lib/boxen/preflight/etc_my_cnf.rb
152
+ - lib/boxen/preflight/homebrew.rb
153
+ - lib/boxen/preflight/identity.rb
154
+ - lib/boxen/preflight/os.rb
155
+ - lib/boxen/preflight/rbenv.rb
156
+ - lib/boxen/project.rb
157
+ - lib/boxen/puppeteer.rb
158
+ - lib/boxen/util.rb
159
+ - script/bootstrap
160
+ - script/tests
161
+ - test/boxen/test.rb
162
+ - test/boxen_check_test.rb
163
+ - test/boxen_cli_test.rb
164
+ - test/boxen_config_test.rb
165
+ - test/boxen_flags_test.rb
166
+ - test/boxen_postflight_active_test.rb
167
+ - test/boxen_postflight_env_test.rb
168
+ - test/boxen_project_test.rb
169
+ - test/boxen_puppeteer_test.rb
170
+ - test/boxen_util_test.rb
171
+ - test/fixtures/repo/modules/projects/manifests/first-project.pp
172
+ - test/fixtures/repo/modules/projects/manifests/second-project.pp
173
+ - test/system_timer.rb
174
+ homepage: https://github.com/boxen/boxen
175
+ licenses: []
176
+ post_install_message:
177
+ rdoc_options: []
178
+ require_paths:
179
+ - lib
180
+ required_ruby_version: !ruby/object:Gem::Requirement
181
+ none: false
182
+ requirements:
183
+ - - ! '>='
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
186
+ required_rubygems_version: !ruby/object:Gem::Requirement
187
+ none: false
188
+ requirements:
189
+ - - ! '>='
190
+ - !ruby/object:Gem::Version
191
+ version: '0'
192
+ requirements: []
193
+ rubyforge_project:
194
+ rubygems_version: 1.8.23
195
+ signing_key:
196
+ specification_version: 3
197
+ summary: You know, for laptops and stuff.
198
+ test_files:
199
+ - test/boxen/test.rb
200
+ - test/boxen_check_test.rb
201
+ - test/boxen_cli_test.rb
202
+ - test/boxen_config_test.rb
203
+ - test/boxen_flags_test.rb
204
+ - test/boxen_postflight_active_test.rb
205
+ - test/boxen_postflight_env_test.rb
206
+ - test/boxen_project_test.rb
207
+ - test/boxen_puppeteer_test.rb
208
+ - test/boxen_util_test.rb
209
+ - test/fixtures/repo/modules/projects/manifests/first-project.pp
210
+ - test/fixtures/repo/modules/projects/manifests/second-project.pp
211
+ - test/system_timer.rb