ignoring 0.0.1 → 1.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.
- checksums.yaml +4 -4
- data/README.md +56 -4
- data/bin/gitignore +5 -0
- data/bin/ignoring +5 -0
- data/ignoring.gemspec +4 -1
- data/lib/ignoring/cli.rb +32 -0
- data/lib/ignoring/helpers.rb +96 -0
- data/lib/ignoring/version.rb +1 -1
- data/lib/ignoring.rb +3 -1
- metadata +51 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9270dab31b4d8bc99f17a6a6e4d3bfeedac4b732
|
4
|
+
data.tar.gz: 384edaaccdba075470e24d20f80473242091faf4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3cd691caf038ed6c66ceb7a66f4af1fbfb0f9a9c113151931c9c7c2fe14c58095c4bc06439530087c80273be9aaef8857add146c5583a0653e200d6ecdba90e3
|
7
|
+
data.tar.gz: 387a99266910fd758a5c44f3af648dcca068ce619c72e94e08394d724c2dbea519cf2acc15e3030e336dda03d9b12333c68f3d5d3f0d43f3308d55074385d781
|
data/README.md
CHANGED
@@ -18,12 +18,64 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
-
|
21
|
+
This tool is realtively simple to use. You can use either `ignoring` or `gitignore`. For these examples, I will be using `gitignore`.
|
22
|
+
|
23
|
+
### Creating a gitignore
|
24
|
+
|
25
|
+
Creating a .gitignore file in your currrent directory
|
26
|
+
|
27
|
+
$ gitignore create
|
28
|
+
|
29
|
+
Creating a global gitignore (You will be prompted for a location)
|
30
|
+
|
31
|
+
$ gitignore create -g
|
32
|
+
$ gitignore create --global
|
33
|
+
|
34
|
+
### Adding to a gitignore
|
35
|
+
|
36
|
+
Adding items to the gitignore
|
37
|
+
|
38
|
+
$ gitignore add tmp Gemfile.lock
|
39
|
+
$ gitignore add -g .DS_Store
|
40
|
+
$ gitignore add --global .DS_Store
|
41
|
+
|
42
|
+
Adding languages to the gitignore. (These are retrieved from github's gitignores)
|
43
|
+
|
44
|
+
$ gitignore add -l Ruby Rails
|
45
|
+
$ gitignore add -gl Ruby Rails
|
46
|
+
$ gitignore add --global --languages Ruby Rails
|
47
|
+
|
48
|
+
### List languages
|
49
|
+
|
50
|
+
List languages from github's gitignores
|
51
|
+
|
52
|
+
$ gitignore list
|
53
|
+
|
54
|
+
### Show gitignores
|
55
|
+
|
56
|
+
Print your local gitignore to STDOUT
|
57
|
+
|
58
|
+
$ gitignore show
|
59
|
+
|
60
|
+
Print your global gitignore to STDOUT
|
61
|
+
|
62
|
+
$ gitignore show -g
|
63
|
+
$ gitignore show --global
|
64
|
+
|
65
|
+
Print a specific language to STDOUT
|
66
|
+
|
67
|
+
$ gitignore show -l Ruby
|
68
|
+
$ gitignore show --language Ruby
|
69
|
+
|
70
|
+
## Future
|
71
|
+
|
72
|
+
* Create your own templates
|
73
|
+
|
22
74
|
|
23
75
|
## Contributing
|
24
76
|
|
25
|
-
1. Fork it ( http://github.com
|
26
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
77
|
+
1. Fork it ( http://github.com/kristenmills/ignoring/fork )
|
78
|
+
2. Create your feature branch (`git checkout -b feature/my-new-feature`)
|
27
79
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
28
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
80
|
+
4. Push to the branch (`git push origin feature/my-new-feature`)
|
29
81
|
5. Create new Pull Request
|
data/bin/gitignore
ADDED
data/bin/ignoring
ADDED
data/ignoring.gemspec
CHANGED
@@ -21,5 +21,8 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.5"
|
22
22
|
spec.add_development_dependency "rake"
|
23
23
|
|
24
|
-
spec.add_dependency "thor",
|
24
|
+
spec.add_dependency "thor", "~> 0.19"
|
25
|
+
spec.add_dependency "git", "~> 1.2.8"
|
26
|
+
spec.add_dependency "highline", "~> 1.6"
|
27
|
+
spec.add_dependency "terminal-table", "~> 1.4.5"
|
25
28
|
end
|
data/lib/ignoring/cli.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
require "thor"
|
2
|
+
|
3
|
+
# CLI class
|
4
|
+
module Ignoring
|
5
|
+
class CLI < Thor
|
6
|
+
|
7
|
+
desc "create", "creates a new gitignore if one doesn't exist in the directory"
|
8
|
+
option :global, type: :boolean, desc: "whether to use global gitignore", aliases: :g
|
9
|
+
def create
|
10
|
+
Helpers::create(options)
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "add [ITEM/LANGUAGE...]", "Adds a new item to the gitignore if it isn't already added"
|
14
|
+
option :global, type: :boolean, desc: "use global gitignore", aliases: :g
|
15
|
+
option :languages, type: :boolean, desc: "get language templates from github", aliases: :l
|
16
|
+
def add(*items)
|
17
|
+
Helpers::add(options, items)
|
18
|
+
end
|
19
|
+
|
20
|
+
desc "list", "lists the different languages available from github/gitignore"
|
21
|
+
def list
|
22
|
+
Helpers::list
|
23
|
+
end
|
24
|
+
|
25
|
+
desc "show", "displays a gitignore"
|
26
|
+
option :global, type: :boolean, desc: "whether to use global gitignore", aliases: :g
|
27
|
+
option :language, desc: "displays gitignore for language from github/gitignore repo", aliases: :l
|
28
|
+
def show
|
29
|
+
Helpers::show(options)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,96 @@
|
|
1
|
+
require "fileutils"
|
2
|
+
require "octokit"
|
3
|
+
require "highline/import"
|
4
|
+
require "git"
|
5
|
+
require "terminal-table"
|
6
|
+
|
7
|
+
module Ignoring
|
8
|
+
module Helpers
|
9
|
+
extend self
|
10
|
+
|
11
|
+
# Logic for creating a gitignore
|
12
|
+
#
|
13
|
+
# @param options the options hash
|
14
|
+
def create(options)
|
15
|
+
if options[:global]
|
16
|
+
file = Git.global_config("core.excludesfile")
|
17
|
+
if file.empty?
|
18
|
+
file = ask("Where would you like your global gitignore? ")
|
19
|
+
Git.global_config("core.excludesfile", file)
|
20
|
+
end
|
21
|
+
else
|
22
|
+
file = '.gitignore'
|
23
|
+
end
|
24
|
+
FileUtils.touch(file)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Logic for adding an item to a gitignore
|
28
|
+
#
|
29
|
+
# @param options the options hash
|
30
|
+
# @param items the items/languages to add
|
31
|
+
def add(options, items)
|
32
|
+
if options[:global]
|
33
|
+
file = Git.global_config("core.excludesfile")
|
34
|
+
else
|
35
|
+
file = ".gitignore" if File.exist?(".gitignore")
|
36
|
+
end
|
37
|
+
if file.empty? or file.nil?
|
38
|
+
puts "No gitignore. run create first." if file.empty?
|
39
|
+
else
|
40
|
+
combined = File.open(file).read.split("\n")
|
41
|
+
if options[:languages]
|
42
|
+
languages = items
|
43
|
+
items = []
|
44
|
+
languages.each do |lang|
|
45
|
+
items += language_array(lang) || []
|
46
|
+
end
|
47
|
+
end
|
48
|
+
items.each { |item| combined << item if !combined.include? item or item.start_with? "#" or item.empty? }
|
49
|
+
File.open(file, "w") do |file|
|
50
|
+
combined.each do |item|
|
51
|
+
file.puts item
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
# Logic for listing the languages
|
58
|
+
def list
|
59
|
+
langs = Octokit.gitignore_templates
|
60
|
+
lang_rows = []
|
61
|
+
langs.each_slice(4) do |group|
|
62
|
+
lang_rows << group
|
63
|
+
end
|
64
|
+
table = Terminal::Table.new(rows: lang_rows)
|
65
|
+
table.style = {border_x: "", border_i: "", border_y: ""}
|
66
|
+
puts table
|
67
|
+
rescue
|
68
|
+
puts "Error gitting language information. You might have reached your rate limit for the hour."
|
69
|
+
end
|
70
|
+
|
71
|
+
# logic for showing gitignores
|
72
|
+
#
|
73
|
+
# @param options the options hash
|
74
|
+
def show(options)
|
75
|
+
if options[:global]
|
76
|
+
file = Git.global_config("core.excludesfile")
|
77
|
+
puts File.read(file) if File.exists?(file)
|
78
|
+
elsif options[:language]
|
79
|
+
puts Octokit.gitignore_template(options[:language])[:source]
|
80
|
+
else
|
81
|
+
puts File.read('.gitignore') if File.exists?('.gitignore')
|
82
|
+
end
|
83
|
+
rescue
|
84
|
+
puts "#{language} is not a valid language."
|
85
|
+
end
|
86
|
+
|
87
|
+
private
|
88
|
+
|
89
|
+
# Helper method for parsing github language template
|
90
|
+
def language_array(language)
|
91
|
+
Octokit.gitignore_template(language)[:source].split("\n")
|
92
|
+
rescue
|
93
|
+
puts "#{language} is not a valid language."
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
data/lib/ignoring/version.rb
CHANGED
data/lib/ignoring.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ignoring
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kristen Mills
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-08-
|
11
|
+
date: 2014-08-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,10 +52,54 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0.19'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: git
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.2.8
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.2.8
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: highline
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.6'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.6'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: terminal-table
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 1.4.5
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 1.4.5
|
55
97
|
description: Tool for managing gitignores
|
56
98
|
email:
|
57
99
|
- kristen@kristen-mills.com
|
58
|
-
executables:
|
100
|
+
executables:
|
101
|
+
- gitignore
|
102
|
+
- ignoring
|
59
103
|
extensions: []
|
60
104
|
extra_rdoc_files: []
|
61
105
|
files:
|
@@ -64,8 +108,12 @@ files:
|
|
64
108
|
- LICENSE.txt
|
65
109
|
- README.md
|
66
110
|
- Rakefile
|
111
|
+
- bin/gitignore
|
112
|
+
- bin/ignoring
|
67
113
|
- ignoring.gemspec
|
68
114
|
- lib/ignoring.rb
|
115
|
+
- lib/ignoring/cli.rb
|
116
|
+
- lib/ignoring/helpers.rb
|
69
117
|
- lib/ignoring/version.rb
|
70
118
|
homepage: https://github.com/kristenmills/ignoring
|
71
119
|
licenses:
|