Class: Ignore::Command
- Inherits:
-
Object
- Object
- Ignore::Command
- Defined in:
- lib/ignore/command.rb
Class Method Summary collapse
- .append(name) ⇒ Object
- .clean ⇒ Object
- .delegate(first, second) ⇒ Object
- .execute(*args) ⇒ Object
- .getfile(language, callback) ⇒ Object
- .gitignore ⇒ Object
- .help ⇒ Object
- .input ⇒ Object
- .list ⇒ Object
- .outprint(s) ⇒ Object
- .output(s) ⇒ Object
- .saveas(name) ⇒ Object
- .show(name) ⇒ Object
- .storage ⇒ Object
- .update ⇒ Object
Class Method Details
.append(name) ⇒ Object
60 61 62 63 |
# File 'lib/ignore/command.rb', line 60 def append(name) contents = storage.load(name) gitignore.append(contents,name) end |
.clean ⇒ Object
69 70 71 |
# File 'lib/ignore/command.rb', line 69 def clean storage.clear end |
.delegate(first, second) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/ignore/command.rb', line 11 def delegate(first, second) return help if first == 'help' return list if first == 'list' return clean if first == 'clean' return update if first == 'update' return saveas(second) if first == 'saveas' and second return getfile(second,:show) if first == 'show' and second return getfile(first,:append) if first and second.nil? storage #fetch and print help help end |
.execute(*args) ⇒ Object
5 6 7 8 9 |
# File 'lib/ignore/command.rb', line 5 def execute(*args) first = args.shift second = args.shift delegate(first, second) end |
.getfile(language, callback) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/ignore/command.rb', line 29 def getfile(language, callback) exact = storage.match(language) return self.send(callback, exact.first) unless exact.empty? loose = storage.match(language, false) case when loose.length < 1 output("No such gitignore #{language}") when loose.length == 1 self.send( callback, loose.first ) when (loose.length > 1 and loose.length < 5) output "Please specify: \n#{loose.reduce(""){|res,name| res+=name+"\n"}}" when loose.length > 5 output "Please be more specific" else output("uh-oh? something went wrong") end end |
.gitignore ⇒ Object
98 99 100 |
# File 'lib/ignore/command.rb', line 98 def gitignore @gitignore ||= Gitignore.new end |
.help ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/ignore/command.rb', line 78 def help() text= %{ ignore : help ------------------------------------------------------- ignore <language> add specified languages gitignore to working directory ignore list list available gitignores ignore show <language> print the language to STDOUT (use with '| less') ignore update update from github.com/github/gitignore ignore clean empty your local ~/.ignores folder ignore help show help see https://github.com/samirahmed/ignore for more documentation } output(text) end |
.input ⇒ Object
102 103 104 |
# File 'lib/ignore/command.rb', line 102 def input $stdin end |
.list ⇒ Object
24 25 26 27 |
# File 'lib/ignore/command.rb', line 24 def list list = storage.list output( list.reduce(""){|res,line| res+= line.chomp('.gitignore')+"\n" }) end |
.outprint(s) ⇒ Object
106 107 108 |
# File 'lib/ignore/command.rb', line 106 def outprint(s) print(s) end |
.output(s) ⇒ Object
110 111 112 |
# File 'lib/ignore/command.rb', line 110 def output(s) puts(s) end |
.saveas(name) ⇒ Object
73 74 75 76 |
# File 'lib/ignore/command.rb', line 73 def saveas( name ) return storage.write(name,gitignore.read) if gitignore.exists? return output("No .gitignore found in the #{gitignore.path}") end |
.show(name) ⇒ Object
55 56 57 58 |
# File 'lib/ignore/command.rb', line 55 def show(name) contents = storage.load(name) output(contents) end |
.storage ⇒ Object
94 95 96 |
# File 'lib/ignore/command.rb', line 94 def storage @storage ||= Storage.new end |
.update ⇒ Object
65 66 67 |
# File 'lib/ignore/command.rb', line 65 def update storage.update end |