ignore-it 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'optparse'
4
+ require "ignore_it"
5
+
6
+ tool = IgnoreIt::Main.new
7
+ tool.start
@@ -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: []