yac 0.1.6 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (7) hide show
  1. data/README.rdoc +67 -28
  2. data/lib/format.rb +31 -17
  3. data/lib/yac.rb +148 -83
  4. data/resources/yacrc +17 -15
  5. data/yac.gemspec +4 -4
  6. metadata +4 -5
  7. data/README.cn +0 -57
data/README.rdoc CHANGED
@@ -1,47 +1,86 @@
1
1
  = YAC => Yet Another Cheet (Powered By Ruby)
2
+ YAC was inspired by 'chit' (http://github.com/robin/chit) by robin and 'cheat' (http://cheat.errtheblog.com/) by Chris Wanstrath,But @@@Colorful and Sexy!!!@@@
2
3
 
3
- == FEATURES:
4
- YAC was inspired by 'chit' (http://github.com/robin/chit) by robin and 'cheat' (http://cheat.errtheblog.com/) by Chris Wanstrath
5
- what's the different:
6
- @@@Colorful and Sexy!@@@
4
+ == What?
5
+ Cheat sheet is a concise set of notes used for quick reference.
6
+ YAC is a simple sexy command line tool for easy control cheatsheet.
7
+ Yes,It's support Image,PDF,Text, and can be easily enhance :)
8
+ Install, Use, Enjoy :)
9
+
10
+ == Install
11
+ Make sure you have ruby,git in your system . then:
12
+ $ (sudo) gem install yac -s http://gems.github.com
7
13
 
8
14
  == How To Use
9
15
 
10
16
  === To initialize repositories:
11
- $ yac init
12
- === To get a cheat sheet:
13
- $ yac [cheatsheet]
17
+ When you run any command,The repositories will be initialize automatically.
18
+
19
+ === To show a cheat sheet:
20
+ $ yac (show) [cheatsheet] ( you can use * for any chars)
21
+ Eg:
22
+ $ yac show lin*x
23
+
14
24
  === To edit a cheat sheet
15
- $ yac edit [cheatsheet]
25
+ $ yac edit [cheatsheet] (Yes,you can use * for any chars also,then choose one to edit)
26
+
16
27
  === To add a cheat sheet
17
- $ yac add [cheatsheet]
28
+ $ yac add [cheatsheet] (OMG,you can also use *)
29
+ Eg:
30
+ $ yac li*x/install
31
+ Then will display all directories match /li*x/,feel freely to choose one of them,
32
+ A new file named install.ch will be added to the directory!
33
+
18
34
  === To rm a cheat sheet
19
- $ yac rm [cheatsheet]
20
- === Search according the sheets name
21
- $ yac name [keyword]
22
- === Search according the sheets content
23
- $ yac content [keyword]
35
+ $ yac rm [cheatsheet] (Sure,you can use *)
36
+
37
+ === Search all sheets
38
+ $ yac search [keyword] (@@@Take Attention:@@@ You are allowed to use perl-like Regex)
39
+ Eg:
40
+ $ yac search lin.*x
41
+ And Even:
42
+ $ yac search "r(uby|ails)"
43
+
24
44
  === Update repositories
25
45
  $ yac update main => Update main repository
26
- $ yac update private => Update private repository
27
- $ yac update => Update All
28
- === Help
29
- $ yac help / yac / -h / --help
46
+ $ yac update all => Update all repositories
47
+ $ yac update => Update private repository
48
+
30
49
  === Shell
31
- $ yac shell / sh main => Open the main repository's shell
32
- $ yac shell / sh => Open the private repository's shell
50
+ $ yac sh main => Open the main repository's shell
51
+ $ yac sh => Open the private repository's shell
52
+
53
+ == Repository Push
54
+ $ yac push main => Push the main repository
55
+ $ yac push all => Push all repositories
56
+ $ yac push => Push the private repository
57
+
58
+ == Rename a cheatsheet:
59
+ $ yac mv [orign_name] [new_name]
60
+
61
+ === Help (display this file)
62
+ $ yac help
63
+
64
+ === Version
65
+ $ yac -v | version
66
+
33
67
  === Documents format
34
- Use .ch as the suffix ,At the beginning of the row,plus N = for the N-class title
35
- Use '#' at the beginning of a row to comment the line,You can use '\#' to get '#'
36
- Use three @ wrap some words to highlight it,for example: @@\@ HI @@\@ (remove the \) will highlight HI
37
- === Set the color of highlight
38
- Default use .yacrc under home directory to set,, details, see the example file under the resources directory
68
+ All text file add ".ch" as suffix for butter editor highlight
69
+ (A very very simple vim script can be found here : http://www.vim.org/scripts/script.php?script_id=2399)
70
+
71
+ At the beginning of the row,plus N = for the N-class title
72
+
73
+ Use '#' at the beginning of a row to comment the line,You can use '\#' for '#'
74
+
75
+ Words wrapped by three @ for highlight
76
+
77
+ === The configure file
78
+ Default use $HOME/.yacrc , See the example file under resources directory
79
+
39
80
  === Others
40
- Add @ before [cheatsheet]/[keyword] will only search the main depot
41
- See also the source code to get more sexy ways
81
+ Add @ before [keyword] will only affect the main repository
42
82
 
43
83
  == REQUIREMENTS:
44
-
45
84
  * Ruby
46
85
  * rubygems
47
86
  * git
data/lib/format.rb CHANGED
@@ -1,19 +1,22 @@
1
1
  module Format
2
- Pdf_Error = "Please Modify ~/.yacrc To Provide A Valid Command To Open PDF Document"
3
- Image_Error = "Please Modify ~/.yacrc To Provide A Valid Command To Open Image Document"
2
+ Pdf_Error = "Please Modify ~/.yacrc To Provide A Valid Command To Operate PDF Document"
3
+ Image_Error = "Please Modify ~/.yacrc To Provide A Valid Command To Operate Image Document"
4
+ Doc_Error = "Please Modify ~/.yacrc To Provide A Valid Command To Operate Text Document"
4
5
 
5
6
  def format_file(file)
6
7
  @level = 0
7
- case `file #{file}`
8
- when / PDF /
9
- puts Pdf_Error unless system("#{Yac::CONFIG["pdf_command"]||'evince'} #{file}")
8
+ colorful(file,"filename") if file
9
+ case `file "#{file}" 2>/dev/null`
10
+ when / PDF document/
11
+ puts Pdf_Error unless system("#{Yac::CONFIG["pdf_command"]||'evince'} \"#{file}\" 2>/dev/null")
10
12
  when /( image )|(\.svg)/
11
- puts Image_Error unless system("#{Yac::CONFIG["pic_command"]||'eog'} #{file}")
13
+ puts Image_Error unless system("#{Yac::CONFIG["image_command"]||'eog'} \"#{file}\" 2>/dev/null")
12
14
  else
13
15
  File.new(file).each do |x|
14
16
  format_section(x)
15
17
  end
16
18
  end
19
+ rescue
17
20
  end
18
21
 
19
22
  def format_section(section,search = false)
@@ -22,17 +25,30 @@ module Format
22
25
  @level = search ? 1 : $1.size
23
26
  colorful("\s"*2*(@level-1) + $2,"head#{@level}")
24
27
  when /^(\s*)#/
28
+ colorful(section.sub(/^\s*/,'')) if search
29
+ else
30
+ colorful(section.sub(/^\#/,"#").sub(/^\s*/, "\s" * ( @level||0 ) * 2 ))
31
+ end
32
+ end
33
+
34
+ def edit_file(file)
35
+ case `file "#{file}" 2>/dev/null`
36
+ when / PDF /
37
+ puts Pdf_Error unless system("#{Yac::CONFIG["pdf_edit_command"]||'ooffice'} \"#{file}\" 2>/dev/null")
38
+ when /( image )|(\.svg)/
39
+ puts Image_Error unless system("#{Yac::CONFIG["image_edit_command"]||'gimp'} \"#{file}\" 2>/dev/null")
25
40
  else
26
- colorful(section.sub(/^\#/,"#").sub(/^\s*/, "\s" * @level * 2 ))
41
+ edit_text(file)
27
42
  end
28
43
  end
29
44
 
30
- def editor
31
- Yac::CONFIG["editor"] || ENV['EDITOR'] || "vim"
45
+ def edit_text(file)
46
+ prepare_dir(file)
47
+ puts Doc_Error unless system("#{Yac::CONFIG["editor"] || ENV['EDITOR'] ||'vim'} \"#{file}\" 2>/dev/null")
32
48
  end
33
49
 
34
- def title_of_file(f)
35
- f[0..((f.rindex('.')||0) - 1)]
50
+ def clean_filename(f)
51
+ return f.sub(/^(.*)?(main|private)\/(.*)/,'\3').sub(/^@/,'')
36
52
  end
37
53
 
38
54
  def colorful(stuff,level="text",line_break = true)
@@ -42,15 +58,13 @@ module Format
42
58
  end
43
59
 
44
60
  def empha(stuff,level="text",empha_regexp=/(@@@(.*)@@@)/)
45
- stuff.scan(empha_regexp) do |x|
61
+ stuff.to_s.scan(empha_regexp) do |x|
46
62
  return stuff.gsub(x[0],"\033[0m\033[#{Yac::CONFIG["empha"].to_s}m%s\033[0m\033[%sm" % [x[1],Yac::CONFIG[level]])
47
63
  end
48
64
  end
49
65
 
50
- def show_possible_result
51
- unless @all_result.to_s.empty?
52
- colorful("ALL POSSIBLE RESULT:","possible_result_title")
53
- colorful(@all_result.join("\s"*2),"possible_result_content")
54
- end
66
+ def prepare_dir(file)
67
+ dirseparator = file.rindex(File::Separator)+1
68
+ FileUtils.mkdir_p(file[0,dirseparator])
55
69
  end
56
70
  end
data/lib/yac.rb CHANGED
@@ -6,8 +6,11 @@ module Yac
6
6
  extend self
7
7
 
8
8
  YACRC = File.join("#{ENV['HOME']}",".yacrc")
9
+
9
10
  FileUtils.cp(File.join(File.dirname(__FILE__), "..","resources","yacrc"), YACRC) unless File.exist?(YACRC)
11
+
10
12
  CONFIG = YAML.load_file(File.join(ENV['HOME'],".yacrc"))
13
+
11
14
  CONFIG["root"] ||= File.join(ENV['HOME'],".yac")
12
15
 
13
16
  @main_path, @pri_path = File.join(CONFIG["root"],"/main/"), File.join(CONFIG["root"],"/private/")
@@ -15,41 +18,39 @@ module Yac
15
18
  @pri_git = Git.open(@pri_path)if File.exist?(@pri_path)
16
19
 
17
20
  def new(args)
18
- unless File.exist?(@main_path) && File.exist?(@pri_path)
19
- return unless init
20
- end
21
- @all_result = []
21
+ init unless File.exist?(@main_path) && File.exist?(@pri_path)
22
22
  (help && exit) if args.empty?
23
23
  case args.first
24
24
  when "show" then show(args[1,args.size])
25
- when "name" then search(args[1,args.size],"name")
26
- when "content" then search(args[1,args.size],"content")
25
+ when "search" then search(args[1,args.size])
27
26
  when "update" then update(args[1,args.size])
28
- when /^(add|edit)$/ then edit(args[1,args.size])
27
+ when "push" then push(args[1,args.size])
28
+ when "add" then add(args[1,args.size])
29
+ when "edit" then edit(args[1,args.size])
29
30
  when /^(help|-h|yac|--help)$/ then help
30
- when /^(sh|shell)$/ then shell(args[1,args.size])
31
+ when "sh" then shell(args[1,args.size])
31
32
  when "rm" then rm(args[1,args.size])
32
- when "init" then init
33
+ when "mv" then rename(args[1,args.size])
34
+ when /^version|-v$/ then
35
+ load File.join(File.dirname(__FILE__), "..", "yac.gemspec");colorful("yac, version: " + VER,"notice")
33
36
  else show(args)
34
37
  end
35
- show_possible_result
36
38
  rescue
37
39
  end
38
40
 
39
41
  def init
40
42
  FileUtils.mkdir_p(CONFIG['root'])
41
43
  {"main" => @main_path,"private" => @pri_path}.each do |name,path|
42
- unless File.exist?(path)
44
+ if File.exist?(path)
45
+ colorful("#{name} repository has already initialized.","notice")
46
+ else
43
47
  if CONFIG["#{name}"] && CONFIG["#{name}"]['clone-from']
44
- puts "Initialize #{name} repository from #{CONFIG[name]['clone-from']} to #{CONFIG['root']}/#{name}"
48
+ colorful("Initialize #{name} repository from #{CONFIG[name]['clone-from']} to #{CONFIG['root']}/#{name}","notice")
45
49
  Git.clone(CONFIG["#{name}"]['clone-from'], name, :path => CONFIG['root'])
46
50
  else
47
- puts "Initialize #{name} repository from scratch to #{CONFIG['root']}/#{name}"
48
- git = Git.init(path)
49
- git.add
50
- git.commit_all("init #{name} repository")
51
+ colorful("Initialize #{name} repository from scratch to #{CONFIG['root']}/#{name}","notice")
52
+ Git.init(path)
51
53
  end
52
- puts "#{name} repository initialized."
53
54
  @main_git = Git.open(@main_path) if File.exist?(@main_path)
54
55
  @pri_git = Git.open(@pri_path)if File.exist?(@pri_path)
55
56
  end
@@ -60,25 +61,40 @@ module Yac
60
61
  args.each {|x| show_single(x)}
61
62
  end
62
63
 
63
- def search(args,type = "name")
64
- args.each {|x| search_single(x,type)}
64
+ def search(args)
65
+ args.each {|x| search_content(x)}
65
66
  end
66
67
 
67
68
  def update(args)
68
- unless args.empty?
69
- @pri_git.pull if args.to_s =~ /pri/
70
- @main_git.pull if args.to_s =~ /main/
71
- else
72
- @main_git.pull && @pri_git.pull
69
+ case args.to_s
70
+ when /main/ then result = `cd "#{@main_path}" && git pull ` #NOTE There is an bug in the git.gem,Then I will write a new git library use shell command
71
+ when /all/ then result = `cd "#{@pri_path}" && git pull && cd "#{@main_path}" && git pull `
72
+ else result = `cd "#{@pri_path}" && git pull`
73
73
  end
74
+ colorful(result,"notice")
74
75
  rescue
75
- puts "ERROR: can not update the repository,\n #{$!}"
76
+ colorful("ERROR: can not update the repository,\n\n#{$!}","warn")
77
+ end
78
+
79
+ def push(args)
80
+ case args.to_s
81
+ when /main/ then result=@main_git.push
82
+ when /all/ then result=@pri_git.push && result << @main_git.push
83
+ else result = @pri_git.push
84
+ end
85
+ colorful(result,"notice")
86
+ rescue
87
+ colorful("Usage:\nyac push ( main | all )\n\nTry `yac -h` for more help\n\n#{$1}","warn")
76
88
  end
77
89
 
78
90
  def edit(args)
79
91
  args.each {|x| edit_single(x)}
80
92
  end
81
93
 
94
+ def add(args)
95
+ args.each {|x| add_single(x)}
96
+ end
97
+
82
98
  def rm(args)
83
99
  args.each {|x| rm_single(x)}
84
100
  end
@@ -90,97 +106,146 @@ module Yac
90
106
  def shell(args)
91
107
  case args.to_s
92
108
  when /main/
93
- colorful(" Welcome To The Main Yac Repository","head1")
94
- system "cd #{@main_path}; sh"
109
+ colorful(" Welcome To The Main Yac Repository","notice")
110
+ system "cd \"#{@main_path}\"; sh"
95
111
  else
96
- colorful(" Welcome To The Private Yac Repository","head1")
97
- system "cd #{@pri_path}; sh"
112
+ colorful(" Welcome To The Private Yac Repository","notice")
113
+ system "cd \"#{@pri_path}\"; sh"
98
114
  end
99
115
  end
100
116
 
101
- protected
102
- def rm_single(args)
103
- full_path(args)
104
- begin
105
- @working_git.remove(@file_path)
106
- @working_git.commit_all("#{args.sub(/^@/,"")}.ch removed")
107
- rescue Git::GitExecuteError
108
- FileUtils.rm_rf(@file_path)
117
+ def rename(args)
118
+ (colorful("Usage:\nyac mv [orign_name] [new_name]\n\nTry `yac -h` for more help","warn");exit) unless args.size == 2
119
+ file = search_name(args[0],"Rename")
120
+ new_name = file.sub(/^((?:.*)?(?:main|private)\/)(.*)(\..*)/,'\1'+args[1]+'\3')
121
+ if confirm("You Are Renaming #{file} To #{new_name}")
122
+ `mv "#{file}" "#{new_name}"`
123
+ @working_git.add
124
+ @working_git.commit_all("#{clean_filename(file)} Renamed to #{clean_filename(new_name)}")
109
125
  end
110
126
  end
111
127
 
112
- def edit_single(args)
113
- full_path(args)
114
- prepare_dir
115
- system("#{editor} #{@file_path}")
116
- @working_git.add
117
- @working_git.commit_all(" #{args.sub(/^@/,"")}.ch Updated")
128
+ protected
129
+ def add_single(args)
130
+ if args.include?('/') && args =~ /(@?)(?:(.*)\/)(.+)/
131
+ path = $1.empty? ? @pri_path : @main_path
132
+ all_path = %x{
133
+ find #{path} -type d -iwholename '#{path}*#{$2}*' -not -iwholename '*.git*'| sed 's/^.*\\(private\\|main\\)\\//#{$1}/'
134
+ }.to_a
135
+ colorful("Which directory do you want to use:","notice")
136
+ choosed_path = choose_one(all_path.concat([$1+$2]).uniq)
137
+ args = choosed_path + "/" + $3 if choosed_path
138
+ end
139
+ file = full_path(args+".ch")
140
+ if confirm("You Are Adding #{file}")
141
+ edit_text(file)
142
+ @working_git.add
143
+ @working_git.commit_all("#{clean_filename(file)} Added")
144
+ end
118
145
  end
119
146
 
120
147
  def show_single(args)
121
- result = search_single(args)
122
- if result.size == 1
123
- colorful(result.first,"filename")
124
- format_file(result.first)
125
- else
126
- result.map do |x|
127
- if x =~ /\/#{args.sub(/^@/,"")}\.\w+/
128
- colorful(x,"filename")
129
- format_file(x)
130
- end
131
- end
132
- end
148
+ file = search_name(args,"Show")
149
+ format_file(file)
133
150
  end
134
151
 
135
- def search_single(args,type="name")
136
- if type =~ /name/
137
- search_name(args)
138
- else
139
- search_content(args)
152
+ def rm_single(args)
153
+ file = search_name(args,"Remove")
154
+ if confirm("You Are Removing #{file}.")
155
+ begin
156
+ @working_git.remove(file)
157
+ @working_git.commit_all("#{clean_filename(file)} Removed")
158
+ rescue Git::GitExecuteError
159
+ FileUtils.rm_rf(file)
160
+ end
140
161
  end
141
162
  end
142
163
 
143
- def search_name(args)
144
- if args =~ /^@/ && main = args.sub(/^@/,"")
145
- @private_result = []
146
- @main_result = @main_git.ls_files.keys.grep(/#{main}/)
147
- else
148
- @private_result = @pri_git.ls_files.keys.grep(/#{args}/)
149
- @main_result = @main_git.ls_files.keys.grep(/#{args}/)
150
- end
151
- @all_result << @main_result.collect {|x| "@" + x} << @private_result
164
+ def edit_single(args)
165
+ file = search_name(args,"Edit")
166
+ edit_file(file)
167
+ @working_git.add
168
+ @working_git.commit_all("#{clean_filename(file)} Updated")
169
+ end
152
170
 
153
- @private_result.map do |x|
154
- @main_result.delete(x)
171
+ def search_name(args,msg = nil)
172
+ path = (args =~ /^(@)/) ? [@main_path] : [@main_path , @pri_path]
173
+ result = []
174
+ path.each do |x|
175
+ result.concat(`find "#{x}" -type f -iwholename '#{x}*#{args.sub(/^@/,'').strip}*' -not -iwholename '*.git*'| sed 's/^.*\\(private\\|main\\)\\//#{x=~/main/ ? '@':'' }/'`.to_a)
155
176
  end
156
- return (@main_result.collect {|x| @main_path +x}).concat(@private_result.collect {|x| @pri_path +x})
177
+ return result.empty? ? (colorful("Nothing Found About < #{args} >","warn")) :
178
+ (colorful("The Results About < #{args} > To #{msg || "Operate"} :","notice");full_path(choose_one(result)))
157
179
  end
158
180
 
159
181
  def search_content(args)
160
- result = `cd #{@pri_path} && grep -n #{args} -R *.ch 2>/dev/null`
161
- result << `cd #{@main_path} && grep -n #{args} -R *.ch 2>/dev/null | sed 's/^/@/g'`
182
+ args.sub!(/^"(.*)"/,'\1')
183
+ result = `cd "#{@pri_path}" && grep -n -i -P '#{args}' -R *.ch 2>/dev/null`.to_a
184
+ result.concat(`cd "#{@main_path}" && grep -n -i -P '#{args}' -R *.ch 2>/dev/null | sed 's/^/@/g'`.to_a)
185
+ all_result = []
162
186
  result.each do |x|
163
187
  stuff = x.split(':',3)
164
- colorful(title_of_file(stuff[0]),"filename",false)
188
+ colorful(stuff[0],"filename",false)
165
189
  print " "
166
190
  colorful(stuff[1],"line_number",false)
167
191
  print " "
168
- format_section(empha(stuff[2],nil,/((#{args}))/),true)
192
+ format_section(empha(stuff[2],nil,/((#{args}))/i),true)
193
+ all_result.concat(stuff[0].to_a)
194
+ end
195
+ loop do
196
+ colorful("All files Contain #{args.strip},Choose one to show","notice")
197
+ file = full_path(choose_one(all_result))
198
+ file ? format_file(file) : exit
169
199
  end
170
- end
171
-
172
- def prepare_dir
173
- dirseparator = @file_path.rindex(File::Separator)+1
174
- FileUtils.mkdir_p(@file_path[0,dirseparator])
175
200
  end
176
201
 
177
202
  def full_path(args)
203
+ return false unless args
178
204
  if args =~ /^@/
179
- @file_path = @main_path + args.sub(/^@/,"") + ".ch"
180
205
  @working_git = @main_git
206
+ file = @main_path + args.sub(/^@/,"")
181
207
  else
182
- @file_path = @pri_path + args + ".ch"
183
208
  @working_git = @pri_git
209
+ file = @pri_path + args
210
+ end
211
+ return file.strip
212
+ end
213
+
214
+ def confirm(*msg)
215
+ colorful("#{msg.to_s}\nAre You Sure (Y/N) (q to quit):","notice",false)
216
+ case STDIN.gets
217
+ when /n|q/i
218
+ return false
219
+ when /y/i
220
+ return true
221
+ else
222
+ colorful("Please Input A Valid String,","warn")
223
+ confirm(msg)
184
224
  end
185
225
  end
226
+
227
+ # Choose one file to operate
228
+ def choose_one(stuff)
229
+ if stuff.size == 1
230
+ return stuff[0]
231
+ elsif stuff.size > 1
232
+ stuff.each_index do |x|
233
+ colorful("%2s" % (x+1).to_s,"line_number",false)
234
+ printf " %-20s \t" % [stuff[x].rstrip]
235
+ print "\n" if (x+1)%4 == 0
236
+ end
237
+ printf "\n"
238
+ num = choose_range(stuff.size)
239
+ return stuff[num-1].to_s.strip
240
+ end
241
+ rescue #Rescue for user input q to quit
242
+ end
243
+
244
+ #choose a valid range
245
+ def choose_range(size)
246
+ colorful("Please Input A Valid Number To Choose (1..#{size}) (q to quit): ","notice",false)
247
+ num = STDIN.gets
248
+ return if num =~ /q/i
249
+ (1..size).member?(num.to_i) ? (return num.to_i) : choose_range(size)
250
+ end
186
251
  end
data/resources/yacrc CHANGED
@@ -4,12 +4,14 @@ main:
4
4
  clone-from: git://github.com/wosmvp/cheat.git
5
5
  # push-to:
6
6
  private:
7
- # clone-from:
8
- # push-to:
7
+ # clone-from:
8
+ # push-to:
9
9
 
10
- #pdf_command: evince
11
- #pic_command: evince
10
+ pdf_command: evince
11
+ #image_command: eog
12
12
  #editor: vim
13
+ #pdf_edit_command: ooffice
14
+ #image_edit_command: gimp
13
15
 
14
16
  #Set Color
15
17
  #1 - Change text to hicolor (bold) mode
@@ -35,17 +37,17 @@ private:
35
37
  #0 - Turn off all attributes.
36
38
  #7 - Change to Black text on a White background
37
39
 
38
- head1: 31
39
- head2: 32
40
- head3: 33
41
- head4: 34
42
- head5: 0;31;40
43
- head6: 0;31;40
44
- head7: 0;31;40
40
+ head1: 1;31
41
+ head2: 1;36
42
+ head3: 1;33
43
+ head4: 1;32
44
+ head5: 1;34
45
+ head6: 1;35
46
+ head7: 1;37
45
47
 
46
- empha: 32;40
47
- possible_result_title: 33;41
48
- possible_result_content: 31
49
- filename: 31
48
+ warn: 31
49
+ notice: 33
50
+ empha: 31;43
51
+ filename: 34
50
52
  line_number: 32
51
53
  text:
data/yac.gemspec CHANGED
@@ -1,10 +1,10 @@
1
1
  GEM = "yac"
2
- VER = "0.1.6"
3
- DATE = %q{2008-10-18}
2
+ VER = "1.0.0"
3
+ DATE = %q{2008-10-28}
4
4
  AUTHOR = "Jinzhu Zhang"
5
5
  EMAIL = "wosmvp@gmail.com"
6
6
  HOMEPAGE = "http://www.zhangjinzhu.com"
7
- SUMMARY = "Yet Another Cheat"
7
+ SUMMARY = "Yet Another Cheat: sexy command line tool for cheat sheet"
8
8
 
9
9
  Gem::Specification.new do |s|
10
10
 
@@ -25,7 +25,7 @@ Gem::Specification.new do |s|
25
25
  s.autorequire = 'yac'
26
26
  s.executables = ["yac"]
27
27
 
28
- s.files = %w[README.rdoc README.cn yac.gemspec resources/yacrc bin/yac lib/yac.rb lib/format.rb]
28
+ s.files = %w[README.rdoc yac.gemspec resources/yacrc bin/yac lib/yac.rb lib/format.rb]
29
29
 
30
30
  #s.has_rdoc = true
31
31
  s.rdoc_options = ["--quiet", "--title", "YAC => Yet Another Cheat", "--opname", "index.html", "--line-numbers", "--main", "README.rdoc", "--inline-source"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yac
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jinzhu Zhang
@@ -9,7 +9,7 @@ autorequire: yac
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-10-18 00:00:00 +08:00
12
+ date: 2008-10-28 00:00:00 +08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -22,7 +22,7 @@ dependencies:
22
22
  - !ruby/object:Gem::Version
23
23
  version: 1.0.0
24
24
  version:
25
- description: Yet Another Cheat
25
+ description: "Yet Another Cheat: sexy command line tool for cheat sheet"
26
26
  email: wosmvp@gmail.com
27
27
  executables:
28
28
  - yac
@@ -32,7 +32,6 @@ extra_rdoc_files:
32
32
  - README.rdoc
33
33
  files:
34
34
  - README.rdoc
35
- - README.cn
36
35
  - yac.gemspec
37
36
  - resources/yacrc
38
37
  - bin/yac
@@ -71,6 +70,6 @@ rubyforge_project: yac
71
70
  rubygems_version: 1.3.0
72
71
  signing_key:
73
72
  specification_version: 2
74
- summary: Yet Another Cheat
73
+ summary: "Yet Another Cheat: sexy command line tool for cheat sheet"
75
74
  test_files: []
76
75
 
data/README.cn DELETED
@@ -1,57 +0,0 @@
1
- = YAC => Yet Another Cheet (Powered By Ruby)
2
-
3
- == FEATURES:
4
- YAC was inspired by 'chit' (http://github.com/robin/chit) by robin and 'cheat' (http://cheat.errtheblog.com/) by Chris Wanstrath
5
- what's the different:
6
- @@@Colorful and Sexy!@@@
7
-
8
- == How To Use
9
-
10
- === 初始化一个仓库:
11
- $ yac init
12
- === 得到cheat表:
13
- $ yac [cheatsheet]
14
- === 修改一个cheat表
15
- $ yac edit [cheatsheet]
16
- === 加入一个cheat表
17
- $ yac add [cheatsheet]
18
- === 删除一个cheat表
19
- $ yac rm [cheatsheet]
20
- === 按照cheat表的文件名搜索
21
- $ yac name [keyword]
22
- === 按照cheat表的内容搜索
23
- $ yac content [keyword]
24
- === 更新git仓库
25
- $ yac update main 更新主仓库
26
- $ yac update private 更新个人仓库
27
- $ yac update 全部更新
28
- === 帮助
29
- $ yac help / -h /--help / yac
30
- === 打开仓库shell
31
- $ yac shell / sh main 打开主仓库的shell
32
- $ yac shell / sh 打开个人仓库的shell
33
- === 文档格式
34
- 使用.ch后缀,在行首加一个=为一级标题,加N个=为N级标题,不同级别标题可以加入不同颜色高亮
35
- 在行首加入#将忽略该行,使用 '\#'可以得到 '#'的效果
36
- 在某词两端加入三个@,例:@@\@ HI @@\@(去掉两个/)将会高亮 HI
37
- === 设置高亮的颜色
38
- 默认用主目录下的 .yacrc来设置,详细内容,参见 resources目录 yacrc文件
39
- === 其它
40
- 在 表名/关键词 前加入@将会只搜索主仓库
41
- 更多性感使用方法,参见源码 :)
42
-
43
- == REQUIREMENTS:
44
-
45
- * Ruby
46
- * rubygems
47
- * git
48
-
49
- == LICENSE:
50
-
51
- This software is shared by GPL3 License
52
-
53
- Copyright (c) 2008 Jinzhu Zhang
54
-
55
- == BY: Jinzhu Zhang
56
- http://www.zhangjinzhu.com
57
- wosmvp (no-spam) gmail (no-spam) com