gonzui 1.2-x86-mswin32-60

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.
Files changed (120) hide show
  1. data/AUTHORS.txt +9 -0
  2. data/History.txt +5539 -0
  3. data/Manifest.txt +115 -0
  4. data/PostInstall.txt +17 -0
  5. data/README.rdoc +149 -0
  6. data/Rakefile +28 -0
  7. data/bin/gonzui-db +167 -0
  8. data/bin/gonzui-import +177 -0
  9. data/bin/gonzui-remove +58 -0
  10. data/bin/gonzui-search +68 -0
  11. data/bin/gonzui-server +176 -0
  12. data/bin/gonzui-update +53 -0
  13. data/data/gonzui/catalog/catalog.ja +80 -0
  14. data/data/gonzui/doc/favicon.ico +0 -0
  15. data/data/gonzui/doc/folder.png +0 -0
  16. data/data/gonzui/doc/gonzui.css +279 -0
  17. data/data/gonzui/doc/gonzui.js +111 -0
  18. data/data/gonzui/doc/text.png +0 -0
  19. data/data/gonzuirc.sample +29 -0
  20. data/ext/autopack/autopack.c +88 -0
  21. data/ext/autopack/extconf.rb +3 -0
  22. data/ext/delta/delta.c +147 -0
  23. data/ext/delta/extconf.rb +5 -0
  24. data/ext/texttokenizer/extconf.rb +5 -0
  25. data/ext/texttokenizer/texttokenizer.c +93 -0
  26. data/ext/xmlformatter/extconf.rb +5 -0
  27. data/ext/xmlformatter/xmlformatter.c +207 -0
  28. data/lib/gonzui.rb +59 -0
  29. data/lib/gonzui/apt.rb +193 -0
  30. data/lib/gonzui/autopack.so +0 -0
  31. data/lib/gonzui/bdbdbm.rb +118 -0
  32. data/lib/gonzui/cmdapp.rb +14 -0
  33. data/lib/gonzui/cmdapp/app.rb +175 -0
  34. data/lib/gonzui/cmdapp/search.rb +134 -0
  35. data/lib/gonzui/config.rb +117 -0
  36. data/lib/gonzui/content.rb +19 -0
  37. data/lib/gonzui/dbm.rb +673 -0
  38. data/lib/gonzui/deindexer.rb +162 -0
  39. data/lib/gonzui/delta.rb +49 -0
  40. data/lib/gonzui/delta.so +0 -0
  41. data/lib/gonzui/extractor.rb +347 -0
  42. data/lib/gonzui/fetcher.rb +309 -0
  43. data/lib/gonzui/gettext.rb +144 -0
  44. data/lib/gonzui/importer.rb +84 -0
  45. data/lib/gonzui/indexer.rb +316 -0
  46. data/lib/gonzui/info.rb +80 -0
  47. data/lib/gonzui/license.rb +100 -0
  48. data/lib/gonzui/logger.rb +48 -0
  49. data/lib/gonzui/monitor.rb +177 -0
  50. data/lib/gonzui/progressbar.rb +235 -0
  51. data/lib/gonzui/remover.rb +38 -0
  52. data/lib/gonzui/searcher.rb +330 -0
  53. data/lib/gonzui/searchquery.rb +235 -0
  54. data/lib/gonzui/searchresult.rb +111 -0
  55. data/lib/gonzui/texttokenizer.so +0 -0
  56. data/lib/gonzui/updater.rb +254 -0
  57. data/lib/gonzui/util.rb +415 -0
  58. data/lib/gonzui/vcs.rb +128 -0
  59. data/lib/gonzui/webapp.rb +25 -0
  60. data/lib/gonzui/webapp/advsearch.rb +123 -0
  61. data/lib/gonzui/webapp/filehandler.rb +24 -0
  62. data/lib/gonzui/webapp/jsfeed.rb +61 -0
  63. data/lib/gonzui/webapp/markup.rb +445 -0
  64. data/lib/gonzui/webapp/search.rb +269 -0
  65. data/lib/gonzui/webapp/servlet.rb +319 -0
  66. data/lib/gonzui/webapp/snippet.rb +155 -0
  67. data/lib/gonzui/webapp/source.rb +37 -0
  68. data/lib/gonzui/webapp/stat.rb +137 -0
  69. data/lib/gonzui/webapp/top.rb +63 -0
  70. data/lib/gonzui/webapp/uri.rb +140 -0
  71. data/lib/gonzui/webapp/webrick.rb +48 -0
  72. data/lib/gonzui/webapp/xmlformatter.so +0 -0
  73. data/script/console +10 -0
  74. data/script/destroy +14 -0
  75. data/script/generate +14 -0
  76. data/script/makemanifest.rb +21 -0
  77. data/tasks/extconf.rake +13 -0
  78. data/tasks/extconf/autopack.rake +43 -0
  79. data/tasks/extconf/delta.rake +43 -0
  80. data/tasks/extconf/texttokenizer.rake +43 -0
  81. data/tasks/extconf/xmlformatter.rake +43 -0
  82. data/test/_external_tools.rb +13 -0
  83. data/test/_test-util.rb +142 -0
  84. data/test/foo/Makefile.foo +66 -0
  85. data/test/foo/bar.c +5 -0
  86. data/test/foo/bar.h +6 -0
  87. data/test/foo/foo.c +25 -0
  88. data/test/foo/foo.spec +33 -0
  89. data/test/test_apt.rb +42 -0
  90. data/test/test_autopack_extn.rb +7 -0
  91. data/test/test_bdbdbm.rb +79 -0
  92. data/test/test_cmdapp-app.rb +35 -0
  93. data/test/test_cmdapp-search.rb +99 -0
  94. data/test/test_config.rb +28 -0
  95. data/test/test_content.rb +15 -0
  96. data/test/test_dbm.rb +171 -0
  97. data/test/test_deindexer.rb +50 -0
  98. data/test/test_delta.rb +66 -0
  99. data/test/test_extractor.rb +78 -0
  100. data/test/test_fetcher.rb +75 -0
  101. data/test/test_gettext.rb +50 -0
  102. data/test/test_gonzui.rb +11 -0
  103. data/test/test_helper.rb +10 -0
  104. data/test/test_importer.rb +56 -0
  105. data/test/test_indexer.rb +37 -0
  106. data/test/test_info.rb +82 -0
  107. data/test/test_license.rb +49 -0
  108. data/test/test_logger.rb +60 -0
  109. data/test/test_monitor.rb +23 -0
  110. data/test/test_searcher.rb +37 -0
  111. data/test/test_searchquery.rb +27 -0
  112. data/test/test_searchresult.rb +43 -0
  113. data/test/test_texttokenizer.rb +47 -0
  114. data/test/test_updater.rb +95 -0
  115. data/test/test_util.rb +149 -0
  116. data/test/test_vcs.rb +61 -0
  117. data/test/test_webapp-markup.rb +42 -0
  118. data/test/test_webapp-util.rb +19 -0
  119. data/test/test_webapp-xmlformatter.rb +19 -0
  120. metadata +292 -0
@@ -0,0 +1,11 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class TestGonzui < Test::Unit::TestCase
4
+
5
+ def setup
6
+ end
7
+
8
+ def test_truth
9
+ assert true # TODO
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ require 'rubygems'
2
+ begin
3
+ require 'redgreen'
4
+ rescue LoadError
5
+ end
6
+ $LOAD_PATH << File.dirname(__FILE__) # require "test"
7
+ require 'stringio'
8
+ #require 'rbconfig.rb' # omajinai
9
+ require 'test/unit'
10
+ require File.dirname(__FILE__) + '/../lib/gonzui'
@@ -0,0 +1,56 @@
1
+ #! /usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/test_helper.rb'
3
+ require '_external_tools.rb'
4
+ require '_test-util'
5
+
6
+ class ImporterTest < Test::Unit::TestCase
7
+ include TestUtil
8
+
9
+ include FileUtils
10
+
11
+ def _test_import(url)
12
+ config = Gonzui::Config.new
13
+ remove_db(config)
14
+ make_archives
15
+
16
+ importer = Gonzui::Importer.new(config)
17
+ importer.import(url)
18
+ begin
19
+ importer.import(url)
20
+ assert(false)
21
+ rescue Gonzui::ImporterError => e
22
+ assert(true)
23
+ end
24
+ summary = importer.summary
25
+ assert(summary.is_a?(String))
26
+ assert(/\d+/.match(summary))
27
+ importer.finish
28
+ remove_db(config)
29
+ end
30
+
31
+ def test_import_archive
32
+ _test_import(URI.from_path(FOO_TGZ))
33
+ end
34
+
35
+ def test_import_by_apt
36
+ _test_import(URI.for_apt("portmap"))
37
+ end
38
+
39
+ def test_import_unreadable_file
40
+ tmp_directory = "tmp.unreadable.#{Process.pid}"
41
+ mkdir_p(tmp_directory)
42
+
43
+ unreadable = File.join(tmp_directory, "unreadable.txt")
44
+ File.open(unreadable, "w") {|f| f.puts("unreadable") }
45
+ readable = File.join(tmp_directory, "readable.txt")
46
+ File.open(readable, "w") {|f| f.puts("readable") }
47
+
48
+ File.chmod(0000, unreadable)
49
+ begin
50
+ _test_import(URI.from_path(tmp_directory))
51
+ ensure
52
+ File.chmod(0600, unreadable)
53
+ rm_rf(tmp_directory)
54
+ end
55
+ end
56
+ end if (APT_ && ARC_)
@@ -0,0 +1,37 @@
1
+ #! /usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/test_helper.rb'
3
+ require '_test-util'
4
+
5
+ class IndexerTest < Test::Unit::TestCase
6
+ include TestUtil
7
+
8
+ def setup
9
+ @dbm = nil
10
+ @config = Gonzui::Config.new
11
+ end
12
+ def teardown
13
+ unless @dbm.nil?
14
+ @dbm.close rescue nil
15
+ end
16
+ @dbm = nil
17
+ remove_db(@config)
18
+ end
19
+
20
+ def test_index
21
+ remove_db(@config)
22
+ dbm = Gonzui::DBM.open(@config)
23
+ @dbm = dbm
24
+ path = File.join(File.dirname(__FILE__), "foo", "foo.c")
25
+ url = URI.from_path(File.expand_path(path))
26
+ content = Gonzui::Content.new(File.read(path), File.mtime(path))
27
+ source_url = URI.parse("file:///foo")
28
+ indexer = Gonzui::Indexer.new(@config, dbm, source_url, path, content)
29
+ indexer.index
30
+ dbm.flush_cache
31
+ assert_equal(1, dbm.get_ncontents)
32
+ assert(dbm.has_package?("foo"))
33
+ # assert(dbm.has_package?(File.basename(File.dirname(__FILE__))))
34
+ assert(dbm.has_word?("main"))
35
+ assert(dbm.consistent?)
36
+ end
37
+ end
data/test/test_info.rb ADDED
@@ -0,0 +1,82 @@
1
+ #! /usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/test_helper.rb'
3
+ require '_test-util'
4
+
5
+ class InfoTest < Test::Unit::TestCase
6
+ TYPE_TABLE = [:fundef, :funcall, :fundecl]
7
+
8
+ def test_word_info
9
+ word_id = 0
10
+ word = "foo"
11
+ path_id = 100
12
+ seqno = 0
13
+ byteno = 300
14
+ lineno = 200
15
+ TYPE_TABLE.each_with_index {|type, type_id|
16
+ values = [word_id, path_id, seqno, byteno, type_id, type, lineno]
17
+ info = Gonzui::WordInfo.new(*values)
18
+ assert_equal(word_id, info.word_id)
19
+ assert_equal(path_id, info.path_id)
20
+ assert_equal(lineno, info.lineno)
21
+ assert_equal(byteno, info.byteno)
22
+ assert_equal(type_id, info.type_id)
23
+ assert_equal(type, info.type)
24
+
25
+ assert_equal(values, info.values)
26
+ }
27
+ end
28
+
29
+ def test_digest_info
30
+ byteno = 100
31
+ length = 5
32
+ TYPE_TABLE.each_with_index {|type, type_id|
33
+ values = [byteno, length, type_id, type]
34
+ info = Gonzui::DigestInfo.new(*values)
35
+ assert_equal(byteno, info.byteno)
36
+ assert_equal(length, length)
37
+ assert_equal(type_id, info.type_id)
38
+ assert_equal(values, info.values)
39
+ }
40
+ end
41
+
42
+ def test_occurrence
43
+ o = Gonzui::Occurrence.new(10, 1, 5)
44
+ assert_equal((10...15), o.range)
45
+ assert_equal(15, o.end_byteno)
46
+ end
47
+
48
+ def test_content_info
49
+ i = {
50
+ :size => 123,
51
+ :mtime => Time.at(0),
52
+ :itime => Time.now,
53
+ :format_id => 0,
54
+ :license_id => 1,
55
+ :nlines => 10,
56
+ :indexed_p => true,
57
+ }
58
+ Gonzui::ContentInfo.members.each {|name|
59
+ name = name.intern
60
+ i.include?(name)
61
+ }
62
+ info = Gonzui::ContentInfo.new(i[:size], i[:mtime], i[:itime], i[:format_id],
63
+ i[:license_id], i[:nlines], i[:indexed_p])
64
+ info.members.each {|name|
65
+ name = name.intern
66
+ assert_equal(i[name], info.send(name))
67
+ }
68
+ i.each_key {|name|
69
+ assert_equal(i[name], info.send(name))
70
+ }
71
+ end
72
+
73
+ def test_minus_mtime
74
+ size = 100
75
+ mtime = -1
76
+ itime = Time.now.to_i
77
+ format_id = license_id = nlines = indexed_p = 0
78
+ packed = Gonzui::ContentInfo.dump(size, mtime, itime, format_id,
79
+ license_id, nlines, indexed_p)
80
+ assert(packed.is_a?(String))
81
+ end
82
+ end
@@ -0,0 +1,49 @@
1
+ #! /usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/test_helper.rb'
3
+ require '_test-util'
4
+
5
+ class LicenseTest < Test::Unit::TestCase
6
+ TestCases = [
7
+ ["GPL1", false, "GNU General Public License version 1"],
8
+ ["GPL2", false, "GNU General Public License version 2"],
9
+ ["LGPL1", false, "GNU Library Public License version 1"],
10
+ ["LGPL2", false, "GNU Library Public License version 2"],
11
+ ["LGPL2.1", false, "GNU Lesser Public License version 2.1"],
12
+ ["Other", false, "My own license version 999"],
13
+
14
+ ["GPL2", false, "GNU GENERAL PUBLIC LICENSE VERSION 2"],
15
+ ["GPL2", false, "GNU GENERAL PUBLIC LICENSE VERSION 2"],
16
+ ["GPL2", false, "GNU/GENERAL/PUBLIC/LICENSE/VERSION/2"],
17
+
18
+ ["GPL2", false, '
19
+ # You can redistribute it and/or modify it under the terms of
20
+ # the GNU General Public License version 2.
21
+ '
22
+ ],
23
+
24
+ ["GPL2", false, '
25
+ # You can redistribute it and/or modify it under the terms of
26
+ # the GNU General Public License version 2.
27
+ #
28
+ # This is foobar version 1. <= confusing!
29
+ '
30
+ ],
31
+
32
+ ["GPL2", true, '
33
+ This program is free software; you can redistribute it and/or modify
34
+ it under the terms of the GNU General Public License as published by
35
+ the Free Software Foundation; either version 2, or (at your option)
36
+ any later version.'
37
+ ],
38
+ ]
39
+
40
+ def test_license_detector
41
+ TestCases.each {|abbrev, allow_later_p, text|
42
+ detector = Gonzui::LicenseDetector.new(text)
43
+ license = detector.detect
44
+ assert_equal(abbrev, license.abbrev)
45
+ assert_equal(allow_later_p, license.allow_later?)
46
+ }
47
+ end
48
+ end
49
+
@@ -0,0 +1,60 @@
1
+ #! /usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/test_helper.rb'
3
+ require '_test-util'
4
+ require 'time'
5
+
6
+ class LoggerTest < Test::Unit::TestCase
7
+ def create_test_case
8
+ format = "foo %s"
9
+ arguments = ["bar"]
10
+ message = sprintf(format, arguments)
11
+ return format, arguments, message
12
+ end
13
+
14
+ def test_log
15
+ format, arguments, message = create_test_case
16
+
17
+ strio = StringIO.new
18
+ logger = Gonzui::Logger.new(strio)
19
+ a = Time.now
20
+ logger.log(format, *arguments)
21
+
22
+ log = strio.string
23
+ m = /^(.*?) (.*)/.match(log)
24
+ assert(m.is_a?(MatchData))
25
+ assert_equal(message, m[2])
26
+
27
+ time = Time.parse(m[1])
28
+ assert(time.is_a?(Time))
29
+ assert((time - a).abs < 1) # within 1 sec
30
+ end
31
+
32
+ def test_vlog
33
+ format, arguments, message = create_test_case
34
+
35
+ strio = StringIO.new
36
+ logger = Gonzui::Logger.new(strio, false)
37
+ logger.vlog(format, arguments)
38
+ assert(strio.string.empty?)
39
+
40
+ logger = Gonzui::Logger.new(strio, true)
41
+ logger.vlog(format, arguments)
42
+ assert(/^.*? #{message}/.match(strio.string))
43
+ end
44
+
45
+ def test_monitor
46
+ format, arguments, message = create_test_case
47
+ strio1 = StringIO.new
48
+ strio2 = StringIO.new
49
+ logger = Gonzui::Logger.new(strio1)
50
+ logger.log(format, arguments)
51
+ assert_equal(false, strio1.string.empty?)
52
+ assert(strio2.string.empty?)
53
+
54
+ logger.monitor = strio2
55
+ logger.log(format, arguments)
56
+ assert_equal(false, strio2.string.empty?)
57
+ assert(strio1.string.length > strio2.string.length)
58
+ end
59
+ end
60
+
@@ -0,0 +1,23 @@
1
+ #! /usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/test_helper.rb'
3
+ require '_test-util'
4
+
5
+ class MonitorTest < Test::Unit::TestCase
6
+ include TestUtil
7
+
8
+ def foo
9
+ 1
10
+ end
11
+
12
+ def test_monitor
13
+ monitor = Gonzui::PerformanceMonitor.new
14
+ assert(monitor.empty?)
15
+ assert_equal("", monitor.format([MonitorTest, :foo]))
16
+ monitor.profile(self, :foo)
17
+ assert(!monitor.empty?)
18
+ summary = monitor.format([MonitorTest, :foo],
19
+ [MonitorTest, :foo])
20
+ assert(summary.is_a?(String))
21
+
22
+ end
23
+ end
@@ -0,0 +1,37 @@
1
+ #! /usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/test_helper.rb'
3
+ require '_external_tools'
4
+ require '_test-util'
5
+
6
+ class SearcherTest < Test::Unit::TestCase
7
+ include TestUtil
8
+
9
+ def setup
10
+ @dbm = nil
11
+ end
12
+ def teardown
13
+ unless @dbm.nil?
14
+ @dbm.close rescue nil
15
+ end
16
+ @dbm = nil
17
+ end
18
+
19
+ def test_searcher
20
+ config = Gonzui::Config.new
21
+ make_db(config)
22
+ dbm = Gonzui::DBM.open(config)
23
+ @dbm = dbm
24
+ search_query = Gonzui::SearchQuery.new(config, "foo")
25
+ searcher = Gonzui::Searcher.new(dbm, search_query, 100)
26
+ result = searcher.search
27
+ assert(result.is_a?(Gonzui::SearchResult))
28
+ assert(result.length > 0)
29
+
30
+ search_query = Gonzui::SearchQuery.new(config, "205438967we9tn8we09asf")
31
+ searcher = Gonzui::Searcher.new(dbm, search_query, 100)
32
+ result = searcher.search
33
+ assert_equal(0, result.length)
34
+
35
+ dbm.close
36
+ end
37
+ end if (ARC_)
@@ -0,0 +1,27 @@
1
+ #! /usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/test_helper.rb'
3
+ require '_test-util'
4
+
5
+ class QueryTest < Test::Unit::TestCase
6
+ def test_query
7
+ config = Gonzui::Config.new
8
+ [
9
+ ['foo bar', [["foo", nil], ["bar", nil]]],
10
+ ['fundef:foo bar', [["foo", :fundef], ["bar", nil]]],
11
+ ['"foo bar" baz', [["foo bar", nil], ["baz", nil]]]
12
+ ].each {|query_string, parts|
13
+ query = Gonzui::SearchQuery.new(config, query_string)
14
+ query.each {|item|
15
+ assert(item.is_a?(Gonzui::QueryItem))
16
+ part = parts.shift
17
+ if item.phrase?
18
+ assert_equal(part.first, item.value.join(" "))
19
+ else
20
+ assert_equal(part.first, item.value)
21
+ end
22
+ assert_equal(part.last, item.property)
23
+ }
24
+ }
25
+ end
26
+ end
27
+
@@ -0,0 +1,43 @@
1
+ #! /usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/test_helper.rb'
3
+ require '_external_tools'
4
+ require '_test-util'
5
+
6
+ class SearchResultTest < Test::Unit::TestCase
7
+ include TestUtil
8
+
9
+ def _test_basic(result)
10
+ i = 0
11
+ result.each {|item| i += 1}
12
+ assert_equal(result.length, i)
13
+ result.length.times {|i| assert(result[i].is_a?(Gonzui::WordInfo)) }
14
+
15
+ assert_equal(result[0], result.first)
16
+ assert_equal(result[result.length - 1], result.last)
17
+ end
18
+
19
+ def _test_clear(result)
20
+ result.clear
21
+ assert(result.empty?)
22
+ assert(result.length == 0)
23
+ end
24
+
25
+ def search(config, key)
26
+ result = Gonzui::SearchResult.new
27
+ Gonzui::DBM.open(config) {|dbm|
28
+ dbm.find_all(key).each {|info| result.push(info) }
29
+ }
30
+ return result
31
+ end
32
+
33
+ def test_search_result
34
+ config = Gonzui::Config.new
35
+ make_db(config)
36
+
37
+ result = search(config, "foo")
38
+ _test_basic(result)
39
+ _test_clear(result)
40
+
41
+ remove_db(config)
42
+ end
43
+ end if (ARC_)