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.
@@ -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: []