milkode 0.9.9 → 0.9.9.9
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/.travis.yml +2 -1
- data/Gemfile +12 -11
- data/HISTORY.ja.rdoc +41 -1
- data/HISTORY.rdoc +28 -1
- data/VERSION +1 -1
- data/bin/gmilk +1 -1
- data/bin/milk +1 -1
- data/lib/milkode/cdstk/cdstk.rb +15 -1
- data/lib/milkode/cdstk/package.rb +16 -0
- data/lib/milkode/cdweb/app.rb +72 -9
- data/lib/milkode/cdweb/cli_cdweb.rb +25 -55
- data/lib/milkode/cdweb/lib/database.rb +14 -0
- data/lib/milkode/cdweb/lib/info_home.rb +30 -0
- data/lib/milkode/cdweb/lib/info_package.rb +83 -0
- data/lib/milkode/cdweb/lib/package_list.rb +18 -0
- data/lib/milkode/cdweb/public/css/milkode.css +93 -8
- data/lib/milkode/cdweb/public/images/info-big.png +0 -0
- data/lib/milkode/cdweb/public/images/info.png +0 -0
- data/lib/milkode/cdweb/public/images/milkode-directpath-copy.gif +0 -0
- data/lib/milkode/cdweb/public/images/milkode-star.png +0 -0
- data/lib/milkode/cdweb/public/js/milkode.js +35 -5
- data/lib/milkode/cdweb/views/filelist.haml +9 -1
- data/lib/milkode/cdweb/views/header_menu.haml +1 -1
- data/lib/milkode/cdweb/views/help.haml +70 -23
- data/lib/milkode/cdweb/views/info_home.haml +14 -0
- data/lib/milkode/cdweb/views/info_package.haml +13 -0
- data/lib/milkode/cdweb/views/layout.haml +1 -0
- data/lib/milkode/cdweb/views/packages.haml +6 -2
- data/lib/milkode/cdweb/views/search.haml +13 -7
- data/lib/milkode/cdweb/views/search_form.haml +2 -0
- data/lib/milkode/cdweb/views/view.haml +9 -1
- data/lib/milkode/cli.rb +3 -2
- data/lib/milkode/common/util.rb +6 -2
- data/lib/milkode/database/document_table.rb +4 -0
- data/lib/milkode/database/package_table.rb +4 -0
- data/lib/milkode/grep/cli_grep.rb +48 -36
- data/lib/milkode/grep/fast_gotoline.rb +53 -0
- data/lib/milkode/{findgrep → grep}/findgrep.rb +42 -56
- data/lib/milkode/grep/findgrep_option.rb +63 -0
- data/milkode.gemspec +22 -11
- data/test/test_cli.rb +3 -1
- data/test/test_cli_grep.rb +1 -1
- data/test/test_findgrep.rb +2 -2
- data/test/test_milkode_yaml.rb +48 -4
- data/test/test_query.rb +2 -0
- metadata +39 -22
- data/lib/milkode/common/archive-zip.rb +0 -10
- data/lib/milkode/findgrep/result.rb +0 -43
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
|
@@ -4,17 +4,17 @@ source "http://rubygems.org"
|
|
|
4
4
|
# Example:
|
|
5
5
|
# gem "activesupport", ">= 2.3.5"
|
|
6
6
|
# gemspec
|
|
7
|
-
gem 'termcolor','>= 1.2.0', '< 1.2.2'
|
|
8
|
-
gem 'rroonga','>= 1.1.0'
|
|
9
|
-
gem 'rack','>=
|
|
10
|
-
gem 'sinatra', '>=1.2.6'
|
|
11
|
-
gem 'launchy', '>=0.3.7'
|
|
12
|
-
gem 'coderay', '>=1.0.5'
|
|
13
|
-
gem 'thin', '>=1.2.10'
|
|
14
|
-
gem 'archive-zip', '>=0.4.0'
|
|
15
|
-
gem 'haml', '>=3.1.2'
|
|
16
|
-
gem 'sass', '>=3.1.3'
|
|
17
|
-
gem 'thor', '
|
|
7
|
+
gem 'termcolor' , '>= 1.2.0' , '< 1.2.2'
|
|
8
|
+
gem 'rroonga' , '>= 1.1.0'
|
|
9
|
+
gem 'rack' , '>= 1.5.2'
|
|
10
|
+
gem 'sinatra' , '>= 1.2.6'
|
|
11
|
+
gem 'launchy' , '>= 0.3.7'
|
|
12
|
+
gem 'coderay' , '>= 1.0.5'
|
|
13
|
+
gem 'thin' , '>= 1.2.10'
|
|
14
|
+
gem 'archive-zip' , '>= 0.4.0'
|
|
15
|
+
gem 'haml' , '>= 3.1.2'
|
|
16
|
+
gem 'sass' , '>= 3.1.3'
|
|
17
|
+
gem 'thor' , '>= 0.18.1'
|
|
18
18
|
|
|
19
19
|
# Add dependencies to develop your gem here.
|
|
20
20
|
# Include everything needed to run rake, tests, features, etc.
|
|
@@ -23,4 +23,5 @@ group :development do
|
|
|
23
23
|
gem 'jeweler'
|
|
24
24
|
gem 'rack-test'
|
|
25
25
|
gem 'sinatra-reloader'
|
|
26
|
+
gem 'test-unit' , '>= 2.5.4'
|
|
26
27
|
end
|
data/HISTORY.ja.rdoc
CHANGED
|
@@ -1,3 +1,44 @@
|
|
|
1
|
+
=== 0.9.9.9 2013/05/05
|
|
2
|
+
|
|
3
|
+
* milk web
|
|
4
|
+
* お気に入りリスト
|
|
5
|
+
* お気に入りを付けたパッケージにすぐアクセス出来る
|
|
6
|
+
* ☆マークをクリックでwebアプリからも設定が可能に
|
|
7
|
+
|
|
8
|
+
* 統計情報ボタンの設置
|
|
9
|
+
* ファイル数、行数、言語別割合の表示をWebインターフェースで
|
|
10
|
+
|
|
11
|
+
* 「新規タブ」ボタンを設置
|
|
12
|
+
* タブを開きながら検索
|
|
13
|
+
|
|
14
|
+
* help.haml
|
|
15
|
+
* 全体的にリニューアル
|
|
16
|
+
* 'w:' オプションについて追記
|
|
17
|
+
|
|
18
|
+
* gmilk
|
|
19
|
+
* 依存関係を整理して、起動時間の高速化
|
|
20
|
+
* ダイレクトパス検索('gmilk /path/to/file:5')に関してはさらに高速化
|
|
21
|
+
* gmilk -d が正しく動いていない問題を修正
|
|
22
|
+
|
|
23
|
+
* milk
|
|
24
|
+
* milk fav --sync-yaml を追加
|
|
25
|
+
* webアプリ経由のお気に入り設定をyamlに取り込む
|
|
26
|
+
|
|
27
|
+
* etc
|
|
28
|
+
* Ruby2.0.0 に対応
|
|
29
|
+
* test/test_milkode_yaml.rb が動かない問題を修正: Yaml#dumpの取得形式が変わった
|
|
30
|
+
* Gemfile更新: test-unit >= 2.5.4
|
|
31
|
+
* .travis.yml に Ruby2.0 を追加
|
|
32
|
+
|
|
33
|
+
* Gemfile
|
|
34
|
+
* 'thor 0.18.1' に対応
|
|
35
|
+
* 'rack 1.5.2' に対応
|
|
36
|
+
|
|
37
|
+
* ファイル構造の整理 : findgrep/findgrep.rb -> grep/findgrep.rb
|
|
38
|
+
|
|
39
|
+
* バグ修正
|
|
40
|
+
* Issues#47 add meta tag for favicon (thanks y-ken)
|
|
41
|
+
|
|
1
42
|
=== 0.9.9 2013/02/26
|
|
2
43
|
|
|
3
44
|
* ワイド範囲検索のサポート
|
|
@@ -13,7 +54,6 @@
|
|
|
13
54
|
* export MILKODE_SINATRA_RELOADER=1
|
|
14
55
|
|
|
15
56
|
* Delete 'milkode/cdweb/app_error.rb'
|
|
16
|
-
* Recommend 'RACK_ENV=production'
|
|
17
57
|
|
|
18
58
|
=== 0.9.8 2013/02/27
|
|
19
59
|
|
data/HISTORY.rdoc
CHANGED
|
@@ -1,3 +1,31 @@
|
|
|
1
|
+
=== 0.9.9.9 2013/05/05
|
|
2
|
+
|
|
3
|
+
* milk web
|
|
4
|
+
* Add favorite-list
|
|
5
|
+
* Add info
|
|
6
|
+
* Add 「newtab」button
|
|
7
|
+
* Renewal help.haml
|
|
8
|
+
|
|
9
|
+
* gmilk
|
|
10
|
+
* Fast startup time
|
|
11
|
+
* Fast directpath search('gmilk /path/to/file:5') more
|
|
12
|
+
* Fix 'gmilk -d'
|
|
13
|
+
|
|
14
|
+
* milk
|
|
15
|
+
* Add 'milk fav --sync-yaml'
|
|
16
|
+
|
|
17
|
+
* etc
|
|
18
|
+
* Support Ruby2.0.0
|
|
19
|
+
|
|
20
|
+
* Gemfile
|
|
21
|
+
* Support 'thor 0.18.1'
|
|
22
|
+
* Support 'rack 1.5.2'
|
|
23
|
+
|
|
24
|
+
* findgrep/findgrep.rb -> grep/findgrep.rb
|
|
25
|
+
|
|
26
|
+
* Bug fix
|
|
27
|
+
* Issues#47 add meta tag for favicon (thanks y-ken)
|
|
28
|
+
|
|
1
29
|
=== 0.9.9 2013/02/26
|
|
2
30
|
|
|
3
31
|
* Suppor wide range search
|
|
@@ -5,7 +33,6 @@
|
|
|
5
33
|
* Support sinatra-reloader
|
|
6
34
|
* export MILKODE_SINATRA_RELOADER=1
|
|
7
35
|
* Delete 'milkode/cdweb/app_error.rb'
|
|
8
|
-
* Recommend 'RACK_ENV=production'
|
|
9
36
|
|
|
10
37
|
=== 0.9.8 2013/02/27
|
|
11
38
|
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.9.9
|
|
1
|
+
0.9.9.9
|
data/bin/gmilk
CHANGED
data/bin/milk
CHANGED
data/lib/milkode/cdstk/cdstk.rb
CHANGED
|
@@ -428,7 +428,21 @@ module Milkode
|
|
|
428
428
|
def fav(args, options)
|
|
429
429
|
db_open
|
|
430
430
|
|
|
431
|
-
if (
|
|
431
|
+
if (options[:sync_yaml])
|
|
432
|
+
is_dirty = false
|
|
433
|
+
|
|
434
|
+
@yaml.contents.each do |package|
|
|
435
|
+
db_fav = @grndb.packages.fav?(package.name)
|
|
436
|
+
if package.fav? != db_fav
|
|
437
|
+
@out.puts "#{package.name} : #{package.fav?} -> #{db_fav}"
|
|
438
|
+
package.set_fav(db_fav)
|
|
439
|
+
is_dirty = true
|
|
440
|
+
end
|
|
441
|
+
end
|
|
442
|
+
|
|
443
|
+
@yaml.save if is_dirty
|
|
444
|
+
|
|
445
|
+
elsif (args.empty?)
|
|
432
446
|
@out.puts @grndb.packages.favs.map{|r| r.name}
|
|
433
447
|
else
|
|
434
448
|
is_dirty = false
|
|
@@ -69,6 +69,22 @@ module Milkode
|
|
|
69
69
|
name == rhs.name && directory == rhs.directory && ignore == rhs.ignore
|
|
70
70
|
end
|
|
71
71
|
|
|
72
|
+
def fav?
|
|
73
|
+
options[:fav] == true
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def set_fav(value)
|
|
77
|
+
if value
|
|
78
|
+
if @hash['options']
|
|
79
|
+
@hash['options'][:fav] = true
|
|
80
|
+
else
|
|
81
|
+
@hash['options'] = {:fav => true}
|
|
82
|
+
end
|
|
83
|
+
else
|
|
84
|
+
@hash['options'].delete(:fav) if @hash['options']
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
72
88
|
private
|
|
73
89
|
|
|
74
90
|
def normalize
|
data/lib/milkode/cdweb/app.rb
CHANGED
|
@@ -15,19 +15,21 @@ require 'sass'
|
|
|
15
15
|
require 'haml'
|
|
16
16
|
|
|
17
17
|
$LOAD_PATH.unshift '../..'
|
|
18
|
+
require 'milkode/common/util'
|
|
18
19
|
require 'milkode/cdweb/lib/database'
|
|
19
20
|
require 'milkode/cdweb/lib/command'
|
|
20
21
|
require 'milkode/cdweb/lib/mkurl'
|
|
21
22
|
require 'milkode/cdweb/lib/web_setting'
|
|
22
23
|
require 'milkode/cdweb/lib/package_list'
|
|
23
|
-
require 'milkode/
|
|
24
|
+
require 'milkode/cdweb/lib/info_home'
|
|
25
|
+
require 'milkode/cdweb/lib/info_package'
|
|
24
26
|
|
|
25
27
|
set :haml, :format => :html5
|
|
26
28
|
|
|
27
29
|
get '/' do
|
|
28
30
|
if Database.validate?
|
|
29
31
|
@setting = WebSetting.new
|
|
30
|
-
@version = "0.9.9"
|
|
32
|
+
@version = "0.9.9.9"
|
|
31
33
|
|
|
32
34
|
@package_num = Database.instance.yaml_package_num
|
|
33
35
|
@file_num = Database.instance.totalRecords
|
|
@@ -85,6 +87,10 @@ post '/command' do
|
|
|
85
87
|
result = Database.instance.update(params[:name])
|
|
86
88
|
update_result_str(result, before)
|
|
87
89
|
end
|
|
90
|
+
when 'favorite'
|
|
91
|
+
Database.instance.set_fav(params[:name], params[:favorited] == 'true')
|
|
92
|
+
@package_list = PackageList.new(Database.instance.grndb)
|
|
93
|
+
"お気に入り: " + @package_list.favorite_list({})
|
|
88
94
|
end
|
|
89
95
|
end
|
|
90
96
|
|
|
@@ -92,6 +98,7 @@ get '/home*' do |path|
|
|
|
92
98
|
before = Time.now
|
|
93
99
|
path = path.sub(/^\//, "")
|
|
94
100
|
record = Database.instance.record(path)
|
|
101
|
+
@package_list = PackageList.new(Database.instance.grndb)
|
|
95
102
|
|
|
96
103
|
if path.empty?
|
|
97
104
|
if (params[:query] and !params[:query].empty?)
|
|
@@ -112,9 +119,37 @@ end
|
|
|
112
119
|
|
|
113
120
|
get %r{/help} do
|
|
114
121
|
@setting = WebSetting.new
|
|
122
|
+
@path = ""
|
|
115
123
|
haml :help
|
|
116
124
|
end
|
|
117
125
|
|
|
126
|
+
get '/info' do
|
|
127
|
+
obj = InfoHome.new
|
|
128
|
+
|
|
129
|
+
@setting = WebSetting.new
|
|
130
|
+
@path = ""
|
|
131
|
+
@summary_content = obj.summary_content
|
|
132
|
+
@record_content = obj.record_content
|
|
133
|
+
|
|
134
|
+
haml :info_home
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
get '/info/:package' do
|
|
138
|
+
before = Time.now
|
|
139
|
+
|
|
140
|
+
name = params[:package]
|
|
141
|
+
obj = InfoPackage.new(name)
|
|
142
|
+
|
|
143
|
+
@setting = WebSetting.new
|
|
144
|
+
@path = name
|
|
145
|
+
@summary_content = obj.summary_content
|
|
146
|
+
@plang_content = obj.plang_content
|
|
147
|
+
|
|
148
|
+
@elapsed = Time.now - before
|
|
149
|
+
|
|
150
|
+
haml :info_package
|
|
151
|
+
end
|
|
152
|
+
|
|
118
153
|
# -- helper function --
|
|
119
154
|
|
|
120
155
|
helpers do
|
|
@@ -127,8 +162,12 @@ helpers do
|
|
|
127
162
|
end
|
|
128
163
|
|
|
129
164
|
# -- utility --
|
|
130
|
-
def link(query)
|
|
131
|
-
|
|
165
|
+
def link(query, text = nil)
|
|
166
|
+
if text.nil?
|
|
167
|
+
"<a href='#{'/home?query=' + escape_url(query)}'>#{query}</a>"
|
|
168
|
+
else
|
|
169
|
+
"<a href='#{'/home?query=' + escape_url(query)}'>#{text}</a>"
|
|
170
|
+
end
|
|
132
171
|
end
|
|
133
172
|
|
|
134
173
|
def create_select_shead(value)
|
|
@@ -187,12 +226,15 @@ EOF
|
|
|
187
226
|
modal_body = "#{package_name} を更新しますか?"
|
|
188
227
|
end
|
|
189
228
|
|
|
229
|
+
info_path = "/info"
|
|
230
|
+
info_path = File.join(info_path, package_name) if package_name != ""
|
|
231
|
+
|
|
190
232
|
<<EOF
|
|
191
|
-
#{headicon('go-home-5.png')}
|
|
192
|
-
#{headicon('
|
|
193
|
-
#{headicon('
|
|
194
|
-
#{headicon('
|
|
195
|
-
#{headicon('help.png')}
|
|
233
|
+
#{headicon('go-home-5.png')}<a href="/home" class="headmenu">ホーム</a>
|
|
234
|
+
#{headicon('directory.png')}<a href="#{flist}" class="headmenu">ディレクトリ</a>
|
|
235
|
+
#{headicon('view-refresh-4.png')}<a href="#updateModal" class="headmenu" data-toggle="modal">パッケージを更新</a>
|
|
236
|
+
#{headicon('info.png')}<a href="#{info_path}" class="headmenu">統計情報</a>
|
|
237
|
+
#{headicon('help.png')}<a href="/help" class="headmenu">ヘルプ</a>
|
|
196
238
|
|
|
197
239
|
<div id="updateModal" class="modal hide fade">
|
|
198
240
|
<div class="modal-header">
|
|
@@ -227,6 +269,16 @@ EOF
|
|
|
227
269
|
EOF
|
|
228
270
|
end
|
|
229
271
|
|
|
272
|
+
def create_favorite_list(package_list)
|
|
273
|
+
<<EOF
|
|
274
|
+
<div class="favorite_list">
|
|
275
|
+
お気に入り:
|
|
276
|
+
#{package_list.favorite_list(params)}
|
|
277
|
+
</div>
|
|
278
|
+
</div>
|
|
279
|
+
EOF
|
|
280
|
+
end
|
|
281
|
+
|
|
230
282
|
def headicon(name)
|
|
231
283
|
"<img alt='' style='vertical-align:center; border: 0px; margin: 0px;' src='/images/#{name}'>"
|
|
232
284
|
end
|
|
@@ -295,6 +347,17 @@ EOF
|
|
|
295
347
|
"#{r.join(', ')} (#{Time.now - before} sec)"
|
|
296
348
|
end
|
|
297
349
|
|
|
350
|
+
def favstar(path)
|
|
351
|
+
pname = package_name(path)
|
|
352
|
+
|
|
353
|
+
if pname != "root"
|
|
354
|
+
classes = Database.instance.fav?(pname) ? "star favorited" : "star"
|
|
355
|
+
"<a href=\"javascript:\" class=\"#{classes}\" milkode-package-name=\"#{pname}\">Favorite Me</a>"
|
|
356
|
+
else
|
|
357
|
+
""
|
|
358
|
+
end
|
|
359
|
+
end
|
|
360
|
+
|
|
298
361
|
# .search-summary に追加情報を表示したい時はこの関数をオーバーライド
|
|
299
362
|
def search_summary_hook(path)
|
|
300
363
|
""
|
|
@@ -5,59 +5,6 @@ require 'launchy'
|
|
|
5
5
|
require 'optparse'
|
|
6
6
|
require 'milkode/cdweb/lib/database'
|
|
7
7
|
|
|
8
|
-
module Rack
|
|
9
|
-
class Server
|
|
10
|
-
def start
|
|
11
|
-
if options[:warn]
|
|
12
|
-
$-w = true
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
if includes = options[:include]
|
|
16
|
-
$LOAD_PATH.unshift(*includes)
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
if library = options[:require]
|
|
20
|
-
require library
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
if options[:debug]
|
|
24
|
-
$DEBUG = true
|
|
25
|
-
require 'pp'
|
|
26
|
-
p options[:server]
|
|
27
|
-
pp wrapped_app
|
|
28
|
-
pp app
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
# Touch the wrapped app, so that the config.ru is loaded before
|
|
32
|
-
# daemonization (i.e. before chdir, etc).
|
|
33
|
-
wrapped_app
|
|
34
|
-
|
|
35
|
-
daemonize_app if options[:daemonize]
|
|
36
|
-
write_pid if options[:pid]
|
|
37
|
-
|
|
38
|
-
trap(:INT) do
|
|
39
|
-
if server.respond_to?(:shutdown)
|
|
40
|
-
server.shutdown
|
|
41
|
-
else
|
|
42
|
-
exit
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
server.run wrapped_app, options do
|
|
47
|
-
if (options[:LaunchBrowser])
|
|
48
|
-
host = options[:Host] || options[:BindAddress] # options[:BindAddress] for WEBrick
|
|
49
|
-
|
|
50
|
-
if (options[:LaunchURL])
|
|
51
|
-
Launchy.open("http://#{host}:#{options[:Port]}#{options[:LaunchURL]}")
|
|
52
|
-
else
|
|
53
|
-
Launchy.open("http://#{host}:#{options[:Port]}")
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
|
|
61
8
|
module Milkode
|
|
62
9
|
class CLI_Cdweb
|
|
63
10
|
def self.execute(stdout, argv)
|
|
@@ -104,13 +51,36 @@ module Milkode
|
|
|
104
51
|
# サーバースクリプトのある場所へ移動
|
|
105
52
|
FileUtils.cd(File.dirname(__FILE__))
|
|
106
53
|
|
|
107
|
-
# Rack
|
|
108
|
-
Rack::Server.
|
|
54
|
+
# Rackサーバー生成
|
|
55
|
+
rack_server = Rack::Server.new(options)
|
|
56
|
+
|
|
57
|
+
# 起動URL生成
|
|
58
|
+
launch_url = create_launch_url(options)
|
|
59
|
+
|
|
60
|
+
# 起動
|
|
61
|
+
rack_server.start do
|
|
62
|
+
# この時点でoptions[:Host]やoptions[:Port]などの値が壊れてしまっているため事前にURLを生成している
|
|
63
|
+
Launchy.open(launch_url) if launch_url
|
|
64
|
+
end
|
|
109
65
|
else
|
|
110
66
|
create_customize_file(dbdir)
|
|
111
67
|
end
|
|
112
68
|
end
|
|
113
69
|
|
|
70
|
+
def self.create_launch_url(options)
|
|
71
|
+
if (options[:LaunchBrowser])
|
|
72
|
+
host = options[:Host] || options[:BindAddress] # options[:BindAddress] for WEBrick
|
|
73
|
+
|
|
74
|
+
if (options[:LaunchURL])
|
|
75
|
+
"http://#{host}:#{options[:Port]}#{options[:LaunchURL]}"
|
|
76
|
+
else
|
|
77
|
+
"http://#{host}:#{options[:Port]}"
|
|
78
|
+
end
|
|
79
|
+
else
|
|
80
|
+
nil
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
114
84
|
def self.select_dbdir
|
|
115
85
|
# if (Dbdir.dbdir?('.') || !Dbdir.dbdir?(Dbdir.default_dir))
|
|
116
86
|
if Dbdir.dbdir?('.')
|