tetra 1.2.2 → 2.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.
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