gitignores 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +12 -8
- data/bin/gitignores +25 -7
- data/lib/gitignores.rb +29 -13
- data/lib/gitignores/fetcher.rb +19 -11
- data/lib/gitignores/version.rb +1 -1
- metadata +10 -10
data/README.md
CHANGED
@@ -4,18 +4,22 @@ Tool for building a .gitignore from community templates at [github/gitignore](ht
|
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
7
|
-
|
7
|
+
$ gem install gitignores
|
8
8
|
|
9
|
-
|
9
|
+
## Usage
|
10
10
|
|
11
|
-
|
11
|
+
**add** append a list of .gitignores to the `.gitignore` in the current directory. Example:
|
12
12
|
|
13
|
-
|
13
|
+
gitignores add Java IntelliJ Eclipse
|
14
14
|
|
15
|
-
|
15
|
+
Adds gitignores for Java, IntelliJ, Eclipse to CURRENT_DIR/.gitignore
|
16
16
|
|
17
|
-
|
17
|
+
**show** prints a concatenation of .gitignores to std_out
|
18
18
|
|
19
|
-
|
19
|
+
gitignores show Java IntelliJ Eclipse
|
20
|
+
|
21
|
+
Prints gitignores for Java, IntelliJ, Eclipse to standard out
|
22
|
+
|
23
|
+
**list** prints a list of available gitignores
|
20
24
|
|
21
|
-
|
25
|
+
gitignores list
|
data/bin/gitignores
CHANGED
@@ -11,24 +11,42 @@ class App
|
|
11
11
|
include Methadone::CLILogging
|
12
12
|
include Methadone::ExitNow
|
13
13
|
|
14
|
-
main do
|
14
|
+
main do |command, *ignores|
|
15
15
|
opts = {
|
16
16
|
:ignores_dir => options['use-directory'],
|
17
|
-
:update_ignores => options['update']
|
18
|
-
# :out => STDOUT
|
17
|
+
:update_ignores => options['update']
|
19
18
|
}
|
19
|
+
|
20
|
+
gitignores = Gitignores::Gitignores.new(options)
|
21
|
+
|
22
|
+
if(options[:os])
|
23
|
+
ignores.concat ["OSX", "Windows", "Linux"]
|
24
|
+
end
|
25
|
+
ignores.uniq!
|
26
|
+
|
20
27
|
begin
|
21
|
-
|
28
|
+
case command
|
29
|
+
when "add"
|
30
|
+
gitignores.add(ignores)
|
31
|
+
when "show"
|
32
|
+
gitignores.show(ignores)
|
33
|
+
when "list"
|
34
|
+
gitignores.list
|
35
|
+
else
|
36
|
+
help_now! "Command \"#{command}\" not recognized"
|
37
|
+
end
|
22
38
|
rescue Gitignores::GitignoreNotFoundException => e
|
23
|
-
exit_now
|
39
|
+
exit_now(1, "Couldn't find ignore \"#{e.ignore_name}\"")
|
24
40
|
end
|
25
41
|
end
|
26
42
|
|
27
43
|
options['use-directory'] = ENV['HOME'] + '/.gitignores'
|
28
44
|
on("-d ignore-repository", "--use-directory", "The directory in which to store the github/gitignore directory")
|
29
45
|
on("--update", "Update the github/gitignore repository")
|
46
|
+
on("--os", "Include ignores for all operating systems")
|
30
47
|
|
31
|
-
arg :
|
48
|
+
arg :command, :required
|
49
|
+
arg :ignores, :any
|
32
50
|
|
33
51
|
description Gitignores::DESCRIPTION
|
34
52
|
|
@@ -37,4 +55,4 @@ class App
|
|
37
55
|
use_log_level_option
|
38
56
|
|
39
57
|
go!
|
40
|
-
end
|
58
|
+
end
|
data/lib/gitignores.rb
CHANGED
@@ -1,23 +1,39 @@
|
|
1
1
|
require 'logger'
|
2
|
+
require 'methadone'
|
2
3
|
require 'gitignores/builder'
|
3
4
|
require 'gitignores/fetcher'
|
4
5
|
|
5
6
|
module Gitignores
|
7
|
+
class Gitignores
|
8
|
+
include Methadone::CLILogging
|
6
9
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
:out => out_file
|
13
|
-
}.merge(options)
|
10
|
+
def initialize(options = {})
|
11
|
+
options = {
|
12
|
+
:update_ignores => false,
|
13
|
+
:ignores_dir => ENV['HOME'] + '/.gitignores'
|
14
|
+
}.merge(options)
|
14
15
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
16
|
+
@builder = GitignoreBuilder.new
|
17
|
+
@builder.ignores_dir = options[:ignores_dir]
|
18
|
+
@fetcher = GitignoreFetcher.new(options[:ignores_dir])
|
19
|
+
@fetcher.update_ignores = options[:update_ignores]
|
19
20
|
|
20
|
-
|
21
|
-
|
21
|
+
@fetcher.fetch_gitignores
|
22
|
+
end
|
23
|
+
|
24
|
+
def add(ignores)
|
25
|
+
out_file = File.open('.gitignore', 'a')
|
26
|
+
@builder.build(ignores, out_file)
|
27
|
+
end
|
28
|
+
|
29
|
+
def show(ignores)
|
30
|
+
@builder.build(ignores, STDOUT)
|
31
|
+
end
|
32
|
+
|
33
|
+
def list()
|
34
|
+
@fetcher.list_gitignores.each { |x|
|
35
|
+
info(x)
|
36
|
+
}
|
37
|
+
end
|
22
38
|
end
|
23
39
|
end
|
data/lib/gitignores/fetcher.rb
CHANGED
@@ -3,12 +3,12 @@ require 'gitignores'
|
|
3
3
|
|
4
4
|
module Gitignores
|
5
5
|
class GitignoreFetcher
|
6
|
-
include Gitignores
|
7
6
|
include Methadone::CLILogging
|
8
7
|
|
9
|
-
attr_writer :git, :update_ignores
|
8
|
+
attr_writer :git, :update_ignores, :ignores_dir
|
10
9
|
|
11
|
-
def initialize
|
10
|
+
def initialize(ignores_dir)
|
11
|
+
@ignores_dir = ignores_dir
|
12
12
|
@update_ignores = false
|
13
13
|
@git = Git.new
|
14
14
|
end
|
@@ -16,16 +16,24 @@ module Gitignores
|
|
16
16
|
# If needed, retrieves gitignores from Github and places them in @ignores_dir
|
17
17
|
# If @update_ignores? is set, will try to update the latest gitignores
|
18
18
|
# Will store all gitignores in the @ignores_dir
|
19
|
-
def fetch_gitignores(
|
20
|
-
unless (Dir.exists?(ignores_dir))
|
21
|
-
debug "Cloning github/gitignores to #{ignores_dir}"
|
22
|
-
@git.clone 'https://github.com/github/gitignore.git', ignores_dir
|
19
|
+
def fetch_gitignores()
|
20
|
+
unless (Dir.exists?(@ignores_dir))
|
21
|
+
debug "Cloning github/gitignores to #{@ignores_dir}"
|
22
|
+
@git.clone 'https://github.com/github/gitignore.git', @ignores_dir
|
23
23
|
end
|
24
24
|
if @update_ignores
|
25
|
-
debug "Updating repository at #{ignores_dir}"
|
26
|
-
@git.pull ignores_dir
|
25
|
+
debug "Updating repository at #{@ignores_dir}"
|
26
|
+
@git.pull @ignores_dir
|
27
27
|
end
|
28
28
|
end
|
29
|
+
|
30
|
+
def list_gitignores()
|
31
|
+
fetch_gitignores
|
32
|
+
|
33
|
+
Dir.glob(@ignores_dir + "/**/*.gitignore").collect { |x|
|
34
|
+
File.basename x, ".gitignore"
|
35
|
+
}
|
36
|
+
end
|
29
37
|
end
|
30
38
|
|
31
39
|
# Encapsulate Git commands in this helper class in order to help mock the command line
|
@@ -34,12 +42,12 @@ module Gitignores
|
|
34
42
|
include Methadone::CLILogging
|
35
43
|
|
36
44
|
def clone(repo, directory)
|
37
|
-
sh "git clone #{repo} #{directory}"
|
45
|
+
sh! "git clone #{repo} #{directory}"
|
38
46
|
end
|
39
47
|
|
40
48
|
def pull(directory)
|
41
49
|
Dir.chdir(directory) {
|
42
|
-
sh "git pull"
|
50
|
+
sh! "git pull"
|
43
51
|
}
|
44
52
|
end
|
45
53
|
end
|
data/lib/gitignores/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitignores
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-06-
|
12
|
+
date: 2013-06-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rdoc
|
16
|
-
requirement: &
|
16
|
+
requirement: &16625400 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *16625400
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rake
|
27
|
-
requirement: &
|
27
|
+
requirement: &16608200 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.9.2
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *16608200
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: methadone
|
38
|
-
requirement: &
|
38
|
+
requirement: &16605440 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.3.0
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *16605440
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &16603200 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *16603200
|
58
58
|
description: Tool for building .gitignore from community templates at github/gitignore
|
59
59
|
email:
|
60
60
|
- me@johnathangilday.com
|