milkode 0.7.1 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +17 -4
- data/HISTORY.ja.rdoc +27 -0
- data/HISTORY.rdoc +27 -0
- data/LICENSE.txt +23 -1
- data/Rakefile +1 -16
- data/VERSION +1 -1
- data/bin/gmilk +1 -1
- data/bin/milk +1 -1
- data/lib/milkode/cdstk/cdstk.rb +171 -168
- data/lib/milkode/cdstk/milkode_yaml.rb +1 -1
- data/lib/milkode/cdweb/app.rb +11 -3
- data/lib/milkode/cdweb/lib/command.rb +43 -0
- data/lib/milkode/cdweb/lib/database.rb +58 -210
- data/lib/milkode/cdweb/lib/mkurl.rb +10 -1
- data/lib/milkode/cdweb/lib/package_list.rb +61 -0
- data/lib/milkode/cdweb/lib/search_files.rb +2 -1
- data/lib/milkode/cdweb/public/css/bootstrap-responsive.min.css +9 -0
- data/lib/milkode/cdweb/public/css/bootstrap.min.css +9 -0
- data/lib/milkode/cdweb/public/css/milkode.css +44 -9
- data/lib/milkode/cdweb/public/img/glyphicons-halflings-white.png +0 -0
- data/lib/milkode/cdweb/public/img/glyphicons-halflings.png +0 -0
- data/lib/milkode/cdweb/public/js/bootstrap.min.js +6 -0
- data/lib/milkode/cdweb/views/index.haml +52 -16
- data/lib/milkode/cdweb/views/packages.haml +11 -0
- data/lib/milkode/cli.rb +8 -0
- data/lib/milkode/common/array_diff.rb +18 -0
- data/lib/milkode/common/util.rb +16 -0
- data/lib/milkode/database/document_record.rb +64 -0
- data/lib/milkode/database/document_table.rb +341 -0
- data/lib/milkode/database/groonga_database.rb +105 -0
- data/lib/milkode/database/package_table.rb +98 -0
- data/lib/milkode/findgrep/findgrep.rb +20 -124
- data/lib/milkode/grep/cli_grep.rb +3 -1
- data/milkode.gemspec +32 -2
- data/test/data/.gitignore +4 -0
- data/test/data/c_project/a.txt +1 -0
- data/test/data/c_project/abc.c +2 -0
- data/test/data/c_project/abc.h +3 -0
- data/test/data/c_project/b.txt +1 -0
- data/test/data/c_project/c.txt +1 -0
- data/test/data/c_project/cc.txt +1 -0
- data/test/data/c_project/to/file.rb +1 -0
- data/test/test_cdstk.rb +4 -4
- data/test/test_cli.rb +9 -2
- data/test/test_database.rb +5 -14
- data/test/test_document_record.rb +77 -0
- data/test/test_document_table.rb +317 -0
- data/test/test_groonga_database.rb +58 -0
- data/test/test_mkurl.rb +2 -0
- data/test/test_package_list.rb +21 -0
- data/test/test_package_table.rb +215 -0
- data/test/test_util.rb +8 -0
- metadata +57 -5
@@ -0,0 +1,58 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#
|
3
|
+
# @file
|
4
|
+
# @brief
|
5
|
+
# @author ongaeshi
|
6
|
+
# @date 2010/xx/xxxx
|
7
|
+
|
8
|
+
require 'test_helper'
|
9
|
+
require 'milkode/database/groonga_database'
|
10
|
+
|
11
|
+
module Milkode
|
12
|
+
class TestGroongaDatabase < Test::Unit::TestCase
|
13
|
+
def test_database
|
14
|
+
begin
|
15
|
+
t_setup
|
16
|
+
t_open
|
17
|
+
ensure
|
18
|
+
t_cleanup
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def t_setup
|
23
|
+
@obj = GroongaDatabase.new
|
24
|
+
@tmp_dir = File.join(File.dirname(__FILE__), "groonga_database_work")
|
25
|
+
end
|
26
|
+
|
27
|
+
def t_cleanup
|
28
|
+
# 本当は明示的にcloseした方が行儀が良いのだけれど、
|
29
|
+
# 単体テストの時にSementationFaultが出るのでコメントアウト
|
30
|
+
# @obj.close
|
31
|
+
|
32
|
+
# データベース削除
|
33
|
+
@obj = nil
|
34
|
+
FileUtils.rm_rf(@tmp_dir)
|
35
|
+
end
|
36
|
+
|
37
|
+
def t_open
|
38
|
+
@obj.open(@tmp_dir)
|
39
|
+
# @obj.close
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_compatible?
|
43
|
+
begin
|
44
|
+
t_setup
|
45
|
+
|
46
|
+
# 互換性の無いGroongaデータベースを作る
|
47
|
+
filename = Dbdir.groonga_path(@tmp_dir)
|
48
|
+
FileUtils.mkdir_p(File.dirname filename)
|
49
|
+
Groonga::Database.create(:path => filename)
|
50
|
+
# DocumentTable.define_schema
|
51
|
+
|
52
|
+
assert_equal nil, @obj.compatible?(filename, true)
|
53
|
+
ensure
|
54
|
+
t_cleanup
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
data/test/test_mkurl.rb
CHANGED
@@ -24,6 +24,8 @@ module Milkode
|
|
24
24
|
assert_equal '.?shead=package', Mkurl.new('.', p1).inherit_shead
|
25
25
|
assert_equal '/home/foo/bar.hpp', Mkurl.new('/home/foo/bar.hpp', p2).inherit_shead
|
26
26
|
assert_equal '/home/foo/bar.hpp', Mkurl.new('/home/foo/bar.hpp', p3).inherit_shead
|
27
|
+
|
28
|
+
assert_equal '/home?sort=addtime', Mkurl.new('/home', p3).inherit_query_shead_set_sort('addtime')
|
27
29
|
|
28
30
|
end
|
29
31
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#
|
3
|
+
# @file
|
4
|
+
# @brief
|
5
|
+
# @author ongaeshi
|
6
|
+
# @date 2010/xx/xxxx
|
7
|
+
|
8
|
+
require 'test_helper'
|
9
|
+
require 'milkode/cdweb/lib/package_list'
|
10
|
+
|
11
|
+
module Milkode
|
12
|
+
class TestPackageList < Test::Unit::TestCase
|
13
|
+
def test_top_add
|
14
|
+
# obj = PackageList.new
|
15
|
+
# obj.top_add
|
16
|
+
# obj.top_update
|
17
|
+
# obj.top_view
|
18
|
+
# obj.top_fav
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,215 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#
|
3
|
+
# @file
|
4
|
+
# @brief
|
5
|
+
# @author ongaeshi
|
6
|
+
# @date 2010/xx/xxxx
|
7
|
+
|
8
|
+
require 'test_helper'
|
9
|
+
require 'milkode/database/groonga_database'
|
10
|
+
require 'milkode/cdstk/package.rb'
|
11
|
+
|
12
|
+
module Milkode
|
13
|
+
class TestPackageTable < Test::Unit::TestCase
|
14
|
+
def test_database
|
15
|
+
begin
|
16
|
+
t_setup
|
17
|
+
t_open
|
18
|
+
t_packages
|
19
|
+
t_packages_viewtime
|
20
|
+
t_sort
|
21
|
+
t_yaml_sync
|
22
|
+
t_touch
|
23
|
+
t_favs
|
24
|
+
t_touch_if
|
25
|
+
t_add_fav
|
26
|
+
ensure
|
27
|
+
t_cleanup
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def t_setup
|
32
|
+
@obj = GroongaDatabase.new
|
33
|
+
@tmp_dir = File.join(File.dirname(__FILE__), "groonga_database_work")
|
34
|
+
end
|
35
|
+
|
36
|
+
def t_cleanup
|
37
|
+
# 本当は明示的にcloseした方が行儀が良いのだけれど、
|
38
|
+
# 単体テストの時にSementationFaultが出るのでコメントアウト
|
39
|
+
# @obj.close
|
40
|
+
|
41
|
+
# データベース削除
|
42
|
+
@obj = nil
|
43
|
+
FileUtils.rm_rf(@tmp_dir)
|
44
|
+
end
|
45
|
+
|
46
|
+
def t_open
|
47
|
+
@obj.open(@tmp_dir)
|
48
|
+
@packages = @obj.packages
|
49
|
+
# @obj.close
|
50
|
+
end
|
51
|
+
|
52
|
+
def t_packages
|
53
|
+
# @obj.open(@tmp_dir)
|
54
|
+
|
55
|
+
packages = @obj.packages
|
56
|
+
assert_equal 0, packages.size
|
57
|
+
|
58
|
+
packages.add("milkode", "", {})
|
59
|
+
assert_equal 1, packages.size
|
60
|
+
|
61
|
+
r = packages["milkode"]
|
62
|
+
assert_equal "milkode", r.name
|
63
|
+
assert r.addtime.to_i > 0
|
64
|
+
assert_equal 0, r.updatetime.to_i
|
65
|
+
assert_equal 0, r.viewtime.to_i
|
66
|
+
assert_equal 0, r.favtime.to_i
|
67
|
+
|
68
|
+
packages.remove("milkode")
|
69
|
+
assert_equal 0, packages.size
|
70
|
+
end
|
71
|
+
|
72
|
+
def t_packages_viewtime
|
73
|
+
packages = @obj.packages
|
74
|
+
packages.add("add", "", {})
|
75
|
+
packages.add("update", "", {})
|
76
|
+
packages.add("view", "", {})
|
77
|
+
packages.add("favorite", "", {})
|
78
|
+
assert_equal 4, packages.size
|
79
|
+
|
80
|
+
packages.each do |r|
|
81
|
+
# p r
|
82
|
+
end
|
83
|
+
|
84
|
+
r = packages["update"]
|
85
|
+
r.updatetime = Time.now
|
86
|
+
|
87
|
+
r = packages["view"]
|
88
|
+
r.viewtime = Time.now
|
89
|
+
|
90
|
+
r = packages["favorite"]
|
91
|
+
r.favtime = Time.now
|
92
|
+
|
93
|
+
# packages.dump
|
94
|
+
|
95
|
+
assert_not_equal 0, packages["update"].updatetime
|
96
|
+
assert_not_equal 0, packages["view"].viewtime
|
97
|
+
assert_not_equal 0, packages["favorite"].favtime
|
98
|
+
|
99
|
+
packages.remove_all
|
100
|
+
assert_equal 0, packages.size
|
101
|
+
end
|
102
|
+
|
103
|
+
def t_sort
|
104
|
+
packages = @obj.packages
|
105
|
+
|
106
|
+
t = Time.now
|
107
|
+
|
108
|
+
r = packages.add("r1", "", {})
|
109
|
+
r.updatetime = t + 1
|
110
|
+
r.viewtime = t + 2
|
111
|
+
r.favtime = t + 3
|
112
|
+
|
113
|
+
r = packages.add("r2", "", {})
|
114
|
+
r.updatetime = t + 3
|
115
|
+
r.viewtime = t + 1
|
116
|
+
# r.favtime
|
117
|
+
|
118
|
+
r = packages.add("r3", "", {})
|
119
|
+
r.updatetime = t + 2
|
120
|
+
r.viewtime = t + 3
|
121
|
+
r.favtime = t + 2
|
122
|
+
|
123
|
+
sorted = packages.sort("updatetime")
|
124
|
+
assert_equal "r2", sorted[0].name
|
125
|
+
assert_equal "r3", sorted[1].name
|
126
|
+
assert_equal "r1", sorted[2].name
|
127
|
+
|
128
|
+
sorted = packages.sort("viewtime")
|
129
|
+
assert_equal "r3", sorted[0].name
|
130
|
+
assert_equal "r1", sorted[1].name
|
131
|
+
assert_equal "r2", sorted[2].name
|
132
|
+
|
133
|
+
sorted = packages.sort("favtime")
|
134
|
+
assert_equal "r1", sorted[0].name
|
135
|
+
assert_equal "r3", sorted[1].name
|
136
|
+
assert_equal "r2", sorted[2].name
|
137
|
+
|
138
|
+
# sorted.each do |r|
|
139
|
+
# p [r.name, r.addtime, r.updatetime, r.viewtime, r.favtime]
|
140
|
+
# end
|
141
|
+
|
142
|
+
packages.remove_all
|
143
|
+
end
|
144
|
+
|
145
|
+
def t_yaml_sync
|
146
|
+
assert_equal 0, @obj.packages.size
|
147
|
+
|
148
|
+
yaml_contents =
|
149
|
+
[
|
150
|
+
Package.create('/path/to/dir'),
|
151
|
+
Package.create('/path/to/d2'),
|
152
|
+
Package.create('/path/to/d3', ["*.bak"])
|
153
|
+
]
|
154
|
+
@obj.yaml_sync(yaml_contents)
|
155
|
+
assert_equal 3, @obj.packages.size
|
156
|
+
|
157
|
+
yaml_contents << Package.create('/path/to/d4')
|
158
|
+
@obj.yaml_sync(yaml_contents)
|
159
|
+
assert_equal 4, @obj.packages.size
|
160
|
+
|
161
|
+
# @obj.packages.dump
|
162
|
+
|
163
|
+
@obj.packages.remove_all
|
164
|
+
end
|
165
|
+
|
166
|
+
def t_touch
|
167
|
+
r = @packages.add("r1", "", {})
|
168
|
+
t = Time.now
|
169
|
+
|
170
|
+
assert_not_equal t, r.updatetime
|
171
|
+
assert_not_equal t, r.viewtime
|
172
|
+
assert_not_equal t, r.favtime
|
173
|
+
|
174
|
+
@packages.touch("r1", :updatetime, t)
|
175
|
+
assert_equal t, r.updatetime
|
176
|
+
|
177
|
+
@packages.touch("r1", :viewtime, t)
|
178
|
+
assert_equal t, r.viewtime
|
179
|
+
|
180
|
+
@packages.touch("r1", :favtime, t)
|
181
|
+
assert_equal t, r.favtime
|
182
|
+
|
183
|
+
@packages.remove_all
|
184
|
+
end
|
185
|
+
|
186
|
+
def t_favs
|
187
|
+
@packages.add("r1", "", {})
|
188
|
+
@packages.add("r2", "", {})
|
189
|
+
@packages.add("r3", "", {})
|
190
|
+
|
191
|
+
assert_equal [], @packages.favs.map{|r| r.name}
|
192
|
+
|
193
|
+
current = Time.now
|
194
|
+
@packages.touch('r1', :favtime, current)
|
195
|
+
@packages.touch('r3', :favtime, current + 1)
|
196
|
+
assert_equal ['r3', 'r1'], @packages.favs.map{|r| r.name}
|
197
|
+
|
198
|
+
@packages.touch('r2', :favtime, current + 2)
|
199
|
+
assert_equal ['r2', 'r3', 'r1'], @packages.favs.map{|r| r.name}
|
200
|
+
|
201
|
+
@packages.remove_all
|
202
|
+
end
|
203
|
+
|
204
|
+
def t_touch_if
|
205
|
+
assert_raise(NoMethodError) { @packages.touch("not_found", :favtime) }
|
206
|
+
assert_equal nil, @packages.touch_if("not_found", :favtime)
|
207
|
+
end
|
208
|
+
|
209
|
+
def t_add_fav
|
210
|
+
r = @packages.add("r1", "", {:fav => true})
|
211
|
+
assert r.favtime.to_i > 0
|
212
|
+
@packages.remove_all
|
213
|
+
end
|
214
|
+
end
|
215
|
+
end
|
data/test/test_util.rb
CHANGED
@@ -86,6 +86,14 @@ class TestUtil < Test::Unit::TestCase
|
|
86
86
|
assert_equal false, Milkode::Util::gotoline_multi?("a 123 b".split)
|
87
87
|
assert_equal false, Milkode::Util::gotoline_multi?("c:/user 5".split)
|
88
88
|
end
|
89
|
+
|
90
|
+
def test_git_url?
|
91
|
+
assert_equal false, Milkode::Util::git_url?('http:://ongaeshi.me')
|
92
|
+
assert_equal true, Milkode::Util::git_url?('git://github.com/ongaeshi/milkode.git')
|
93
|
+
assert_equal true, Milkode::Util::git_url?('git@github.com:ongaeshi/milkode.git')
|
94
|
+
assert_equal true, Milkode::Util::git_url?('ssh:foo@bar/baz.git')
|
95
|
+
end
|
96
|
+
|
89
97
|
|
90
98
|
def teardown
|
91
99
|
teardown_custom(true)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: milkode
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 63
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 8
|
9
|
+
- 0
|
10
|
+
version: 0.8.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- ongaeshi
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-
|
18
|
+
date: 2012-06-20 00:00:00 +09:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -194,6 +194,34 @@ dependencies:
|
|
194
194
|
- 0
|
195
195
|
version: 0.15.0
|
196
196
|
requirement: *id011
|
197
|
+
- !ruby/object:Gem::Dependency
|
198
|
+
type: :development
|
199
|
+
prerelease: false
|
200
|
+
name: bundler
|
201
|
+
version_requirements: &id012 !ruby/object:Gem::Requirement
|
202
|
+
none: false
|
203
|
+
requirements:
|
204
|
+
- - ">="
|
205
|
+
- !ruby/object:Gem::Version
|
206
|
+
hash: 3
|
207
|
+
segments:
|
208
|
+
- 0
|
209
|
+
version: "0"
|
210
|
+
requirement: *id012
|
211
|
+
- !ruby/object:Gem::Dependency
|
212
|
+
type: :development
|
213
|
+
prerelease: false
|
214
|
+
name: jeweler
|
215
|
+
version_requirements: &id013 !ruby/object:Gem::Requirement
|
216
|
+
none: false
|
217
|
+
requirements:
|
218
|
+
- - ">="
|
219
|
+
- !ruby/object:Gem::Version
|
220
|
+
hash: 3
|
221
|
+
segments:
|
222
|
+
- 0
|
223
|
+
version: "0"
|
224
|
+
requirement: *id013
|
197
225
|
description: Line based local source code search engine & grep-command & web-app.
|
198
226
|
email: ongaeshi0621@gmail.com
|
199
227
|
executables:
|
@@ -229,10 +257,13 @@ files:
|
|
229
257
|
- lib/milkode/cdweb/lib/database.rb
|
230
258
|
- lib/milkode/cdweb/lib/grep.rb
|
231
259
|
- lib/milkode/cdweb/lib/mkurl.rb
|
260
|
+
- lib/milkode/cdweb/lib/package_list.rb
|
232
261
|
- lib/milkode/cdweb/lib/query.rb
|
233
262
|
- lib/milkode/cdweb/lib/search_contents.rb
|
234
263
|
- lib/milkode/cdweb/lib/search_files.rb
|
235
264
|
- lib/milkode/cdweb/lib/web_setting.rb
|
265
|
+
- lib/milkode/cdweb/public/css/bootstrap-responsive.min.css
|
266
|
+
- lib/milkode/cdweb/public/css/bootstrap.min.css
|
236
267
|
- lib/milkode/cdweb/public/css/coderay-patch.css
|
237
268
|
- lib/milkode/cdweb/public/css/coderay.css
|
238
269
|
- lib/milkode/cdweb/public/css/milkode.css
|
@@ -242,17 +273,22 @@ files:
|
|
242
273
|
- lib/milkode/cdweb/public/images/file.png
|
243
274
|
- lib/milkode/cdweb/public/images/go-home-5.png
|
244
275
|
- lib/milkode/cdweb/public/images/help.png
|
276
|
+
- lib/milkode/cdweb/public/img/glyphicons-halflings-white.png
|
277
|
+
- lib/milkode/cdweb/public/img/glyphicons-halflings.png
|
278
|
+
- lib/milkode/cdweb/public/js/bootstrap.min.js
|
245
279
|
- lib/milkode/cdweb/public/js/milkode.js
|
246
280
|
- lib/milkode/cdweb/views/filelist.haml
|
247
281
|
- lib/milkode/cdweb/views/header_menu.haml
|
248
282
|
- lib/milkode/cdweb/views/help.haml
|
249
283
|
- lib/milkode/cdweb/views/index.haml
|
250
284
|
- lib/milkode/cdweb/views/layout.haml
|
285
|
+
- lib/milkode/cdweb/views/packages.haml
|
251
286
|
- lib/milkode/cdweb/views/search.haml
|
252
287
|
- lib/milkode/cdweb/views/search_form.haml
|
253
288
|
- lib/milkode/cdweb/views/view.haml
|
254
289
|
- lib/milkode/cli.rb
|
255
290
|
- lib/milkode/common/archive-zip.rb
|
291
|
+
- lib/milkode/common/array_diff.rb
|
256
292
|
- lib/milkode/common/dbdir.rb
|
257
293
|
- lib/milkode/common/dir.rb
|
258
294
|
- lib/milkode/common/display_util.rb
|
@@ -263,6 +299,10 @@ files:
|
|
263
299
|
- lib/milkode/common/platform.rb
|
264
300
|
- lib/milkode/common/string_snip.rb
|
265
301
|
- lib/milkode/common/util.rb
|
302
|
+
- lib/milkode/database/document_record.rb
|
303
|
+
- lib/milkode/database/document_table.rb
|
304
|
+
- lib/milkode/database/groonga_database.rb
|
305
|
+
- lib/milkode/database/package_table.rb
|
266
306
|
- lib/milkode/findgrep/findgrep.rb
|
267
307
|
- lib/milkode/findgrep/result.rb
|
268
308
|
- lib/milkode/grep/cli_grep.rb
|
@@ -273,6 +313,13 @@ files:
|
|
273
313
|
- test/data/abc.zip
|
274
314
|
- test/data/b_project/runner.rb
|
275
315
|
- test/data/b_project/test_dir.rb
|
316
|
+
- test/data/c_project/a.txt
|
317
|
+
- test/data/c_project/abc.c
|
318
|
+
- test/data/c_project/abc.h
|
319
|
+
- test/data/c_project/b.txt
|
320
|
+
- test/data/c_project/c.txt
|
321
|
+
- test/data/c_project/cc.txt
|
322
|
+
- test/data/c_project/to/file.rb
|
276
323
|
- test/data/no_auto_ignore/.gitignore
|
277
324
|
- test/data/no_auto_ignore/a.txt
|
278
325
|
- test/data/nodir_abc.zip
|
@@ -291,14 +338,19 @@ files:
|
|
291
338
|
- test/test_database.rb
|
292
339
|
- test/test_dbdir.rb
|
293
340
|
- test/test_dir.rb
|
341
|
+
- test/test_document_record.rb
|
342
|
+
- test/test_document_table.rb
|
294
343
|
- test/test_findgrep.rb
|
295
344
|
- test/test_gren_util.rb
|
345
|
+
- test/test_groonga_database.rb
|
296
346
|
- test/test_helper.rb
|
297
347
|
- test/test_ignore_checker.rb
|
298
348
|
- test/test_ignore_setting.rb
|
299
349
|
- test/test_milkode_yaml.rb
|
300
350
|
- test/test_mkurl.rb
|
301
351
|
- test/test_package.rb
|
352
|
+
- test/test_package_list.rb
|
353
|
+
- test/test_package_table.rb
|
302
354
|
- test/test_query.rb
|
303
355
|
- test/test_string_snip.rb
|
304
356
|
- test/test_util.rb
|