milkode 1.2.0 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/HISTORY.ja.rdoc +12 -0
- data/HISTORY.rdoc +12 -0
- data/VERSION +1 -1
- data/bin/gmilk +1 -1
- data/bin/milk +1 -1
- data/lib/milkode/cdstk/cdstk.rb +14 -0
- data/lib/milkode/cdweb/app.rb +19 -2
- data/lib/milkode/cdweb/lib/coderay_html2.rb +12 -6
- data/lib/milkode/cdweb/lib/coderay_wrapper.rb +6 -3
- data/lib/milkode/cdweb/lib/command.rb +8 -5
- data/lib/milkode/cdweb/lib/database.rb +4 -0
- data/lib/milkode/cdweb/lib/search_contents.rb +2 -2
- data/lib/milkode/cdweb/lib/search_fuzzy_gotoline.rb +1 -1
- data/lib/milkode/cdweb/lib/search_gotoline.rb +1 -1
- data/lib/milkode/cdweb/public/css/coderay-patch.css +2 -2
- data/lib/milkode/cdweb/views/milkode.scss +1 -1
- data/lib/milkode/common/util.rb +56 -13
- data/lib/milkode/database/updater.rb +11 -12
- data/milkode.gemspec +11 -12
- data/test/test_cdweb_app.rb +36 -0
- data/test/test_util.rb +25 -6
- metadata +227 -239
data/HISTORY.ja.rdoc
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
=== 1.3.0 2013/10/28
|
2
|
+
|
3
|
+
* milk web
|
4
|
+
* Highlight keywords
|
5
|
+
* Add github button if package is github repository
|
6
|
+
* Touch update time if exist update file only
|
7
|
+
* Add test case
|
8
|
+
|
9
|
+
* milk
|
10
|
+
* GitHub repository check in 'milk update'
|
11
|
+
* Improve to not stop the package directory even if there is no
|
12
|
+
|
1
13
|
=== 1.2.0 2013/08/07
|
2
14
|
|
3
15
|
* milk web
|
data/HISTORY.rdoc
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
=== 1.3.0 2013/10/28
|
2
|
+
|
3
|
+
* milk web
|
4
|
+
* Highlight keywords
|
5
|
+
* Add github button if package is github repository
|
6
|
+
* Touch update time if exist update file only
|
7
|
+
* Add test case
|
8
|
+
|
9
|
+
* milk
|
10
|
+
* GitHub repository check in 'milk update'
|
11
|
+
* Improve to not stop the package directory even if there is no
|
12
|
+
|
1
13
|
=== 1.2.0 2013/08/07
|
2
14
|
|
3
15
|
* milk web
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.3.0
|
data/bin/gmilk
CHANGED
data/bin/milk
CHANGED
data/lib/milkode/cdstk/cdstk.rb
CHANGED
@@ -1136,6 +1136,20 @@ EOF
|
|
1136
1136
|
|
1137
1137
|
updater.exec
|
1138
1138
|
|
1139
|
+
# Is github repository ?
|
1140
|
+
if Util::exist_command?('git') && File.exist?(File.join(package.directory, ".git"))
|
1141
|
+
repo_name = Dir.chdir(package.directory) { Util::github_repo(`git config --get remote.origin.url`) }
|
1142
|
+
|
1143
|
+
if repo_name && repo_name != package.options[:github]
|
1144
|
+
dst = package.options
|
1145
|
+
dst[:github] = repo_name
|
1146
|
+
package.set_options(dst)
|
1147
|
+
@yaml.update(package)
|
1148
|
+
@yaml.save
|
1149
|
+
alert("github", repo_name)
|
1150
|
+
end
|
1151
|
+
end
|
1152
|
+
|
1139
1153
|
@package_count += 1
|
1140
1154
|
@file_count += updater.result.file_count
|
1141
1155
|
@add_count += updater.result.add_count
|
data/lib/milkode/cdweb/app.rb
CHANGED
@@ -44,7 +44,7 @@ end
|
|
44
44
|
get '/' do
|
45
45
|
if Database.validate?
|
46
46
|
@setting = WebSetting.new
|
47
|
-
@version = "1.
|
47
|
+
@version = "1.3.0"
|
48
48
|
|
49
49
|
@package_num = Database.instance.yaml_package_num
|
50
50
|
@file_num = Database.instance.totalRecords
|
@@ -378,9 +378,26 @@ EOF
|
|
378
378
|
end
|
379
379
|
end
|
380
380
|
|
381
|
+
def goto_github_project(path)
|
382
|
+
return "" if (path == "")
|
383
|
+
|
384
|
+
paths = path.split('/')
|
385
|
+
package = Database.instance.yaml_package(paths[0])
|
386
|
+
return "" unless package.options[:github]
|
387
|
+
|
388
|
+
image_href = 'https://raw.github.com/github/media/master/octocats/blacktocat-16.png'
|
389
|
+
url = "https://github.com/#{package.options[:github]}"
|
390
|
+
|
391
|
+
if (paths.size == 1)
|
392
|
+
"<a href='#{url}' target=\"_blank\"><img src='#{image_href}'></img></a>"
|
393
|
+
else
|
394
|
+
"<a href='#{url}/tree/master/#{paths[1..-1].join('/')}' target=\"_blank\"><img src='#{image_href}'></img></a>"
|
395
|
+
end
|
396
|
+
end
|
397
|
+
|
381
398
|
# .search-summary に追加情報を表示したい時はこの関数をオーバーライド
|
382
399
|
def search_summary_hook(path)
|
383
|
-
|
400
|
+
goto_github_project(path)
|
384
401
|
end
|
385
402
|
end
|
386
403
|
|
@@ -7,6 +7,7 @@
|
|
7
7
|
|
8
8
|
require 'rubygems'
|
9
9
|
require 'rack'
|
10
|
+
require 'milkode/common/util'
|
10
11
|
|
11
12
|
module CodeRay
|
12
13
|
module Encoders
|
@@ -46,22 +47,27 @@ module Encoders
|
|
46
47
|
end
|
47
48
|
|
48
49
|
def ornament_line_attr(options)
|
49
|
-
# p options
|
50
50
|
line_number = options[:line_number_start]
|
51
|
-
|
52
51
|
lines = @out.split("\n")
|
53
52
|
|
54
53
|
lines.map{|l|
|
55
54
|
line_number += 1
|
56
|
-
|
55
|
+
line_attr(l, line_number - 1, options)
|
57
56
|
}.join("\n") + "\n"
|
58
57
|
end
|
59
58
|
|
60
|
-
def line_attr(no,
|
59
|
+
def line_attr(line, no, options)
|
60
|
+
# p options
|
61
|
+
is_highlight = true if options[:highlight_lines].include?(no)
|
62
|
+
|
61
63
|
r = []
|
62
64
|
r << "id=\"n#{no}\""
|
63
|
-
r << "class=\"highlight-line\"" if
|
64
|
-
r.join(" ")
|
65
|
+
r << "class=\"highlight-line\"" if is_highlight
|
66
|
+
attr = r.join(" ")
|
67
|
+
|
68
|
+
line = Milkode::Util::highlight_keywords(line, options[:keywords], 'highlight-filename') if is_highlight
|
69
|
+
|
70
|
+
"<span #{attr}>#{line}</span>"
|
65
71
|
end
|
66
72
|
|
67
73
|
# [ref] CodeRay::Encoders::Numberling#number! (coderay-1.0.5/lib/coderay/encoders/numbering.rb:8)
|
@@ -17,12 +17,13 @@ module Milkode
|
|
17
17
|
attr_reader :line_number_start
|
18
18
|
attr_reader :highlight_lines
|
19
19
|
|
20
|
-
def initialize(content, filename, match_lines = [])
|
20
|
+
def initialize(content, filename, match_lines = [], keywords = [])
|
21
21
|
@content = content
|
22
22
|
@filename = filename
|
23
23
|
@match_lines = match_lines
|
24
24
|
@highlight_lines = match_lines.map{|v|v.index+1}
|
25
25
|
@line_number_start = 1
|
26
|
+
@keywords = keywords
|
26
27
|
end
|
27
28
|
|
28
29
|
def col_limit(limit_num)
|
@@ -59,7 +60,8 @@ module Milkode
|
|
59
60
|
:line_number_start => @line_number_start,
|
60
61
|
:line_number_anchors => false,
|
61
62
|
:onclick_copy_line_number => true,
|
62
|
-
:onclick_copy_prefix => "/#{@filename}:"
|
63
|
+
:onclick_copy_prefix => "/#{@filename}:",
|
64
|
+
:keywords => @keywords
|
63
65
|
)
|
64
66
|
end
|
65
67
|
|
@@ -72,7 +74,8 @@ module Milkode
|
|
72
74
|
:highlight_lines => @highlight_lines,
|
73
75
|
:line_number_start => @line_number_start,
|
74
76
|
:line_number_anchors => 'n',
|
75
|
-
:line_number_anchor_url => url
|
77
|
+
:line_number_anchor_url => url,
|
78
|
+
:keywords => @keywords
|
76
79
|
)
|
77
80
|
end
|
78
81
|
|
@@ -23,8 +23,8 @@ module Milkode
|
|
23
23
|
|
24
24
|
q = params[:query] && Query.new(params[:query])
|
25
25
|
|
26
|
-
if (Util::larger_than_oneline(record.content)
|
27
|
-
if Util::gotoline_keyword?
|
26
|
+
if (Util::larger_than_oneline(record.content) && q && !q.keywords.empty?)
|
27
|
+
if Util::gotoline_keyword?(q.keywords[0])
|
28
28
|
gotolines = Util::parse_gotoline(q.keywords)
|
29
29
|
match_lines = []
|
30
30
|
gotolines.each do |v|
|
@@ -32,19 +32,22 @@ module Milkode
|
|
32
32
|
match_lines << Grep::MatchLineResult.new(v[1] - 1, nil)
|
33
33
|
end
|
34
34
|
end
|
35
|
-
|
35
|
+
# TestCdwebApp#t_view_gotoline
|
36
|
+
@record_content = CodeRayWrapper.new(record.content, record.shortpath, match_lines, q.keywords).to_html
|
36
37
|
else
|
37
38
|
grep = Grep.new(record.content)
|
38
39
|
match_lines = grep.match_lines_and(q.keywords, is_sensitive, q.wide_match_range)
|
39
40
|
|
40
41
|
if match_lines.empty? && q.wide_match_range_empty?
|
41
|
-
#
|
42
|
+
# Expand search range
|
42
43
|
match_lines = grep.match_lines_and(q.keywords, is_sensitive, 7)
|
43
44
|
end
|
44
45
|
|
45
|
-
|
46
|
+
# TestCdwebApp#t_view_with_query
|
47
|
+
@record_content = CodeRayWrapper.new(record.content, record.shortpath, match_lines, q.keywords).to_html
|
46
48
|
end
|
47
49
|
else
|
50
|
+
# TestCdwebApp#t_view_simple
|
48
51
|
@record_content = CodeRayWrapper.new(record.content, record.shortpath).to_html
|
49
52
|
end
|
50
53
|
|
@@ -49,7 +49,7 @@ module Milkode
|
|
49
49
|
# gotolineモード (test_cdstk.rb:55)
|
50
50
|
if @match_records.empty? && recommended_fuzzy_gotoline?
|
51
51
|
# 専用の Searcher を作成
|
52
|
-
@searcher_fuzzy_gotoline = SearchFuzzyGotoLine.new(@path, @params, @q)
|
52
|
+
@searcher_fuzzy_gotoline = SearchFuzzyGotoLine.new(@path, @params, @q, @suburl)
|
53
53
|
|
54
54
|
# 結果をコピーする
|
55
55
|
@total_records = @searcher_fuzzy_gotoline.total_records
|
@@ -309,7 +309,7 @@ EOF
|
|
309
309
|
last_index = match_group[-1].match_line.index + NTH
|
310
310
|
match_lines = match_group.map{|m| m.match_line}
|
311
311
|
|
312
|
-
coderay = CodeRayWrapper.new(record.content, record.shortpath, match_lines)
|
312
|
+
coderay = CodeRayWrapper.new(record.content, record.shortpath, match_lines, @q.keywords)
|
313
313
|
coderay.col_limit(COL_LIMIT)
|
314
314
|
coderay.set_range(first_index..last_index)
|
315
315
|
|
@@ -122,7 +122,7 @@ EOF
|
|
122
122
|
last_index = match_group[-1].match_line.index + NTH
|
123
123
|
match_lines = match_group.map{|m| m.match_line}
|
124
124
|
|
125
|
-
coderay = CodeRayWrapper.new(record.content, record.shortpath, match_lines)
|
125
|
+
coderay = CodeRayWrapper.new(record.content, record.shortpath, match_lines, @q.keywords)
|
126
126
|
coderay.col_limit(COL_LIMIT)
|
127
127
|
coderay.set_range(first_index..last_index)
|
128
128
|
|
@@ -111,7 +111,7 @@ EOF
|
|
111
111
|
last_index = match_group[-1].match_line.index + NTH
|
112
112
|
match_lines = match_group.map{|m| m.match_line}
|
113
113
|
|
114
|
-
coderay = CodeRayWrapper.new(record.content, record.shortpath, match_lines)
|
114
|
+
coderay = CodeRayWrapper.new(record.content, record.shortpath, match_lines, @q.keywords)
|
115
115
|
coderay.col_limit(COL_LIMIT)
|
116
116
|
coderay.set_range(first_index..last_index)
|
117
117
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/* for CodeRay */
|
2
|
-
.CodeRay .highlight-line { background-color: #
|
3
|
-
.CodeRay .select-line { background-color: #
|
2
|
+
.CodeRay .highlight-line { background-color: #f5f7f9; }
|
3
|
+
.CodeRay .select-line { background-color: #d7e8fe; }
|
4
4
|
|
5
5
|
/* html_anchor */
|
6
6
|
.match-num { font-size: 13px; font-weight: bold; }
|
data/lib/milkode/common/util.rb
CHANGED
@@ -243,26 +243,69 @@ module Milkode
|
|
243
243
|
end
|
244
244
|
|
245
245
|
def highlight_keywords(src, keywords, css_class)
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
246
|
+
# Init highlight_map
|
247
|
+
hightlight_map = Array.new(src.length, nil)
|
248
|
+
|
249
|
+
keywords.each do |keyword|
|
250
|
+
pos = 0
|
251
|
+
|
252
|
+
loop do
|
253
|
+
r = src.match(/#{keyword}/i, pos) do |m|
|
254
|
+
s = m.begin(0)
|
255
|
+
l = keyword.length
|
256
|
+
e = s+l
|
257
|
+
(s...e).each {|i| hightlight_map[i] = 1 }
|
258
|
+
pos = e
|
259
|
+
end
|
260
|
+
|
261
|
+
break if r.nil?
|
262
|
+
end
|
250
263
|
end
|
251
|
-
end
|
252
264
|
|
253
|
-
|
254
|
-
|
265
|
+
# Delete html tag
|
266
|
+
index = 0
|
267
|
+
in_tag = false
|
268
|
+
src.each_char do |char|
|
269
|
+
in_tag = true if char == '<'
|
270
|
+
hightlight_map[index] = nil if in_tag
|
271
|
+
in_tag = false if char == '>'
|
272
|
+
index += 1
|
273
|
+
end
|
255
274
|
|
256
|
-
|
275
|
+
# Output
|
276
|
+
result = ""
|
257
277
|
|
258
|
-
|
259
|
-
|
260
|
-
|
278
|
+
index = 0
|
279
|
+
prev = nil
|
280
|
+
src.each_char do |char|
|
281
|
+
current = hightlight_map[index]
|
282
|
+
|
283
|
+
if prev.nil? && current
|
284
|
+
result += "<span class='#{css_class}'>"
|
285
|
+
elsif prev && current.nil?
|
286
|
+
result += "</span>"
|
261
287
|
end
|
288
|
+
|
289
|
+
result += char
|
290
|
+
|
291
|
+
index += 1
|
292
|
+
prev = current
|
262
293
|
end
|
263
|
-
|
264
|
-
|
294
|
+
result += "</span>" if prev
|
295
|
+
|
296
|
+
result
|
265
297
|
end
|
298
|
+
|
299
|
+
def github_repo(src)
|
300
|
+
if src.match(/\Agit@github\.com:(.*)\.git\Z/)
|
301
|
+
$1
|
302
|
+
elsif src.match(/\A\w+:\/\/github\.com\/(.*)\.git\Z/)
|
303
|
+
$1
|
304
|
+
else
|
305
|
+
nil
|
306
|
+
end
|
307
|
+
end
|
308
|
+
|
266
309
|
end
|
267
310
|
end
|
268
311
|
|
@@ -1,13 +1,8 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
|
-
#
|
3
|
-
# @file
|
4
|
-
# @brief
|
5
|
-
# @author ongaeshi
|
6
|
-
# @date 2012/09/15
|
7
|
-
|
8
2
|
require 'milkode/database/groonga_database'
|
9
3
|
require 'milkode/common/grenfiletest'
|
10
4
|
require 'milkode/common/ignore_checker'
|
5
|
+
require 'milkode/common/util'
|
11
6
|
require 'kconv'
|
12
7
|
|
13
8
|
module Milkode
|
@@ -27,12 +22,12 @@ module Milkode
|
|
27
22
|
def exec
|
28
23
|
# git pull
|
29
24
|
if @options[:update_with_git_pull]
|
30
|
-
Dir.chdir(@package.directory) { system("git pull") }
|
25
|
+
Dir.chdir(@package.directory) { system("git pull") } if File.exist?(@package.directory)
|
31
26
|
end
|
32
27
|
|
33
28
|
# svn update
|
34
29
|
if @options[:update_with_svn_update]
|
35
|
-
Dir.chdir(@package.directory) { system("svn update") }
|
30
|
+
Dir.chdir(@package.directory) { system("svn update") } if File.exist?(@package.directory)
|
36
31
|
end
|
37
32
|
|
38
33
|
# Add global .gitignore
|
@@ -50,16 +45,16 @@ module Milkode
|
|
50
45
|
|
51
46
|
# ctags
|
52
47
|
if @options[:update_with_ctags]
|
53
|
-
Dir.chdir(@package.directory) { system("ctags -R") }
|
48
|
+
Dir.chdir(@package.directory) { system("ctags -R") } if File.exist?(@package.directory)
|
54
49
|
end
|
55
50
|
|
56
51
|
# ctags -e
|
57
52
|
if @options[:update_with_ctags_e]
|
58
|
-
Dir.chdir(@package.directory) { system("ctags -R -e") }
|
53
|
+
Dir.chdir(@package.directory) { system("ctags -R -e") } if File.exist?(@package.directory)
|
59
54
|
end
|
60
55
|
|
61
|
-
#
|
62
|
-
@grndb.packages.touch(@package_name, :updatetime)
|
56
|
+
# Update time
|
57
|
+
@grndb.packages.touch(@package_name, :updatetime) if @result.exist_update?
|
63
58
|
end
|
64
59
|
|
65
60
|
def set_package_ignore(ignore_setting)
|
@@ -124,6 +119,10 @@ module Milkode
|
|
124
119
|
def inc_update_count
|
125
120
|
@update_count += 1
|
126
121
|
end
|
122
|
+
|
123
|
+
def exist_update?
|
124
|
+
@add_count > 0 || @update_count > 0
|
125
|
+
end
|
127
126
|
end
|
128
127
|
|
129
128
|
class ResultAccumulator
|
data/milkode.gemspec
CHANGED
@@ -4,14 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "1.
|
7
|
+
s.name = "milkode"
|
8
|
+
s.version = "1.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["ongaeshi"]
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
12
|
+
s.date = "2013-10-28"
|
13
|
+
s.description = "Line based local source code search engine & grep-command & web-app."
|
14
|
+
s.email = "ongaeshi0621@gmail.com"
|
15
15
|
s.executables = ["gmilk", "milk"]
|
16
16
|
s.extra_rdoc_files = [
|
17
17
|
"LICENSE.txt",
|
@@ -196,18 +196,17 @@ Gem::Specification.new do |s|
|
|
196
196
|
"test/test_wide_matcher.rb",
|
197
197
|
"test/test_yaml_file_wrapper.rb"
|
198
198
|
]
|
199
|
-
s.homepage =
|
199
|
+
s.homepage = "http://github.com/ongaeshi/milkode"
|
200
200
|
s.licenses = ["MIT"]
|
201
201
|
s.require_paths = ["lib"]
|
202
|
-
s.rubygems_version =
|
203
|
-
s.summary =
|
202
|
+
s.rubygems_version = "1.8.23"
|
203
|
+
s.summary = "Line based local source code search engine & grep-command & web-app."
|
204
204
|
|
205
205
|
if s.respond_to? :specification_version then
|
206
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
207
206
|
s.specification_version = 3
|
208
207
|
|
209
208
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
210
|
-
s.add_runtime_dependency(%q<termcolor>, ["
|
209
|
+
s.add_runtime_dependency(%q<termcolor>, ["< 1.2.2", ">= 1.2.0"])
|
211
210
|
s.add_runtime_dependency(%q<rroonga>, [">= 1.1.0"])
|
212
211
|
s.add_runtime_dependency(%q<rack>, [">= 1.5.2"])
|
213
212
|
s.add_runtime_dependency(%q<sinatra>, [">= 1.2.6"])
|
@@ -224,7 +223,7 @@ Gem::Specification.new do |s|
|
|
224
223
|
s.add_development_dependency(%q<sinatra-reloader>, [">= 0"])
|
225
224
|
s.add_development_dependency(%q<test-unit>, [">= 2.5.4"])
|
226
225
|
else
|
227
|
-
s.add_dependency(%q<termcolor>, ["
|
226
|
+
s.add_dependency(%q<termcolor>, ["< 1.2.2", ">= 1.2.0"])
|
228
227
|
s.add_dependency(%q<rroonga>, [">= 1.1.0"])
|
229
228
|
s.add_dependency(%q<rack>, [">= 1.5.2"])
|
230
229
|
s.add_dependency(%q<sinatra>, [">= 1.2.6"])
|
@@ -242,7 +241,7 @@ Gem::Specification.new do |s|
|
|
242
241
|
s.add_dependency(%q<test-unit>, [">= 2.5.4"])
|
243
242
|
end
|
244
243
|
else
|
245
|
-
s.add_dependency(%q<termcolor>, ["
|
244
|
+
s.add_dependency(%q<termcolor>, ["< 1.2.2", ">= 1.2.0"])
|
246
245
|
s.add_dependency(%q<rroonga>, [">= 1.1.0"])
|
247
246
|
s.add_dependency(%q<rack>, [">= 1.5.2"])
|
248
247
|
s.add_dependency(%q<sinatra>, [">= 1.2.6"])
|
data/test/test_cdweb_app.rb
CHANGED
@@ -37,6 +37,12 @@ class TestCdwebApp < Test::Unit::TestCase
|
|
37
37
|
t_help
|
38
38
|
t_not_found
|
39
39
|
t_view_empty_file
|
40
|
+
t_view_with_query
|
41
|
+
t_view_gotoline
|
42
|
+
t_view_simple
|
43
|
+
t_search_contents
|
44
|
+
t_search_gotoline
|
45
|
+
t_search_fuzzy_gotoline
|
40
46
|
end
|
41
47
|
|
42
48
|
private
|
@@ -68,6 +74,36 @@ class TestCdwebApp < Test::Unit::TestCase
|
|
68
74
|
get '/home/a_project/empty.txt'
|
69
75
|
assert_equal 200, last_response.status # 空ファイルも表示出来るようにする
|
70
76
|
end
|
77
|
+
|
78
|
+
def t_view_with_query
|
79
|
+
get '/home/a_project/cdstk.rb?query=def'
|
80
|
+
assert_equal 200, last_response.status
|
81
|
+
end
|
82
|
+
|
83
|
+
def t_view_gotoline
|
84
|
+
get '/home/a_project/cdstk.rb?query=%2Fa_project%2Fcdstk.rb%3A9'
|
85
|
+
assert_equal 200, last_response.status
|
86
|
+
end
|
87
|
+
|
88
|
+
def t_view_simple
|
89
|
+
get '/home/a_project/cdstk.rb'
|
90
|
+
assert_equal 200, last_response.status
|
91
|
+
end
|
92
|
+
|
93
|
+
def t_search_contents
|
94
|
+
get '/home/?query=def'
|
95
|
+
assert_equal 200, last_response.status
|
96
|
+
end
|
97
|
+
|
98
|
+
def t_search_gotoline
|
99
|
+
get '/home/?query=%2Fa_project%2Fcdstk.rb%3A1&shead=package#n1'
|
100
|
+
assert_equal 200, last_response.status
|
101
|
+
end
|
102
|
+
|
103
|
+
def t_search_fuzzy_gotoline
|
104
|
+
get '/home/?query=g%3Aa_project+1&shead=package'
|
105
|
+
assert_equal 200, last_response.status
|
106
|
+
end
|
71
107
|
end
|
72
108
|
|
73
109
|
|
data/test/test_util.rb
CHANGED
@@ -27,10 +27,11 @@ class TestUtil < Test::Unit::TestCase
|
|
27
27
|
assert File.exist?('nodir_abc/c.txt')
|
28
28
|
end
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
30
|
+
# Remove because fail test on single test
|
31
|
+
# def test_root_entrylist
|
32
|
+
# assert_equal ['abc/'], Milkode::Util::root_entrylist('../data/abc.zip')
|
33
|
+
# assert_equal ['a.txt', 'b.txt', 'c.txt'], Milkode::Util::root_entrylist('../data/nodir_abc.zip')
|
34
|
+
# end
|
34
35
|
|
35
36
|
def test_platform
|
36
37
|
if (Milkode::Util::platform_osx?)
|
@@ -122,8 +123,26 @@ class TestUtil < Test::Unit::TestCase
|
|
122
123
|
assert_equal 'to/a.txt', restpath
|
123
124
|
end
|
124
125
|
|
125
|
-
|
126
|
-
|
126
|
+
def test_highlight_keywords
|
127
|
+
assert_equal "stringstr", Milkode::Util::highlight_keywords("stringstr", [], 'attr')
|
128
|
+
assert_equal "<span class='attr'>str</span>ing", Milkode::Util::highlight_keywords("string", ["str"], 'attr')
|
129
|
+
assert_equal "<span class='attr'>str</span>ing<span class='attr'>str</span>", Milkode::Util::highlight_keywords("stringstr", ["str"], 'attr')
|
130
|
+
assert_equal "<span class='attr'>stri</span>ng<span class='attr'>str</span>", Milkode::Util::highlight_keywords("stringstr", ["str", "i", "s"], 'attr')
|
131
|
+
assert_equal "abc<span class='attr'>d</span>", Milkode::Util::highlight_keywords("abcd", ["d"], 'attr')
|
132
|
+
assert_equal "<span class='attr'>日本</span>語a<span class='attr'>bc</span>dで<span class='attr'>す</span>", Milkode::Util::highlight_keywords("日本語abcdです", ["bc", "日本", "す"], 'attr')
|
133
|
+
assert_equal "<span><span class='attr'>span</span></span>", Milkode::Util::highlight_keywords("<span>span</span>", ["span"], 'attr')
|
134
|
+
end
|
135
|
+
|
136
|
+
def test_github_repo
|
137
|
+
assert_equal 'ongaeshi/firelink', Milkode::Util::github_repo('git@github.com:ongaeshi/firelink.git')
|
138
|
+
assert_equal 'ongaeshi/milkode' , Milkode::Util::github_repo('git@github.com:ongaeshi/milkode.git')
|
139
|
+
assert_equal 'ongaeshi/milkode' , Milkode::Util::github_repo('git://github.com/ongaeshi/milkode.git')
|
140
|
+
assert_equal 'ongaeshi/milkode' , Milkode::Util::github_repo('https://github.com/ongaeshi/milkode.git')
|
141
|
+
assert_equal 'ongaeshi/milkode' , Milkode::Util::github_repo('http://github.com/ongaeshi/milkode.git')
|
142
|
+
assert_equal nil , Milkode::Util::github_repo('https://ongaeshi.me/ongaeshi/milkode.git')
|
143
|
+
end
|
144
|
+
|
145
|
+
def teardown
|
127
146
|
teardown_custom(true)
|
128
147
|
# teardown_custom(false)
|
129
148
|
end
|
metadata
CHANGED
@@ -1,290 +1,288 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: milkode
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 2
|
9
|
-
- 0
|
10
|
-
version: 1.2.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.3.0
|
5
|
+
prerelease:
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- ongaeshi
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
22
|
-
type: :runtime
|
23
|
-
prerelease: false
|
12
|
+
date: 2013-10-28 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
24
15
|
name: termcolor
|
25
|
-
|
26
|
-
none: false
|
27
|
-
requirements:
|
28
|
-
- - ">="
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
hash: 31
|
31
|
-
segments:
|
32
|
-
- 1
|
33
|
-
- 2
|
34
|
-
- 0
|
35
|
-
version: 1.2.0
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
36
19
|
- - <
|
37
|
-
- !ruby/object:Gem::Version
|
38
|
-
hash: 27
|
39
|
-
segments:
|
40
|
-
- 1
|
41
|
-
- 2
|
42
|
-
- 2
|
20
|
+
- !ruby/object:Gem::Version
|
43
21
|
version: 1.2.2
|
44
|
-
|
45
|
-
- !ruby/object:Gem::
|
22
|
+
- - ! '>='
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 1.2.0
|
46
25
|
type: :runtime
|
47
26
|
prerelease: false
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - <
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.2.2
|
33
|
+
- - ! '>='
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: 1.2.0
|
36
|
+
- !ruby/object:Gem::Dependency
|
48
37
|
name: rroonga
|
49
|
-
|
50
|
-
none: false
|
51
|
-
requirements:
|
52
|
-
- -
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
hash: 19
|
55
|
-
segments:
|
56
|
-
- 1
|
57
|
-
- 1
|
58
|
-
- 0
|
38
|
+
requirement: !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
59
43
|
version: 1.1.0
|
60
|
-
requirement: *id002
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
44
|
type: :runtime
|
63
45
|
prerelease: false
|
46
|
+
version_requirements: !ruby/object:Gem::Requirement
|
47
|
+
none: false
|
48
|
+
requirements:
|
49
|
+
- - ! '>='
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: 1.1.0
|
52
|
+
- !ruby/object:Gem::Dependency
|
64
53
|
name: rack
|
65
|
-
|
66
|
-
none: false
|
67
|
-
requirements:
|
68
|
-
- -
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
hash: 7
|
71
|
-
segments:
|
72
|
-
- 1
|
73
|
-
- 5
|
74
|
-
- 2
|
54
|
+
requirement: !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
56
|
+
requirements:
|
57
|
+
- - ! '>='
|
58
|
+
- !ruby/object:Gem::Version
|
75
59
|
version: 1.5.2
|
76
|
-
requirement: *id003
|
77
|
-
- !ruby/object:Gem::Dependency
|
78
60
|
type: :runtime
|
79
61
|
prerelease: false
|
62
|
+
version_requirements: !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ! '>='
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: 1.5.2
|
68
|
+
- !ruby/object:Gem::Dependency
|
80
69
|
name: sinatra
|
81
|
-
|
82
|
-
none: false
|
83
|
-
requirements:
|
84
|
-
- -
|
85
|
-
- !ruby/object:Gem::Version
|
86
|
-
hash: 19
|
87
|
-
segments:
|
88
|
-
- 1
|
89
|
-
- 2
|
90
|
-
- 6
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
72
|
+
requirements:
|
73
|
+
- - ! '>='
|
74
|
+
- !ruby/object:Gem::Version
|
91
75
|
version: 1.2.6
|
92
|
-
requirement: *id004
|
93
|
-
- !ruby/object:Gem::Dependency
|
94
76
|
type: :runtime
|
95
77
|
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
none: false
|
80
|
+
requirements:
|
81
|
+
- - ! '>='
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 1.2.6
|
84
|
+
- !ruby/object:Gem::Dependency
|
96
85
|
name: launchy
|
97
|
-
|
98
|
-
none: false
|
99
|
-
requirements:
|
100
|
-
- -
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
hash: 29
|
103
|
-
segments:
|
104
|
-
- 0
|
105
|
-
- 3
|
106
|
-
- 7
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
none: false
|
88
|
+
requirements:
|
89
|
+
- - ! '>='
|
90
|
+
- !ruby/object:Gem::Version
|
107
91
|
version: 0.3.7
|
108
|
-
requirement: *id005
|
109
|
-
- !ruby/object:Gem::Dependency
|
110
92
|
type: :runtime
|
111
93
|
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
96
|
+
requirements:
|
97
|
+
- - ! '>='
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: 0.3.7
|
100
|
+
- !ruby/object:Gem::Dependency
|
112
101
|
name: coderay
|
113
|
-
|
114
|
-
none: false
|
115
|
-
requirements:
|
116
|
-
- -
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
hash: 29
|
119
|
-
segments:
|
120
|
-
- 1
|
121
|
-
- 0
|
122
|
-
- 5
|
102
|
+
requirement: !ruby/object:Gem::Requirement
|
103
|
+
none: false
|
104
|
+
requirements:
|
105
|
+
- - ! '>='
|
106
|
+
- !ruby/object:Gem::Version
|
123
107
|
version: 1.0.5
|
124
|
-
requirement: *id006
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
108
|
type: :runtime
|
127
109
|
prerelease: false
|
110
|
+
version_requirements: !ruby/object:Gem::Requirement
|
111
|
+
none: false
|
112
|
+
requirements:
|
113
|
+
- - ! '>='
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: 1.0.5
|
116
|
+
- !ruby/object:Gem::Dependency
|
128
117
|
name: thin
|
129
|
-
|
130
|
-
none: false
|
131
|
-
requirements:
|
132
|
-
- -
|
133
|
-
- !ruby/object:Gem::Version
|
134
|
-
hash: 11
|
135
|
-
segments:
|
136
|
-
- 1
|
137
|
-
- 2
|
138
|
-
- 10
|
118
|
+
requirement: !ruby/object:Gem::Requirement
|
119
|
+
none: false
|
120
|
+
requirements:
|
121
|
+
- - ! '>='
|
122
|
+
- !ruby/object:Gem::Version
|
139
123
|
version: 1.2.10
|
140
|
-
requirement: *id007
|
141
|
-
- !ruby/object:Gem::Dependency
|
142
124
|
type: :runtime
|
143
125
|
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
none: false
|
128
|
+
requirements:
|
129
|
+
- - ! '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 1.2.10
|
132
|
+
- !ruby/object:Gem::Dependency
|
144
133
|
name: archive-zip
|
145
|
-
|
146
|
-
none: false
|
147
|
-
requirements:
|
148
|
-
- -
|
149
|
-
- !ruby/object:Gem::Version
|
150
|
-
hash: 15
|
151
|
-
segments:
|
152
|
-
- 0
|
153
|
-
- 4
|
154
|
-
- 0
|
134
|
+
requirement: !ruby/object:Gem::Requirement
|
135
|
+
none: false
|
136
|
+
requirements:
|
137
|
+
- - ! '>='
|
138
|
+
- !ruby/object:Gem::Version
|
155
139
|
version: 0.4.0
|
156
|
-
requirement: *id008
|
157
|
-
- !ruby/object:Gem::Dependency
|
158
140
|
type: :runtime
|
159
141
|
prerelease: false
|
142
|
+
version_requirements: !ruby/object:Gem::Requirement
|
143
|
+
none: false
|
144
|
+
requirements:
|
145
|
+
- - ! '>='
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: 0.4.0
|
148
|
+
- !ruby/object:Gem::Dependency
|
160
149
|
name: haml
|
161
|
-
|
162
|
-
none: false
|
163
|
-
requirements:
|
164
|
-
- -
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
hash: 7
|
167
|
-
segments:
|
168
|
-
- 3
|
169
|
-
- 1
|
170
|
-
- 2
|
150
|
+
requirement: !ruby/object:Gem::Requirement
|
151
|
+
none: false
|
152
|
+
requirements:
|
153
|
+
- - ! '>='
|
154
|
+
- !ruby/object:Gem::Version
|
171
155
|
version: 3.1.2
|
172
|
-
requirement: *id009
|
173
|
-
- !ruby/object:Gem::Dependency
|
174
156
|
type: :runtime
|
175
157
|
prerelease: false
|
158
|
+
version_requirements: !ruby/object:Gem::Requirement
|
159
|
+
none: false
|
160
|
+
requirements:
|
161
|
+
- - ! '>='
|
162
|
+
- !ruby/object:Gem::Version
|
163
|
+
version: 3.1.2
|
164
|
+
- !ruby/object:Gem::Dependency
|
176
165
|
name: sass
|
177
|
-
|
178
|
-
none: false
|
179
|
-
requirements:
|
180
|
-
- -
|
181
|
-
- !ruby/object:Gem::Version
|
182
|
-
hash: 5
|
183
|
-
segments:
|
184
|
-
- 3
|
185
|
-
- 1
|
186
|
-
- 3
|
166
|
+
requirement: !ruby/object:Gem::Requirement
|
167
|
+
none: false
|
168
|
+
requirements:
|
169
|
+
- - ! '>='
|
170
|
+
- !ruby/object:Gem::Version
|
187
171
|
version: 3.1.3
|
188
|
-
requirement: *id010
|
189
|
-
- !ruby/object:Gem::Dependency
|
190
172
|
type: :runtime
|
191
173
|
prerelease: false
|
174
|
+
version_requirements: !ruby/object:Gem::Requirement
|
175
|
+
none: false
|
176
|
+
requirements:
|
177
|
+
- - ! '>='
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: 3.1.3
|
180
|
+
- !ruby/object:Gem::Dependency
|
192
181
|
name: thor
|
193
|
-
|
194
|
-
none: false
|
195
|
-
requirements:
|
196
|
-
- -
|
197
|
-
- !ruby/object:Gem::Version
|
198
|
-
hash: 85
|
199
|
-
segments:
|
200
|
-
- 0
|
201
|
-
- 18
|
202
|
-
- 1
|
182
|
+
requirement: !ruby/object:Gem::Requirement
|
183
|
+
none: false
|
184
|
+
requirements:
|
185
|
+
- - ! '>='
|
186
|
+
- !ruby/object:Gem::Version
|
203
187
|
version: 0.18.1
|
204
|
-
|
205
|
-
- !ruby/object:Gem::Dependency
|
206
|
-
type: :development
|
188
|
+
type: :runtime
|
207
189
|
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
none: false
|
192
|
+
requirements:
|
193
|
+
- - ! '>='
|
194
|
+
- !ruby/object:Gem::Version
|
195
|
+
version: 0.18.1
|
196
|
+
- !ruby/object:Gem::Dependency
|
208
197
|
name: bundler
|
209
|
-
|
210
|
-
none: false
|
211
|
-
requirements:
|
212
|
-
- -
|
213
|
-
- !ruby/object:Gem::Version
|
214
|
-
|
215
|
-
segments:
|
216
|
-
- 0
|
217
|
-
version: "0"
|
218
|
-
requirement: *id012
|
219
|
-
- !ruby/object:Gem::Dependency
|
198
|
+
requirement: !ruby/object:Gem::Requirement
|
199
|
+
none: false
|
200
|
+
requirements:
|
201
|
+
- - ! '>='
|
202
|
+
- !ruby/object:Gem::Version
|
203
|
+
version: '0'
|
220
204
|
type: :development
|
221
205
|
prerelease: false
|
206
|
+
version_requirements: !ruby/object:Gem::Requirement
|
207
|
+
none: false
|
208
|
+
requirements:
|
209
|
+
- - ! '>='
|
210
|
+
- !ruby/object:Gem::Version
|
211
|
+
version: '0'
|
212
|
+
- !ruby/object:Gem::Dependency
|
222
213
|
name: jeweler
|
223
|
-
|
224
|
-
none: false
|
225
|
-
requirements:
|
226
|
-
- -
|
227
|
-
- !ruby/object:Gem::Version
|
228
|
-
|
229
|
-
segments:
|
230
|
-
- 0
|
231
|
-
version: "0"
|
232
|
-
requirement: *id013
|
233
|
-
- !ruby/object:Gem::Dependency
|
214
|
+
requirement: !ruby/object:Gem::Requirement
|
215
|
+
none: false
|
216
|
+
requirements:
|
217
|
+
- - ! '>='
|
218
|
+
- !ruby/object:Gem::Version
|
219
|
+
version: '0'
|
234
220
|
type: :development
|
235
221
|
prerelease: false
|
222
|
+
version_requirements: !ruby/object:Gem::Requirement
|
223
|
+
none: false
|
224
|
+
requirements:
|
225
|
+
- - ! '>='
|
226
|
+
- !ruby/object:Gem::Version
|
227
|
+
version: '0'
|
228
|
+
- !ruby/object:Gem::Dependency
|
236
229
|
name: rack-test
|
237
|
-
|
238
|
-
none: false
|
239
|
-
requirements:
|
240
|
-
- -
|
241
|
-
- !ruby/object:Gem::Version
|
242
|
-
|
243
|
-
segments:
|
244
|
-
- 0
|
245
|
-
version: "0"
|
246
|
-
requirement: *id014
|
247
|
-
- !ruby/object:Gem::Dependency
|
230
|
+
requirement: !ruby/object:Gem::Requirement
|
231
|
+
none: false
|
232
|
+
requirements:
|
233
|
+
- - ! '>='
|
234
|
+
- !ruby/object:Gem::Version
|
235
|
+
version: '0'
|
248
236
|
type: :development
|
249
237
|
prerelease: false
|
238
|
+
version_requirements: !ruby/object:Gem::Requirement
|
239
|
+
none: false
|
240
|
+
requirements:
|
241
|
+
- - ! '>='
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '0'
|
244
|
+
- !ruby/object:Gem::Dependency
|
250
245
|
name: sinatra-reloader
|
251
|
-
|
252
|
-
none: false
|
253
|
-
requirements:
|
254
|
-
- -
|
255
|
-
- !ruby/object:Gem::Version
|
256
|
-
|
257
|
-
segments:
|
258
|
-
- 0
|
259
|
-
version: "0"
|
260
|
-
requirement: *id015
|
261
|
-
- !ruby/object:Gem::Dependency
|
246
|
+
requirement: !ruby/object:Gem::Requirement
|
247
|
+
none: false
|
248
|
+
requirements:
|
249
|
+
- - ! '>='
|
250
|
+
- !ruby/object:Gem::Version
|
251
|
+
version: '0'
|
262
252
|
type: :development
|
263
253
|
prerelease: false
|
254
|
+
version_requirements: !ruby/object:Gem::Requirement
|
255
|
+
none: false
|
256
|
+
requirements:
|
257
|
+
- - ! '>='
|
258
|
+
- !ruby/object:Gem::Version
|
259
|
+
version: '0'
|
260
|
+
- !ruby/object:Gem::Dependency
|
264
261
|
name: test-unit
|
265
|
-
|
266
|
-
none: false
|
267
|
-
requirements:
|
268
|
-
- -
|
269
|
-
- !ruby/object:Gem::Version
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
262
|
+
requirement: !ruby/object:Gem::Requirement
|
263
|
+
none: false
|
264
|
+
requirements:
|
265
|
+
- - ! '>='
|
266
|
+
- !ruby/object:Gem::Version
|
267
|
+
version: 2.5.4
|
268
|
+
type: :development
|
269
|
+
prerelease: false
|
270
|
+
version_requirements: !ruby/object:Gem::Requirement
|
271
|
+
none: false
|
272
|
+
requirements:
|
273
|
+
- - ! '>='
|
274
|
+
- !ruby/object:Gem::Version
|
275
275
|
version: 2.5.4
|
276
|
-
requirement: *id016
|
277
276
|
description: Line based local source code search engine & grep-command & web-app.
|
278
277
|
email: ongaeshi0621@gmail.com
|
279
|
-
executables:
|
278
|
+
executables:
|
280
279
|
- gmilk
|
281
280
|
- milk
|
282
281
|
extensions: []
|
283
|
-
|
284
|
-
extra_rdoc_files:
|
282
|
+
extra_rdoc_files:
|
285
283
|
- LICENSE.txt
|
286
284
|
- README.rdoc
|
287
|
-
files:
|
285
|
+
files:
|
288
286
|
- .document
|
289
287
|
- .travis.yml
|
290
288
|
- Gemfile
|
@@ -462,39 +460,29 @@ files:
|
|
462
460
|
- test/test_util.rb
|
463
461
|
- test/test_wide_matcher.rb
|
464
462
|
- test/test_yaml_file_wrapper.rb
|
465
|
-
has_rdoc: true
|
466
463
|
homepage: http://github.com/ongaeshi/milkode
|
467
|
-
licenses:
|
464
|
+
licenses:
|
468
465
|
- MIT
|
469
466
|
post_install_message:
|
470
467
|
rdoc_options: []
|
471
|
-
|
472
|
-
require_paths:
|
468
|
+
require_paths:
|
473
469
|
- lib
|
474
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
470
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
475
471
|
none: false
|
476
|
-
requirements:
|
477
|
-
- -
|
478
|
-
- !ruby/object:Gem::Version
|
479
|
-
|
480
|
-
|
481
|
-
- 0
|
482
|
-
version: "0"
|
483
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
472
|
+
requirements:
|
473
|
+
- - ! '>='
|
474
|
+
- !ruby/object:Gem::Version
|
475
|
+
version: '0'
|
476
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
484
477
|
none: false
|
485
|
-
requirements:
|
486
|
-
- -
|
487
|
-
- !ruby/object:Gem::Version
|
488
|
-
|
489
|
-
segments:
|
490
|
-
- 0
|
491
|
-
version: "0"
|
478
|
+
requirements:
|
479
|
+
- - ! '>='
|
480
|
+
- !ruby/object:Gem::Version
|
481
|
+
version: '0'
|
492
482
|
requirements: []
|
493
|
-
|
494
483
|
rubyforge_project:
|
495
|
-
rubygems_version: 1.
|
484
|
+
rubygems_version: 1.8.23
|
496
485
|
signing_key:
|
497
486
|
specification_version: 3
|
498
487
|
summary: Line based local source code search engine & grep-command & web-app.
|
499
488
|
test_files: []
|
500
|
-
|