ignore-it 1.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 +7 -0
- data/bin/ignore-it +7 -0
- data/lib/ignore_it.rb +42 -0
- data/lib/ignore_it/creator.rb +60 -0
- data/lib/ignore_it/list.rb +38 -0
- metadata +91 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: fe4f3fcd1823b63622f37773342d0f190a6b1da199eace1cd08c15feec633295
|
4
|
+
data.tar.gz: eca95760a611df332ca4da415e78311d148ca76804c6ab7281a7f335f682d0b9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 403f70e0f8030520a8ce81d1faefaf46fcf3aebf2c49e2e5ad3cec1050dd588f2f00fe1b82f739fc4489c2c14117cceb44d7cd135c94a586c48755a1477d5f70
|
7
|
+
data.tar.gz: 15616d052cacb118738549b0a58a4a68d09ae9b64be2e709010295d7c19c685812086032050abfb2b8611e45261a02ebed7a048e4cc893329a71039b6abe139b
|
data/bin/ignore-it
ADDED
data/lib/ignore_it.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'json'
|
3
|
+
require 'colorize'
|
4
|
+
require 'readline'
|
5
|
+
require 'ignore_it/list'
|
6
|
+
require 'ignore_it/creator'
|
7
|
+
|
8
|
+
module IgnoreIt
|
9
|
+
class Main
|
10
|
+
# constructor
|
11
|
+
def initialize
|
12
|
+
@url = "https://www.toptal.com/developers/gitignore/api/list?format=json"
|
13
|
+
@options = {}
|
14
|
+
@list = List.new
|
15
|
+
@creator = Creator.new
|
16
|
+
end
|
17
|
+
|
18
|
+
def start
|
19
|
+
|
20
|
+
ARGV << '-h' if ARGV.empty?
|
21
|
+
|
22
|
+
OptionParser.new do |parser|
|
23
|
+
parser.banner = "How to Use ignore-it: Pass one of the following options: e.g => ignore-it -f csharp"
|
24
|
+
parser.on(
|
25
|
+
"-f ", "--file FILE", "Select gitignore template to fetch"
|
26
|
+
) do |file|
|
27
|
+
file = file.downcase
|
28
|
+
if @list.check_list(file)
|
29
|
+
@creator.create_ignore(file)
|
30
|
+
else
|
31
|
+
puts "The template you tried to fetch does not exist".colorize(:red)
|
32
|
+
puts "Please checkout the available templates with " + "ignore-it -l".colorize(:green)
|
33
|
+
end
|
34
|
+
# @options[:file] = true
|
35
|
+
end
|
36
|
+
parser.on("-l", "--list", "Show List of available .gitignore entries") do
|
37
|
+
@list.show_list
|
38
|
+
end
|
39
|
+
end.parse!
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# lib/creation.rb
|
2
|
+
require 'ignore_it/list'
|
3
|
+
require 'readline'
|
4
|
+
require 'colorize'
|
5
|
+
|
6
|
+
module IgnoreIt
|
7
|
+
class Creator
|
8
|
+
def initialize
|
9
|
+
list = List.new
|
10
|
+
@jsonResponse = list.jsonResponse
|
11
|
+
end
|
12
|
+
|
13
|
+
# Code here
|
14
|
+
def create_ignore(name)
|
15
|
+
template = @jsonResponse[name]
|
16
|
+
contents = template["contents"]
|
17
|
+
|
18
|
+
puts "Creating .gitignore for " + name.colorize(:green)
|
19
|
+
|
20
|
+
if File.exist?(".gitignore")
|
21
|
+
# Store the state of the terminal
|
22
|
+
sttySave = %x(stty -g).chomp
|
23
|
+
overwrite = false
|
24
|
+
|
25
|
+
begin
|
26
|
+
puts "File already exists! Overwrite? [y/n]?"
|
27
|
+
while (line = Readline.readline('> ', true).downcase)
|
28
|
+
# if (line.empty? or line != "y" or line != "n")
|
29
|
+
|
30
|
+
if line == "y"
|
31
|
+
overwrite = true
|
32
|
+
break
|
33
|
+
# puts "yo"
|
34
|
+
elsif line == "n"
|
35
|
+
break
|
36
|
+
# puts "ney"
|
37
|
+
elsif (line != "y") || (line != "n")
|
38
|
+
puts "Please provide a correct format (y or n)".colorize(:red)
|
39
|
+
# puts "wut"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
rescue Interrupt => e
|
43
|
+
system('stty', sttySave) # Restore
|
44
|
+
exit
|
45
|
+
end
|
46
|
+
|
47
|
+
if overwrite
|
48
|
+
File.write("./.gitignore", contents)
|
49
|
+
puts ".gitignore has been created!".colorize(:green)
|
50
|
+
else
|
51
|
+
puts ".gitignore has NOT been created! Terminating process!".colorize(:red)
|
52
|
+
end
|
53
|
+
|
54
|
+
else
|
55
|
+
File.write("./.gitignore", contents)
|
56
|
+
puts ".gitignore has been created!".colorize(:green)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# lib/list.rb
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require 'net/http'
|
5
|
+
require 'json'
|
6
|
+
|
7
|
+
module IgnoreIt
|
8
|
+
class List
|
9
|
+
def initialize
|
10
|
+
@url = "https://www.toptal.com/developers/gitignore/api/list?format=json"
|
11
|
+
@response = Net::HTTP.get(URI(@url))
|
12
|
+
@jsonResponse = JSON.parse(@response)
|
13
|
+
end
|
14
|
+
|
15
|
+
attr_reader :jsonResponse
|
16
|
+
|
17
|
+
def check_list(file)
|
18
|
+
exists = false
|
19
|
+
|
20
|
+
@jsonResponse.each do |extension|
|
21
|
+
if file == extension.first
|
22
|
+
exists = true
|
23
|
+
break
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
exists
|
28
|
+
end
|
29
|
+
|
30
|
+
def show_list
|
31
|
+
sortedArray = @jsonResponse.sort
|
32
|
+
|
33
|
+
sortedArray.each do |entry|
|
34
|
+
puts entry.first
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
metadata
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ignore-it
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Felix Macho
|
8
|
+
- Simon Sölder
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2020-11-07 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rake
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: 11.3.0
|
21
|
+
type: :development
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 11.3.0
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: rubocop
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '1.2'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '1.2'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: colorize
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 0.8.1
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 0.8.1
|
56
|
+
description:
|
57
|
+
email:
|
58
|
+
executables:
|
59
|
+
- ignore-it
|
60
|
+
extensions: []
|
61
|
+
extra_rdoc_files: []
|
62
|
+
files:
|
63
|
+
- bin/ignore-it
|
64
|
+
- lib/ignore_it.rb
|
65
|
+
- lib/ignore_it/creator.rb
|
66
|
+
- lib/ignore_it/list.rb
|
67
|
+
homepage:
|
68
|
+
licenses:
|
69
|
+
- MIT
|
70
|
+
metadata:
|
71
|
+
source_code_uri: https://github.com/lolcatbois/ignore-it
|
72
|
+
post_install_message:
|
73
|
+
rdoc_options: []
|
74
|
+
require_paths:
|
75
|
+
- lib
|
76
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '0'
|
81
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
requirements: []
|
87
|
+
rubygems_version: 3.0.3
|
88
|
+
signing_key:
|
89
|
+
specification_version: 4
|
90
|
+
summary: ignore-it your command line tool for fetching .gitignore files
|
91
|
+
test_files: []
|