git_cleanser 0.0.1 → 0.0.2
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.
- 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:
|