git_cleanser 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rspec +2 -0
- data/README.md +15 -1
- data/Rakefile +12 -0
- data/bin/git_cleanser +5 -0
- data/features/detecting_compiled_files.feature +29 -0
- data/features/detecting_ignored_but_tracked_files.feature +29 -0
- data/features/detecting_uncompiled_files.feature +25 -0
- data/features/output_formats.feature +31 -0
- data/features/step_definitions/detecting_compiled_files_steps.rb +22 -0
- data/features/step_definitions/git_files_step_definitions.rb +8 -0
- data/features/step_definitions/output_formats_step_defintions.rb +8 -0
- data/features/support/env.rb +20 -0
- data/git_cleanser.gemspec +5 -0
- data/lib/git_cleanser.rb +3 -2
- data/lib/git_cleanser/cli.rb +27 -0
- data/lib/git_cleanser/config_loader.rb +9 -0
- data/lib/git_cleanser/formatter.rb +4 -0
- data/lib/git_cleanser/formatter/human.rb +34 -0
- data/lib/git_cleanser/formatter/yaml.rb +12 -0
- data/lib/git_cleanser/smart_thing.rb +42 -0
- data/lib/git_cleanser/version.rb +1 -1
- data/spec/lib/cli_spec.rb +58 -0
- data/spec/lib/formatter/human_spec.rb +9 -0
- data/spec/lib/formatter/yaml_spec.rb +30 -0
- data/spec/spec_helper.rb +24 -0
- metadata +107 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2ae5b34a095ef77959d687f118ae624562f8c1b1
|
4
|
+
data.tar.gz: c9bad03944efe7f819f1874608bab11cf521a20a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1762aab44dccae1af7f15ea993fe9ff84c0e7765db6f25acf8c2fd68b494b99b272b95cc3dc7daf961c36d6eba2a496d4a49cebfb7139f753b1d83efe4e929bd
|
7
|
+
data.tar.gz: e46f767cf51469c1732b55bafd0a2edf15a93810c39a6b3fe84137de8fc6ab50492d2efca2ba856cd861c96e7b90cfd32414eda31ed9f769a0ce8443ce518d6f
|
data/.rspec
ADDED
data/README.md
CHANGED
@@ -1,6 +1,20 @@
|
|
1
1
|
# GitCleanser
|
2
2
|
|
3
|
-
|
3
|
+
It's not ideal, but we've all worked with repositories containing compiled
|
4
|
+
files and their source code. When there are 5 files and they follow a naming
|
5
|
+
convention, it's easily fixable. When there are 1,000 files and they are all
|
6
|
+
named differently, fixing it seems insurmountable. This tool helps iteratively
|
7
|
+
remove these files from your repository in the later case.
|
8
|
+
|
9
|
+
## Todo
|
10
|
+
|
11
|
+
- [x] Add an option for human readable or YAML output
|
12
|
+
- [ ] Set up CI
|
13
|
+
- [ ] Put some examples in the README
|
14
|
+
- [x] Check that things added to .gitignore are also `git rm`ed
|
15
|
+
- [ ] Add a filter for files so that you can specify *.css or *.js or what have you
|
16
|
+
- [ ] Handle checked in library files
|
17
|
+
- [ ] The exit code returns an error if any files are yet to be dealth with (for CI)
|
4
18
|
|
5
19
|
## Installation
|
6
20
|
|
data/Rakefile
CHANGED
@@ -1,2 +1,14 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
|
+
require "cucumber/rake/task"
|
2
3
|
|
4
|
+
Cucumber::Rake::Task.new do |t|
|
5
|
+
t.cucumber_opts = %w{--format pretty}
|
6
|
+
end
|
7
|
+
|
8
|
+
begin
|
9
|
+
require 'rspec/core/rake_task'
|
10
|
+
RSpec::Core::RakeTask.new(:spec)
|
11
|
+
rescue LoadError
|
12
|
+
end
|
13
|
+
|
14
|
+
task default: ['spec', 'cucumber']
|
data/bin/git_cleanser
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
Feature: Detecting compiled files
|
2
|
+
When a file is compiled but not git ignored, let the user know.
|
3
|
+
|
4
|
+
Scenario:
|
5
|
+
Given a file named "git_cleanser.yml" with:
|
6
|
+
"""
|
7
|
+
---
|
8
|
+
compiled_files_command: echo ignored_and_generated.o committed.o
|
9
|
+
"""
|
10
|
+
And a file named ".gitignore" with:
|
11
|
+
"""
|
12
|
+
ignored_and_generated.o
|
13
|
+
ignored_not_generated.o
|
14
|
+
"""
|
15
|
+
And an empty file named "ignored_and_generated.o"
|
16
|
+
And an empty file named "ignored_not_generated.o"
|
17
|
+
And an empty, tracked file named "committed.o"
|
18
|
+
When I run `git_cleanser --format=yaml`
|
19
|
+
Then the exit status should be 0
|
20
|
+
|
21
|
+
And its output for "generated_but_not_ignored" should contain "committed.o"
|
22
|
+
And its output for "generated_but_not_ignored" should not contain "ignored_and_generated.o"
|
23
|
+
And its output for "generated_but_not_ignored" should not contain "ignored_not_generated.o"
|
24
|
+
|
25
|
+
And its output for "ignored_but_not_generated" should contain "ignored_not_generated.o"
|
26
|
+
And its output for "ignored_but_not_generated" should not contain "ignored_and_generated.o"
|
27
|
+
And its output for "ignored_but_not_generated" should not contain "committed.o"
|
28
|
+
|
29
|
+
And its output for "ignored_but_tracked" should be empty
|
@@ -0,0 +1,29 @@
|
|
1
|
+
Feature: Detecting ignored but tracked files
|
2
|
+
When a file is is in the git ignore but also tracked, let the user know.
|
3
|
+
|
4
|
+
Scenario:
|
5
|
+
Given a file named "git_cleanser.yml" with:
|
6
|
+
"""
|
7
|
+
---
|
8
|
+
compiled_files_command: echo ignored.o ignored.tracked.o tracked.o
|
9
|
+
"""
|
10
|
+
And a file named ".gitignore" with:
|
11
|
+
"""
|
12
|
+
ignored.o
|
13
|
+
ignored.tracked.o
|
14
|
+
"""
|
15
|
+
And an empty file named "ignored.o"
|
16
|
+
And an empty, tracked file named "tracked.o"
|
17
|
+
And an empty, tracked file named "ignored.tracked.o"
|
18
|
+
When I run `git_cleanser --format=yaml`
|
19
|
+
Then the exit status should be 0
|
20
|
+
|
21
|
+
And its output for "ignored_but_tracked" should contain "ignored.tracked.o"
|
22
|
+
And its output for "ignored_but_tracked" should not contain "tracked.o"
|
23
|
+
And its output for "ignored_but_tracked" should not contain "ignored.o"
|
24
|
+
|
25
|
+
And its output for "generated_but_not_ignored" should contain "ignored.tracked.o"
|
26
|
+
And its output for "generated_but_not_ignored" should contain "tracked.o"
|
27
|
+
And its output for "generated_but_not_ignored" should not contain "ignored.o"
|
28
|
+
|
29
|
+
And its output for "ignored_but_not_generated" should be empty
|
@@ -0,0 +1,25 @@
|
|
1
|
+
Feature: Detecting uncompiled files
|
2
|
+
When a file is not compiled, but is tracked, let the user know.
|
3
|
+
So that they can make it automatically compiled.
|
4
|
+
|
5
|
+
Scenario:
|
6
|
+
Given a file named "git_cleanser.yml" with:
|
7
|
+
"""
|
8
|
+
---
|
9
|
+
compiled_files_command: echo generated.js
|
10
|
+
"""
|
11
|
+
And an empty file named ".gitignore"
|
12
|
+
And an empty, tracked file named "generated.js"
|
13
|
+
And an empty, tracked file named "spontaneous-generation.js"
|
14
|
+
When I run `git_cleanser --format=yaml`
|
15
|
+
Then the exit status should be 0
|
16
|
+
|
17
|
+
And its output for "generated_but_not_ignored" should contain "generated.js"
|
18
|
+
And its output for "generated_but_not_ignored" should not contain "spontaneous-generation.js"
|
19
|
+
|
20
|
+
And its output for "ignored_but_not_generated" should be empty
|
21
|
+
|
22
|
+
And its output for "ignored_but_tracked" should be empty
|
23
|
+
|
24
|
+
And its output for "uncompiled" should contain "spontaneous-generation.js"
|
25
|
+
And its output for "uncompiled" should not contain "generated.js"
|
@@ -0,0 +1,31 @@
|
|
1
|
+
Feature: Output formats
|
2
|
+
Both computers and humans can parse this output
|
3
|
+
|
4
|
+
Scenario: Default is human readable
|
5
|
+
Given a file named "git_cleanser.yml" with:
|
6
|
+
"""
|
7
|
+
---
|
8
|
+
compiled_files_command: echo style.css
|
9
|
+
"""
|
10
|
+
And an empty file named "style.css"
|
11
|
+
When I run `git_cleanser`
|
12
|
+
Then the output should contain:
|
13
|
+
"""
|
14
|
+
These files are ignored, but not compiled (maybe they should be added to the compiled files list?):
|
15
|
+
(no files)
|
16
|
+
"""
|
17
|
+
And the output should contain:
|
18
|
+
"""
|
19
|
+
These files are compiled but not ignored (maybe they should be added to .gitignore?):
|
20
|
+
style.css
|
21
|
+
"""
|
22
|
+
|
23
|
+
Scenario: YAML is available with an option
|
24
|
+
Given a file named "git_cleanser.yml" with:
|
25
|
+
"""
|
26
|
+
---
|
27
|
+
compiled_files_command: echo style.css
|
28
|
+
"""
|
29
|
+
And an empty file named "style.css"
|
30
|
+
When I run `git_cleanser --format=yaml`
|
31
|
+
Then its output is YAML
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'aruba/api'
|
2
|
+
require 'aruba/cucumber/hooks'
|
3
|
+
require 'aruba/reporting'
|
4
|
+
|
5
|
+
require 'yaml'
|
6
|
+
|
7
|
+
World(Aruba::Api)
|
8
|
+
|
9
|
+
Then(/^its output for "(.*?)" should not contain "(.*?)"$/) do |key, value|
|
10
|
+
output = YAML.load(unescape(all_output))
|
11
|
+
expect(output[key]).not_to include(value)
|
12
|
+
end
|
13
|
+
|
14
|
+
Then(/^its output for "(.*?)" should contain "(.*?)"$/) do |key, value|
|
15
|
+
output = YAML.load(unescape(all_output))
|
16
|
+
expect(output[key]).to include(value)
|
17
|
+
end
|
18
|
+
|
19
|
+
Then(/^its output for "(.*?)" should be empty$/) do |key|
|
20
|
+
output = YAML.load(unescape(all_output))
|
21
|
+
expect(output[key]).to be_empty
|
22
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'aruba'
|
2
|
+
require 'aruba/cucumber'
|
3
|
+
require 'aruba/in_process'
|
4
|
+
|
5
|
+
require 'git_cleanser'
|
6
|
+
|
7
|
+
Aruba::InProcess.main_class = GitCleanser::CLI
|
8
|
+
Aruba.process = Aruba::InProcess
|
9
|
+
|
10
|
+
# Around does not work in this case, so store the temp directory
|
11
|
+
# in a global variable to clean it up later.
|
12
|
+
Before do
|
13
|
+
$tmp_dir = Dir.mktmpdir("git_cleanser_test")
|
14
|
+
system "git init -q", chdir: $tmp_dir
|
15
|
+
@dirs = [$tmp_dir]
|
16
|
+
end
|
17
|
+
|
18
|
+
After '~@no-clobber' do
|
19
|
+
FileUtils.rm_r($tmp_dir, secure: true)
|
20
|
+
end
|
data/git_cleanser.gemspec
CHANGED
@@ -16,6 +16,11 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
17
17
|
spec.require_paths = ["lib"]
|
18
18
|
|
19
|
+
spec.add_dependency "paint", "~> 1.0.0"
|
20
|
+
spec.add_dependency "slop", "~> 4.0.0"
|
19
21
|
spec.add_development_dependency "bundler", "~> 1.7"
|
20
22
|
spec.add_development_dependency "rake", "~> 10.0"
|
23
|
+
spec.add_development_dependency "cucumber", "~> 1.3.19"
|
24
|
+
spec.add_development_dependency "rspec", "~> 3.2.0"
|
25
|
+
spec.add_development_dependency "aruba", "~> 0.6.2"
|
21
26
|
end
|
data/lib/git_cleanser.rb
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'slop'
|
2
|
+
|
3
|
+
module GitCleanser
|
4
|
+
class CLI
|
5
|
+
def initialize(argv, stdin=STDIN, stdout=STDOUT, stderr=STDERR, kernel=Kernel, config_loader=ConfigLoader.new)
|
6
|
+
@argv, @stdin, @stdout, @stderr, @kernel = argv, stdin, stdout, stderr, kernel
|
7
|
+
@config = config_loader.config
|
8
|
+
end
|
9
|
+
|
10
|
+
def execute!
|
11
|
+
smart_thing = SmartThing.new(@config)
|
12
|
+
|
13
|
+
opts = Slop.parse @argv do |o|
|
14
|
+
o.string '-f', '--format', 'output format'
|
15
|
+
end
|
16
|
+
|
17
|
+
formatter = case opts[:format]
|
18
|
+
when 'yaml'
|
19
|
+
Formatter::YAML
|
20
|
+
else
|
21
|
+
Formatter::Human
|
22
|
+
end
|
23
|
+
|
24
|
+
@stdout.puts formatter.new.format(smart_thing)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'paint'
|
2
|
+
|
3
|
+
module GitCleanser
|
4
|
+
module Formatter
|
5
|
+
class Human
|
6
|
+
KEYS = {
|
7
|
+
"generated_but_not_ignored" => "These files are compiled but not ignored (maybe they should be added to .gitignore?):",
|
8
|
+
"ignored_but_not_generated" => "These files are ignored, but not compiled (maybe they should be added to the compiled files list?):",
|
9
|
+
"ignored_but_tracked" => "These files are ignored, but also tracked (maybe they should be removed from the repo or not ignored?):",
|
10
|
+
"uncompiled" => "These files look like compilation results, but aren't yet automatically compiled (maybe they should be added to your compiler?):"
|
11
|
+
}
|
12
|
+
|
13
|
+
def format(smart_thing)
|
14
|
+
KEYS.map do |(key, message)|
|
15
|
+
format_message(message) + "\n" + format_list(smart_thing.public_send(key))
|
16
|
+
end.join("\n\n")
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def format_message message
|
22
|
+
Paint[message, :magenta]
|
23
|
+
end
|
24
|
+
|
25
|
+
def format_list list
|
26
|
+
if list.any?
|
27
|
+
list.map { |file| Paint[" #{file}", :red] }.join("\n")
|
28
|
+
else
|
29
|
+
Paint[" (no files)", :green]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module GitCleanser
|
2
|
+
module Formatter
|
3
|
+
class YAML
|
4
|
+
KEYS = ["generated_but_not_ignored", "ignored_but_not_generated", "ignored_but_tracked", "uncompiled"]
|
5
|
+
|
6
|
+
def format(smart_thing)
|
7
|
+
output = KEYS.inject({}) { |memo, this| memo[this] = smart_thing.public_send(this); memo }
|
8
|
+
::YAML.dump(output).strip
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module GitCleanser
|
2
|
+
class SmartThing
|
3
|
+
def initialize(config)
|
4
|
+
@config = config
|
5
|
+
@compiled_files = sh(@config['compiled_files_command']).split
|
6
|
+
@ignored_and_untracked_files = git_ls_files(:ignored, :other)
|
7
|
+
@ignored_but_tracked_files = git_ls_files(:ignored)
|
8
|
+
@all_files = Dir['**/*']
|
9
|
+
end
|
10
|
+
|
11
|
+
def generated_but_not_ignored
|
12
|
+
@compiled_files - @ignored_and_untracked_files
|
13
|
+
end
|
14
|
+
|
15
|
+
def ignored_but_not_generated
|
16
|
+
@ignored_and_untracked_files - @compiled_files
|
17
|
+
end
|
18
|
+
|
19
|
+
def ignored_but_tracked
|
20
|
+
@ignored_but_tracked_files
|
21
|
+
end
|
22
|
+
|
23
|
+
def uncompiled
|
24
|
+
@all_files - @compiled_files
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def git_ls_files *ruby_opts
|
30
|
+
shell_opts = ruby_opts.map { |opt| "--#{opt}" }.join(" ")
|
31
|
+
sh("git ls-files -z --exclude-standard #{shell_opts}").split("\0")
|
32
|
+
end
|
33
|
+
|
34
|
+
def sh(cmd)
|
35
|
+
`#{cmd}`.tap do
|
36
|
+
if $?.exitstatus > 0
|
37
|
+
raise "Shell command failed: " + cmd
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/lib/git_cleanser/version.rb
CHANGED
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
3
|
+
module GitCleanser
|
4
|
+
RSpec.describe CLI do
|
5
|
+
let(:stdin) { StringIO.new }
|
6
|
+
let(:stdout) { StringIO.new }
|
7
|
+
let(:stderr) { StringIO.new }
|
8
|
+
let(:config) { double("config") }
|
9
|
+
let(:config_loader) { instance_double("ConfigLoader", config: config) }
|
10
|
+
let(:smart_thing) { instance_double("SmartThing").as_null_object }
|
11
|
+
let(:formatter) { double("Formatter") }
|
12
|
+
let(:argv) { [] }
|
13
|
+
subject { CLI.new(argv, stdin, stdout, stderr, Kernel, config_loader) }
|
14
|
+
|
15
|
+
describe "output formats" do
|
16
|
+
before do
|
17
|
+
allow(SmartThing).to receive(:new).and_return(smart_thing)
|
18
|
+
end
|
19
|
+
|
20
|
+
context "when fomat is YAML" do
|
21
|
+
let(:argv) { ["--format=yaml"] }
|
22
|
+
it "prints YAML output" do
|
23
|
+
allow(Formatter::YAML).to receive(:new).and_return(formatter)
|
24
|
+
allow(formatter).to receive(:format).and_return("--- yaml")
|
25
|
+
|
26
|
+
subject.execute!
|
27
|
+
stdout.rewind
|
28
|
+
output = stdout.read
|
29
|
+
|
30
|
+
expect(output).to eq("--- yaml\n")
|
31
|
+
expect(formatter).to have_received(:format).with(smart_thing)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context "when no format is passed" do
|
36
|
+
it "prints human readable output" do
|
37
|
+
allow(Formatter::Human).to receive(:new).and_return(formatter)
|
38
|
+
allow(formatter).to receive(:format).and_return("Anglais")
|
39
|
+
|
40
|
+
subject.execute!
|
41
|
+
stdout.rewind
|
42
|
+
output = stdout.read
|
43
|
+
|
44
|
+
expect(output).to eq("Anglais\n")
|
45
|
+
expect(formatter).to have_received(:format).with(smart_thing)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
it "passes the config to the SmartThing" do
|
51
|
+
allow(SmartThing).to receive(:new).and_return(smart_thing)
|
52
|
+
|
53
|
+
subject.execute!
|
54
|
+
|
55
|
+
expect(SmartThing).to have_received(:new).with(config)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module GitCleanser
|
2
|
+
module Formatter
|
3
|
+
describe YAML do
|
4
|
+
describe "#format" do
|
5
|
+
let(:smart_thing) { instance_double("SmartThing") }
|
6
|
+
subject { YAML.new.format(smart_thing) }
|
7
|
+
|
8
|
+
before do
|
9
|
+
allow(smart_thing).to receive(:generated_but_not_ignored).and_return(["file1", "file2"])
|
10
|
+
allow(smart_thing).to receive(:ignored_but_not_generated).and_return(["file3", "file4"])
|
11
|
+
allow(smart_thing).to receive(:ignored_but_tracked).and_return(["file5", "file6"])
|
12
|
+
allow(smart_thing).to receive(:uncompiled).and_return(["file7", "file8"])
|
13
|
+
end
|
14
|
+
|
15
|
+
it "returns output as YAML" do
|
16
|
+
output = ::YAML.load(subject)
|
17
|
+
|
18
|
+
expect(output["generated_but_not_ignored"]).to eq ["file1", "file2"]
|
19
|
+
expect(output["ignored_but_not_generated"]).to eq ["file3", "file4"]
|
20
|
+
expect(output["ignored_but_tracked"]).to eq ["file5", "file6"]
|
21
|
+
expect(output["uncompiled"]).to eq ["file7", "file8"]
|
22
|
+
end
|
23
|
+
|
24
|
+
it "removes trailing newlines because we add one in CLI" do
|
25
|
+
expect(subject).not_to end_with("\n")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
lib = File.expand_path('../lib', __FILE__)
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
+
|
4
|
+
require 'git_cleanser'
|
5
|
+
|
6
|
+
RSpec.configure do |config|
|
7
|
+
config.expect_with :rspec do |expectations|
|
8
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
9
|
+
end
|
10
|
+
|
11
|
+
config.mock_with :rspec do |mocks|
|
12
|
+
mocks.verify_partial_doubles = true
|
13
|
+
end
|
14
|
+
|
15
|
+
config.filter_run :focus
|
16
|
+
config.run_all_when_everything_filtered = true
|
17
|
+
|
18
|
+
# This setting enables warnings. It's recommended, but in some cases may
|
19
|
+
# be too noisy due to issues in dependencies.
|
20
|
+
config.warnings = true
|
21
|
+
|
22
|
+
config.order = :random
|
23
|
+
Kernel.srand config.seed
|
24
|
+
end
|
metadata
CHANGED
@@ -1,15 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git_cleanser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Finnie
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-05-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: paint
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.0.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.0.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: slop
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 4.0.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 4.0.0
|
13
41
|
- !ruby/object:Gem::Dependency
|
14
42
|
name: bundler
|
15
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,21 +66,84 @@ dependencies:
|
|
38
66
|
- - "~>"
|
39
67
|
- !ruby/object:Gem::Version
|
40
68
|
version: '10.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: cucumber
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 1.3.19
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.3.19
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 3.2.0
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 3.2.0
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: aruba
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.6.2
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.6.2
|
41
111
|
description:
|
42
112
|
email:
|
43
113
|
- dan@danfinnie.com
|
44
|
-
executables:
|
114
|
+
executables:
|
115
|
+
- git_cleanser
|
45
116
|
extensions: []
|
46
117
|
extra_rdoc_files: []
|
47
118
|
files:
|
48
119
|
- ".gitignore"
|
120
|
+
- ".rspec"
|
49
121
|
- Gemfile
|
50
122
|
- LICENSE.txt
|
51
123
|
- README.md
|
52
124
|
- Rakefile
|
125
|
+
- bin/git_cleanser
|
126
|
+
- features/detecting_compiled_files.feature
|
127
|
+
- features/detecting_ignored_but_tracked_files.feature
|
128
|
+
- features/detecting_uncompiled_files.feature
|
129
|
+
- features/output_formats.feature
|
130
|
+
- features/step_definitions/detecting_compiled_files_steps.rb
|
131
|
+
- features/step_definitions/git_files_step_definitions.rb
|
132
|
+
- features/step_definitions/output_formats_step_defintions.rb
|
133
|
+
- features/support/env.rb
|
53
134
|
- git_cleanser.gemspec
|
54
135
|
- lib/git_cleanser.rb
|
136
|
+
- lib/git_cleanser/cli.rb
|
137
|
+
- lib/git_cleanser/config_loader.rb
|
138
|
+
- lib/git_cleanser/formatter.rb
|
139
|
+
- lib/git_cleanser/formatter/human.rb
|
140
|
+
- lib/git_cleanser/formatter/yaml.rb
|
141
|
+
- lib/git_cleanser/smart_thing.rb
|
55
142
|
- lib/git_cleanser/version.rb
|
143
|
+
- spec/lib/cli_spec.rb
|
144
|
+
- spec/lib/formatter/human_spec.rb
|
145
|
+
- spec/lib/formatter/yaml_spec.rb
|
146
|
+
- spec/spec_helper.rb
|
56
147
|
homepage:
|
57
148
|
licenses:
|
58
149
|
- MIT
|
@@ -77,5 +168,17 @@ rubygems_version: 2.0.14
|
|
77
168
|
signing_key:
|
78
169
|
specification_version: 4
|
79
170
|
summary: Iteratively remove compiled files from your git repository
|
80
|
-
test_files:
|
171
|
+
test_files:
|
172
|
+
- features/detecting_compiled_files.feature
|
173
|
+
- features/detecting_ignored_but_tracked_files.feature
|
174
|
+
- features/detecting_uncompiled_files.feature
|
175
|
+
- features/output_formats.feature
|
176
|
+
- features/step_definitions/detecting_compiled_files_steps.rb
|
177
|
+
- features/step_definitions/git_files_step_definitions.rb
|
178
|
+
- features/step_definitions/output_formats_step_defintions.rb
|
179
|
+
- features/support/env.rb
|
180
|
+
- spec/lib/cli_spec.rb
|
181
|
+
- spec/lib/formatter/human_spec.rb
|
182
|
+
- spec/lib/formatter/yaml_spec.rb
|
183
|
+
- spec/spec_helper.rb
|
81
184
|
has_rdoc:
|