tetra 1.2.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. data/CONTRIBUTING.md +11 -0
  2. data/Gemfile.lock +24 -2
  3. data/README.md +11 -16
  4. data/SPECIAL_CASES.md +15 -2
  5. data/lib/template/kit.spec +2 -0
  6. data/lib/template/package.spec +2 -2
  7. data/lib/tetra.rb +4 -1
  8. data/lib/tetra/facades/bash.rb +6 -2
  9. data/lib/tetra/facades/git.rb +35 -20
  10. data/lib/tetra/facades/process_runner.rb +2 -0
  11. data/lib/tetra/facades/tar.rb +14 -0
  12. data/lib/tetra/facades/unzip.rb +14 -0
  13. data/lib/tetra/packages/package.rb +2 -1
  14. data/lib/tetra/project.rb +25 -88
  15. data/lib/tetra/project_initer.rb +90 -0
  16. data/lib/tetra/ui/change_sources_subcommand.rb +32 -0
  17. data/lib/tetra/ui/dry_run_subcommand.rb +5 -4
  18. data/lib/tetra/ui/generate_all_subcommand.rb +0 -2
  19. data/lib/tetra/ui/generate_spec_subcommand.rb +1 -0
  20. data/lib/tetra/ui/init_subcommand.rb +25 -4
  21. data/lib/tetra/ui/main.rb +6 -6
  22. data/lib/tetra/ui/patch_subcommand.rb +2 -2
  23. data/lib/tetra/ui/subcommand.rb +1 -1
  24. data/lib/tetra/version.rb +1 -1
  25. data/spec/data/commons-collections-3.2.1-src.tar.gz +0 -0
  26. data/{integration-tests → spec/data}/commons-collections-3.2.1-src.zip +0 -0
  27. data/spec/lib/coarse/dry_run_subcommand_spec.rb +31 -0
  28. data/spec/lib/coarse/generate_all_subcommand_spec.rb +128 -0
  29. data/spec/lib/coarse/generate_spec_subcommand_spec.rb +29 -0
  30. data/spec/lib/coarse/init_subcommand_spec.rb +85 -0
  31. data/spec/lib/coarse/main_spec.rb +19 -0
  32. data/spec/lib/{ant_spec.rb → fine/ant_spec.rb} +0 -0
  33. data/spec/lib/{git_spec.rb → fine/git_spec.rb} +54 -6
  34. data/spec/lib/{kit_package_spec.rb → fine/kit_package_spec.rb} +0 -0
  35. data/spec/lib/{kit_spec.rb → fine/kit_spec.rb} +0 -0
  36. data/spec/lib/{maven_website_spec.rb → fine/maven_website_spec.rb} +0 -0
  37. data/spec/lib/{mvn_spec.rb → fine/mvn_spec.rb} +0 -0
  38. data/spec/lib/{package_spec.rb → fine/package_spec.rb} +7 -0
  39. data/spec/lib/{pom_getter_spec.rb → fine/pom_getter_spec.rb} +0 -0
  40. data/spec/lib/{pom_spec.rb → fine/pom_spec.rb} +0 -0
  41. data/spec/lib/{project_spec.rb → fine/project_spec.rb} +1 -39
  42. data/spec/lib/{scriptable_spec.rb → fine/scriptable_spec.rb} +0 -0
  43. data/spec/lib/{speccable_spec.rb → fine/speccable_spec.rb} +0 -0
  44. data/spec/lib/fine/tar_spec.rb +22 -0
  45. data/spec/lib/fine/unzip_spec.rb +22 -0
  46. data/spec/lib/{version_matcher_spec.rb → fine/version_matcher_spec.rb} +0 -0
  47. data/spec/spec_helper.rb +19 -2
  48. data/tetra.gemspec +1 -0
  49. metadata +45 -19
  50. data/integration-tests/build-commons.sh +0 -30
  51. data/lib/template/gitignore +0 -2
  52. data/lib/tetra/ui/generate_archive_subcommand.rb +0 -16
@@ -0,0 +1,85 @@
1
+ require "spec_helper"
2
+
3
+ describe "`tetra`", type: :aruba do
4
+ it "shows an error if required parameters are not set" do
5
+ run_simple("tetra init", false)
6
+
7
+ expect(stderr_from("tetra init")).to include("parameter 'PACKAGE_NAME': no value provided")
8
+ end
9
+
10
+ it "shows an error if required parameters are not set, even if options are set" do
11
+ run_simple("tetra init -n", false)
12
+
13
+ expect(stderr_from("tetra init -n")).to include("parameter 'PACKAGE_NAME': no value provided")
14
+ end
15
+
16
+ it "shows an error if no sources are specified and -n is not set" do
17
+ run_simple("tetra init mypackage", false)
18
+
19
+ expect(stderr_from("tetra init mypackage")).to include("please specify a source archive")
20
+
21
+ check_directory_presence(["mypackage"], false)
22
+ end
23
+
24
+ it "inits a new project without sources" do
25
+ run_simple("tetra init --no-archive mypackage")
26
+
27
+ expect(output_from("tetra init --no-archive mypackage")).to include("Project inited in mypackage/.")
28
+
29
+ check_directory_presence(["mypackage"], true)
30
+ cd("mypackage")
31
+ check_directory_presence([".git", "kit", "src"], true)
32
+ end
33
+
34
+ it "inits a new project with a zip source file" do
35
+ archive_contents = File.read(File.join("spec", "data", "commons-collections-3.2.1-src.zip"))
36
+ write_file("commons-collections.zip", archive_contents)
37
+
38
+ run_simple("tetra init commons-collections commons-collections.zip")
39
+
40
+ output = output_from("tetra init commons-collections commons-collections.zip")
41
+ expect(output).to include("Project inited in commons-collections/.")
42
+ expect(output).to include("Sources decompressed in commons-collections/src/")
43
+ expect(output).to include("original archive copied in commons-collections/packages/.")
44
+ expect(output).to include("Please add any other precompiled build dependency to kit/.")
45
+
46
+ check_directory_presence(["commons-collections"], true)
47
+
48
+ cd("commons-collections")
49
+ check_directory_presence([".git", "kit", "src", "packages"], true)
50
+
51
+ check_directory_presence([File.join("src", "commons-collections-3.2.1-src")], true)
52
+ check_file_presence([File.join("src", "commons-collections-3.2.1-src", "pom.xml")], true)
53
+
54
+ check_file_presence([File.join("packages", "commons-collections", "commons-collections.zip")], true)
55
+
56
+ run_simple("git rev-list --format=%B --max-count=1 HEAD")
57
+ expect(stdout_from("git rev-list --format=%B --max-count=1 HEAD")).to include("Inital sources added from archive")
58
+ end
59
+
60
+ it "inits a new project with a tar source file" do
61
+ archive_contents = File.read(File.join("spec", "data", "commons-collections-3.2.1-src.tar.gz"))
62
+ write_file("commons-collections.tar.gz", archive_contents)
63
+
64
+ run_simple("tetra init commons-collections commons-collections.tar.gz")
65
+
66
+ output = output_from("tetra init commons-collections commons-collections.tar.gz")
67
+ expect(output).to include("Project inited in commons-collections/.")
68
+ expect(output).to include("Sources decompressed in commons-collections/src/")
69
+ expect(output).to include("original archive copied in commons-collections/packages/.")
70
+ expect(output).to include("Please add any other precompiled build dependency to kit/.")
71
+
72
+ check_directory_presence(["commons-collections"], true)
73
+
74
+ cd("commons-collections")
75
+ check_directory_presence([".git", "kit", "src", "packages"], true)
76
+
77
+ check_directory_presence([File.join("src", "commons-collections-3.2.1-src")], true)
78
+ check_file_presence([File.join("src", "commons-collections-3.2.1-src", "pom.xml")], true)
79
+
80
+ check_file_presence([File.join("packages", "commons-collections", "commons-collections.tar.gz")], true)
81
+
82
+ run_simple("git rev-list --format=%B --max-count=1 HEAD")
83
+ expect(stdout_from("git rev-list --format=%B --max-count=1 HEAD")).to include("Inital sources added from archive")
84
+ end
85
+ end
@@ -0,0 +1,19 @@
1
+ require "spec_helper"
2
+
3
+ describe "`tetra`", type: :aruba do
4
+ it "lists subcommands" do
5
+ run_simple("tetra")
6
+
7
+ expect(stdout_from("tetra")).to include("Usage:")
8
+
9
+ expect(stdout_from("tetra")).to include("init")
10
+ expect(stdout_from("tetra")).to include("dry-run")
11
+ expect(stdout_from("tetra")).to include("generate-kit")
12
+ expect(stdout_from("tetra")).to include("generate-script")
13
+ expect(stdout_from("tetra")).to include("generate-spec")
14
+ expect(stdout_from("tetra")).to include("generate-all")
15
+ expect(stdout_from("tetra")).to include("patch")
16
+ expect(stdout_from("tetra")).to include("move-jars-to-kit")
17
+ expect(stdout_from("tetra")).to include("get-pom")
18
+ end
19
+ end
@@ -38,19 +38,67 @@ describe Tetra::Git do
38
38
  end
39
39
  end
40
40
 
41
- describe "#commit_whole_directory" do
42
- it "commits all contents of a directory to git for later use" do
41
+ describe "#commit_directories" do
42
+ it "commits contents of multiple directories to git for later use" do
43
43
  Dir.chdir(@git_path) do
44
44
  FileUtils.touch("file1")
45
- Dir.mkdir("subdir")
46
- FileUtils.touch(File.join("subdir", "file2"))
45
+ Dir.mkdir("subdir1")
46
+ FileUtils.touch(File.join("subdir1", "file2"))
47
+ Dir.mkdir("subdir2")
48
+ FileUtils.touch(File.join("subdir2", "file3"))
47
49
 
48
- @git.commit_whole_directory("subdir", "test")
50
+ @git.commit_directories(%w(subdir1 subdir2), "test")
49
51
 
50
52
  files = `git ls-tree --name-only -r HEAD`.split("\n")
51
53
 
52
54
  expect(files).not_to include("file1")
53
- expect(files).to include("subdir/file2")
55
+ expect(files).to include("subdir1/file2")
56
+ expect(files).to include("subdir2/file3")
57
+ end
58
+ end
59
+ end
60
+
61
+ describe "#revert_directories" do
62
+ it "reverts contents of multiple directories from git" do
63
+ Dir.chdir(@git_path) do
64
+ FileUtils.touch("expected_file")
65
+ Dir.mkdir("subdir1")
66
+ FileUtils.touch(File.join("subdir1", "expected_file"))
67
+ Dir.mkdir("subdir2")
68
+ FileUtils.touch(File.join("subdir2", "expected_file"))
69
+ @git.commit_directories(["."], "test-start")
70
+
71
+ FileUtils.touch(File.join("subdir1", "unexpected_file"))
72
+ FileUtils.touch(File.join("subdir2", "unexpected_file"))
73
+
74
+ @git.commit_directories(%w(subdir1 subdir2), "test-end")
75
+
76
+ @git.revert_directories(%w(subdir1 subdir2), @git.latest_id("test-start"))
77
+
78
+ files = Find.find(".").to_a
79
+
80
+ expect(files).to include("./expected_file")
81
+ expect(files).to include("./subdir1/expected_file")
82
+ expect(files).to include("./subdir2/expected_file")
83
+ expect(files).not_to include("./subdir1/unexpected_file")
84
+ expect(files).not_to include("./subdir2/unexpected_file")
85
+ end
86
+ end
87
+ end
88
+
89
+ describe "#disable_special_files" do
90
+ it "renames git special files to 'disable' them" do
91
+ Dir.chdir(@git_path) do
92
+ Dir.mkdir("src")
93
+ FileUtils.touch(File.join("src", ".gitignore"))
94
+ Dir.mkdir(File.join("src", ".git"))
95
+
96
+ @git.disable_special_files("src")
97
+
98
+ files = Dir.new("src").to_a
99
+
100
+ expect(files).not_to include(".gitignore")
101
+ expect(files).not_to include(".git")
54
102
  end
55
103
  end
56
104
  end
@@ -7,6 +7,12 @@ describe Tetra::Package do
7
7
 
8
8
  before(:each) do
9
9
  create_mock_project
10
+
11
+ Dir.chdir(@project_path) do
12
+ FileUtils.mkdir_p(File.join("packages", "test-project"))
13
+ FileUtils.touch(File.join("packages", "test-project", "test-project-4.0.tar.gz"))
14
+ end
15
+
10
16
  @project.dry_run
11
17
  Dir.chdir(@project_path) do
12
18
  FileUtils.touch(File.join("kit", "jars", "test.jar"))
@@ -51,6 +57,7 @@ describe Tetra::Package do
51
57
  expect(spec_lines).to include("License: The Apache Software License, Version 2.0\n")
52
58
  expect(spec_lines).to include("Summary: Nailgun is a client, protocol, and server for running Java\n")
53
59
  expect(spec_lines).to include("Url: http://martiansoftware.com/nailgun\n")
60
+ expect(spec_lines).to include("Source0: test-project-4.0.tar.gz\n")
54
61
  expect(spec_lines).to include("BuildRequires: test-project-kit == #{@project.version}\n")
55
62
  expect(spec_lines).to include("Provides: mvn(com.martiansoftware:nailgun-server) == 0.9.1\n")
56
63
  expect(spec_lines).to include("Provides: mvn(com.martiansoftware:nailgun-examples) == 0.9.1\n")
@@ -96,26 +96,6 @@ describe Tetra::Project do
96
96
  end
97
97
  end
98
98
 
99
- describe "#commit_whole_directory" do
100
- it "commits the project contents to git for later use" do
101
- @project.from_directory do
102
- FileUtils.touch(File.join("kit", "test"))
103
-
104
- # check that gitignore files are moved correctly
105
- File.open(File.join("src", ".gitignore"), "w") do |file|
106
- file.write "file"
107
- end
108
-
109
- @project.commit_whole_directory(".", "test")
110
-
111
- files = `git ls-tree --name-only -r HEAD`.split("\n")
112
- expect(files).to include("src/.gitignore_disabled_by_tetra")
113
-
114
- expect(`git rev-list --all`.split("\n").length).to eq 2
115
- end
116
- end
117
- end
118
-
119
99
  describe "#finish" do
120
100
  it "ends the current dry-run phase after a successful build" do
121
101
  @project.from_directory do
@@ -217,24 +197,6 @@ describe Tetra::Project do
217
197
  end
218
198
  end
219
199
 
220
- describe "#archive_source" do
221
- it "archives the latest source version" do
222
- @project.from_directory do
223
- FileUtils.touch(File.join("src", "Included.java"))
224
- @project.commit_sources("first version", true)
225
-
226
- FileUtils.touch(File.join("src", "Excluded.java"))
227
- @project.commit_sources("patched version")
228
-
229
- @project.archive_sources
230
-
231
- file_list = `tar --list -f packages/test-project/test-project.tar.xz`.split
232
- expect(file_list).to include("src/Included.java")
233
- expect(file_list).not_to include("src/Excluded.java")
234
- end
235
- end
236
- end
237
-
238
200
  describe "#write_source_patches" do
239
201
  it "writes patches from the tarball generated by archive_source" do
240
202
  @project.from_directory do
@@ -243,7 +205,7 @@ describe Tetra::Project do
243
205
  @project.commit_sources("first version", true)
244
206
 
245
207
  File.open(test_file, "w") { |f| f.write("A") }
246
- @project.commit_sources("patched version")
208
+ @project.commit_sources("patched version", false)
247
209
 
248
210
  patches = @project.write_source_patches.map { |f| File.basename(f) }
249
211
  expect(patches).to include("0001-patched-version.patch")
@@ -0,0 +1,22 @@
1
+ # encoding: UTF-8
2
+
3
+ require "spec_helper"
4
+
5
+ describe Tetra::Tar do
6
+ include Tetra::Mockers
7
+
8
+ let(:zipfile) { File.join("spec", "data", "commons-collections-3.2.1-src.tar.gz") }
9
+ let(:tar) { Tetra::Tar.new }
10
+
11
+ describe "#decompress" do
12
+ it "decompresses a file in a directory" do
13
+ Dir.mktmpdir do |dir|
14
+ tar.decompress(zipfile, dir)
15
+
16
+ files = Find.find(dir).to_a
17
+
18
+ expect(files).to include("#{dir}/commons-collections-3.2.1-src/DEVELOPERS-GUIDE.html")
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ # encoding: UTF-8
2
+
3
+ require "spec_helper"
4
+
5
+ describe Tetra::Unzip do
6
+ include Tetra::Mockers
7
+
8
+ let(:zipfile) { File.join("spec", "data", "commons-collections-3.2.1-src.zip") }
9
+ let(:unzip) { Tetra::Unzip.new }
10
+
11
+ describe "#decompress" do
12
+ it "decompresses a file in a directory" do
13
+ Dir.mktmpdir do |dir|
14
+ unzip.decompress(zipfile, dir)
15
+
16
+ files = Find.find(dir).to_a
17
+
18
+ expect(files).to include("#{dir}/commons-collections-3.2.1-src/DEVELOPERS-GUIDE.html")
19
+ end
20
+ end
21
+ end
22
+ end
@@ -1,15 +1,32 @@
1
1
  # encoding: UTF-8
2
2
 
3
+ require "aruba/api"
4
+ require "aruba/reporting"
5
+
3
6
  require "tetra"
4
7
 
8
+ # configure aruba for rspec use
9
+ RSpec.configure do |config|
10
+ config.include Aruba::Api
11
+
12
+ # use tetra executable from the bin path, not the system-installed one
13
+ config.before(:suite) do
14
+ ENV["PATH"] = "#{File.join(File.dirname(__FILE__), '..', 'bin')}#{File::PATH_SEPARATOR}#{ENV['PATH']}"
15
+ end
16
+
17
+ # set up aruba API
18
+ config.before(:each) do
19
+ restore_env
20
+ clean_current_dir
21
+ end
22
+ end
23
+
5
24
  module Tetra
6
25
  # custom mock methods
7
26
  module Mockers
8
27
  # creates a minimal tetra project
9
28
  def create_mock_project
10
29
  @project_path = File.join("spec", "data", "test-project")
11
- Dir.mkdir(@project_path)
12
-
13
30
  Tetra::Project.init(@project_path, false)
14
31
  @project = Tetra::Project.new(@project_path)
15
32
  end
@@ -21,6 +21,7 @@ Gem::Specification.new do |s|
21
21
 
22
22
  s.add_development_dependency "rake"
23
23
  s.add_development_dependency "rspec"
24
+ s.add_development_dependency "aruba"
24
25
 
25
26
  s.add_runtime_dependency "clamp"
26
27
  s.add_runtime_dependency "json_pure"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tetra
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 2.0.0
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: 2015-06-08 00:00:00.000000000 Z
12
+ date: 2015-07-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -43,6 +43,22 @@ dependencies:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: aruba
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
46
62
  - !ruby/object:Gem::Dependency
47
63
  name: clamp
48
64
  requirement: !ruby/object:Gem::Requirement
@@ -134,6 +150,7 @@ extra_rdoc_files: []
134
150
  files:
135
151
  - .gitignore
136
152
  - .rubocop.yml
153
+ - CONTRIBUTING.md
137
154
  - Gemfile
138
155
  - Gemfile.lock
139
156
  - LICENSE
@@ -142,8 +159,6 @@ files:
142
159
  - Rakefile
143
160
  - SPECIAL_CASES.md
144
161
  - bin/tetra
145
- - integration-tests/build-commons.sh
146
- - integration-tests/commons-collections-3.2.1-src.zip
147
162
  - lib/template/bashrc
148
163
  - lib/template/bundled/apache-ant-1.9.4/INSTALL
149
164
  - lib/template/bundled/apache-ant-1.9.4/KEYS
@@ -311,7 +326,6 @@ files:
311
326
  - lib/template/bundled/apache-maven-3.2.5/lib/wagon-http.license
312
327
  - lib/template/bundled/apache-maven-3.2.5/lib/wagon-provider-api-2.8.jar
313
328
  - lib/template/bundled/apache-maven-3.2.5/lib/wagon-provider-api.license
314
- - lib/template/gitignore
315
329
  - lib/template/kit.spec
316
330
  - lib/template/kit/.keep
317
331
  - lib/template/kit/jars/.keep
@@ -325,6 +339,8 @@ files:
325
339
  - lib/tetra/facades/git.rb
326
340
  - lib/tetra/facades/mvn.rb
327
341
  - lib/tetra/facades/process_runner.rb
342
+ - lib/tetra/facades/tar.rb
343
+ - lib/tetra/facades/unzip.rb
328
344
  - lib/tetra/generatable.rb
329
345
  - lib/tetra/kit.rb
330
346
  - lib/tetra/logger.rb
@@ -336,9 +352,10 @@ files:
336
352
  - lib/tetra/pom.rb
337
353
  - lib/tetra/pom_getter.rb
338
354
  - lib/tetra/project.rb
355
+ - lib/tetra/project_initer.rb
356
+ - lib/tetra/ui/change_sources_subcommand.rb
339
357
  - lib/tetra/ui/dry_run_subcommand.rb
340
358
  - lib/tetra/ui/generate_all_subcommand.rb
341
- - lib/tetra/ui/generate_archive_subcommand.rb
342
359
  - lib/tetra/ui/generate_kit_subcommand.rb
343
360
  - lib/tetra/ui/generate_script_subcommand.rb
344
361
  - lib/tetra/ui/generate_spec_subcommand.rb
@@ -359,6 +376,8 @@ files:
359
376
  - spec/data/ant-super-simple-code/src/mypackage/HW.java
360
377
  - spec/data/antlr/antlr-2.7.2.jar
361
378
  - spec/data/antlr/pom.xml
379
+ - spec/data/commons-collections-3.2.1-src.tar.gz
380
+ - spec/data/commons-collections-3.2.1-src.zip
362
381
  - spec/data/commons-logging/commons-logging-1.1.1.jar
363
382
  - spec/data/commons-logging/parent_pom.xml
364
383
  - spec/data/commons-logging/pom.xml
@@ -366,19 +385,26 @@ files:
366
385
  - spec/data/nailgun/pom.xml
367
386
  - spec/data/struts-apps/pom.xml
368
387
  - spec/data/tomcat/pom.xml
369
- - spec/lib/ant_spec.rb
370
- - spec/lib/git_spec.rb
371
- - spec/lib/kit_package_spec.rb
372
- - spec/lib/kit_spec.rb
373
- - spec/lib/maven_website_spec.rb
374
- - spec/lib/mvn_spec.rb
375
- - spec/lib/package_spec.rb
376
- - spec/lib/pom_getter_spec.rb
377
- - spec/lib/pom_spec.rb
378
- - spec/lib/project_spec.rb
379
- - spec/lib/scriptable_spec.rb
380
- - spec/lib/speccable_spec.rb
381
- - spec/lib/version_matcher_spec.rb
388
+ - spec/lib/coarse/dry_run_subcommand_spec.rb
389
+ - spec/lib/coarse/generate_all_subcommand_spec.rb
390
+ - spec/lib/coarse/generate_spec_subcommand_spec.rb
391
+ - spec/lib/coarse/init_subcommand_spec.rb
392
+ - spec/lib/coarse/main_spec.rb
393
+ - spec/lib/fine/ant_spec.rb
394
+ - spec/lib/fine/git_spec.rb
395
+ - spec/lib/fine/kit_package_spec.rb
396
+ - spec/lib/fine/kit_spec.rb
397
+ - spec/lib/fine/maven_website_spec.rb
398
+ - spec/lib/fine/mvn_spec.rb
399
+ - spec/lib/fine/package_spec.rb
400
+ - spec/lib/fine/pom_getter_spec.rb
401
+ - spec/lib/fine/pom_spec.rb
402
+ - spec/lib/fine/project_spec.rb
403
+ - spec/lib/fine/scriptable_spec.rb
404
+ - spec/lib/fine/speccable_spec.rb
405
+ - spec/lib/fine/tar_spec.rb
406
+ - spec/lib/fine/unzip_spec.rb
407
+ - spec/lib/fine/version_matcher_spec.rb
382
408
  - spec/spec_helper.rb
383
409
  - tetra.gemspec
384
410
  - utils/delete_nonet_user.sh