robin-chit 0.0.3 → 0.0.4
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.
- data/README.txt +15 -7
- data/lib/chit.rb +45 -11
- data/resources/chitrc +1 -0
- metadata +1 -1
data/README.txt
CHANGED
@@ -29,13 +29,11 @@ To get a cheat sheet:
|
|
29
29
|
|
30
30
|
$ chit [cheatsheet]
|
31
31
|
|
32
|
-
|
33
|
-
|
34
|
-
To edit a cheat sheet, use the --edit switch.
|
32
|
+
To edit a cheat sheet, use the --edit/-e switch.
|
35
33
|
|
36
34
|
$ cheat [cheatsheet] --edit
|
37
35
|
|
38
|
-
To add a cheat sheet, use the --add switch.
|
36
|
+
To add a cheat sheet, use the --add/-a switch.
|
39
37
|
|
40
38
|
$ cheat [cheatsheet] --add
|
41
39
|
|
@@ -47,7 +45,7 @@ To get your private cheat sheet:
|
|
47
45
|
|
48
46
|
$ chit @[cheatsheet]
|
49
47
|
|
50
|
-
The prefix '@' works the same for both --edit and --add.
|
48
|
+
The prefix '@' works the same for both --edit/-e and --add/-a.
|
51
49
|
|
52
50
|
The cheat sheet can be in a path. For example:
|
53
51
|
|
@@ -57,11 +55,19 @@ will get the cheat sheet 'select' under mysql.
|
|
57
55
|
|
58
56
|
To show all the cheat sheets:
|
59
57
|
|
60
|
-
$ chit [all|
|
58
|
+
$ chit [all|sheets]
|
61
59
|
|
62
60
|
To show all the private cheat sheets:
|
63
61
|
|
64
|
-
$ chit @[all|
|
62
|
+
$ chit @[all|sheets]
|
63
|
+
|
64
|
+
To find cheat sheets begin with 'name', use the --find/-f switch
|
65
|
+
|
66
|
+
$ chit name --find
|
67
|
+
|
68
|
+
To search cheat sheets content with 'text', use the --search/-s switch
|
69
|
+
|
70
|
+
$ chit text --search
|
65
71
|
|
66
72
|
== INSTALL:
|
67
73
|
|
@@ -74,6 +80,8 @@ chit --init
|
|
74
80
|
Before run 'chit', you may want to config ~/.chitrc which is a YAML file.
|
75
81
|
|
76
82
|
* root: local path to store the cheat sheet. By default, it is ~/.chit
|
83
|
+
* add_if_not_exist: when set as 'true', if no sheets found, a new one will be created and waiting for editing. Leave it blank and quit the editor if you don't
|
84
|
+
want to add a new one.
|
77
85
|
* main:
|
78
86
|
* clone-from: where to get the public cheat sheets. You can use git://github.com/robin/chitsheet.git, which is a snap shoot of http://cheat.errtheblog.com/.
|
79
87
|
* private:
|
data/lib/chit.rb
CHANGED
@@ -3,15 +3,15 @@ $:.unshift File.dirname(__FILE__)
|
|
3
3
|
|
4
4
|
module Chit
|
5
5
|
extend self
|
6
|
-
VERSION = '0.0.
|
6
|
+
VERSION = '0.0.4'
|
7
7
|
|
8
8
|
defaults = {
|
9
|
-
'root' => "#{ENV['HOME']}
|
9
|
+
'root' => File.join("#{ENV['HOME']}",".chit")
|
10
10
|
}
|
11
11
|
|
12
|
-
CHITRC = "#{ENV['HOME']}
|
12
|
+
CHITRC = File.join("#{ENV['HOME']}",".chitrc")
|
13
13
|
|
14
|
-
FileUtils.cp(File.join(File.dirname(__FILE__), "
|
14
|
+
FileUtils.cp(File.join(File.dirname(__FILE__), "..","resources","chitrc"), CHITRC) unless File.exist?(CHITRC)
|
15
15
|
|
16
16
|
CONFIG = defaults.merge(YAML.load_file(CHITRC))
|
17
17
|
|
@@ -32,7 +32,13 @@ module Chit
|
|
32
32
|
end
|
33
33
|
|
34
34
|
unless File.exist?(sheet_file)
|
35
|
-
add
|
35
|
+
if args.delete('--no-add').nil? && CONFIG['add_if_not_exist']
|
36
|
+
add(sheet_file)
|
37
|
+
else
|
38
|
+
puts "Error!:\n #{@sheet} not found"
|
39
|
+
puts "Possible sheets:"
|
40
|
+
search_title
|
41
|
+
end
|
36
42
|
else
|
37
43
|
show(sheet_file)
|
38
44
|
end
|
@@ -51,15 +57,31 @@ module Chit
|
|
51
57
|
|
52
58
|
@fullpath = File.join(working_dir, "#{@sheet}.yml")
|
53
59
|
|
54
|
-
add(sheet_file) and return if args.delete('--add')
|
55
|
-
edit(sheet_file) and return if args.delete('--edit')
|
60
|
+
add(sheet_file) and return if (args.delete('--add')||args.delete('-a'))
|
61
|
+
edit(sheet_file) and return if (args.delete('--edit')||args.delete('-e'))
|
62
|
+
search_title and return if (args.delete('--find')||args.delete('-f'))
|
63
|
+
search_content and return if (args.delete('--search')||args.delete('-s'))
|
56
64
|
true
|
57
65
|
end
|
58
66
|
|
59
67
|
def list_all
|
60
|
-
|
61
|
-
|
68
|
+
puts all_sheets.sort.join("\n")
|
69
|
+
end
|
70
|
+
|
71
|
+
def search_content
|
72
|
+
@git.grep(@sheet).each {|file, lines|
|
73
|
+
title = title_of_file(file.split(':')[1])
|
74
|
+
lines.each {|l|
|
75
|
+
puts "#{title}:#{l[0]}: #{l[1]}"
|
76
|
+
}
|
77
|
+
}
|
78
|
+
end
|
79
|
+
|
80
|
+
def search_title
|
81
|
+
reg = Regexp.compile("^#{@sheet}")
|
82
|
+
files = all_sheets.select {|sheet| sheet =~ reg }
|
62
83
|
puts files.sort.join("\n")
|
84
|
+
true
|
63
85
|
end
|
64
86
|
|
65
87
|
def sheet_file
|
@@ -132,9 +154,9 @@ module Chit
|
|
132
154
|
|
133
155
|
def add(sheet_file)
|
134
156
|
unless File.exist?(sheet_file)
|
135
|
-
breaker = sheet_file.rindex(
|
157
|
+
breaker = sheet_file.rindex(File::Separator)+1
|
136
158
|
path = sheet_file[0,breaker]
|
137
|
-
title = @sheet.
|
159
|
+
title = @sheet.split(File::Separator).join('::')
|
138
160
|
FileUtils.mkdir_p(path)
|
139
161
|
yml = {"#{title}" => ''}.to_yaml
|
140
162
|
open(sheet_file, 'w') {|f| f << yml}
|
@@ -153,8 +175,10 @@ module Chit
|
|
153
175
|
@git.add
|
154
176
|
@git.commit_all("-")
|
155
177
|
end
|
178
|
+
true
|
156
179
|
end
|
157
180
|
|
181
|
+
private
|
158
182
|
def editor
|
159
183
|
ENV['VISUAL'] || ENV['EDITOR'] || "vim"
|
160
184
|
end
|
@@ -172,4 +196,14 @@ module Chit
|
|
172
196
|
tempfile.close
|
173
197
|
body
|
174
198
|
end
|
199
|
+
|
200
|
+
def all_sheets
|
201
|
+
@git.ls_files.to_a.map {|f|
|
202
|
+
title_of_file(f[0])}
|
203
|
+
end
|
204
|
+
|
205
|
+
def title_of_file(f)
|
206
|
+
f[0..((f.rindex('.')||0) - 1)]
|
207
|
+
end
|
208
|
+
|
175
209
|
end
|
data/resources/chitrc
CHANGED