codestock 0.1.2 → 0.1.3

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 (47) hide show
  1. data/Rakefile +1 -0
  2. data/VERSION +1 -1
  3. data/bin/cdweb +2 -2
  4. data/codestock.gemspec +56 -10
  5. data/lib/cdstk/cdstk.rb +4 -1
  6. data/lib/codestock/cdweb/app.rb +136 -0
  7. data/lib/codestock/cdweb/cli_cdweb.rb +84 -0
  8. data/lib/codestock/cdweb/config.ru +3 -0
  9. data/lib/codestock/cdweb/lib/coderay_wrapper.rb +94 -0
  10. data/lib/codestock/cdweb/lib/command.rb +67 -0
  11. data/lib/{cdweb → codestock/cdweb/lib}/database.rb +55 -28
  12. data/lib/{cdweb → codestock/cdweb/lib}/grep.rb +24 -8
  13. data/lib/codestock/cdweb/lib/mkurl.rb +56 -0
  14. data/lib/{cdweb → codestock/cdweb/lib}/query.rb +3 -4
  15. data/lib/codestock/cdweb/lib/search_contents.rb +117 -0
  16. data/lib/codestock/cdweb/lib/search_files.rb +88 -0
  17. data/lib/{cdweb → codestock/cdweb}/public/css/gren.css +16 -1
  18. data/lib/codestock/cdweb/public/images/directory.png +0 -0
  19. data/lib/codestock/cdweb/public/images/file.png +0 -0
  20. data/lib/codestock/cdweb/views/filelist.haml +14 -0
  21. data/lib/codestock/cdweb/views/help.haml +16 -0
  22. data/lib/codestock/cdweb/views/index.haml +17 -0
  23. data/lib/codestock/cdweb/views/layout.haml +33 -0
  24. data/lib/codestock/cdweb/views/search.haml +12 -0
  25. data/lib/codestock/cdweb/views/view.haml +16 -0
  26. data/test/file_assert.rb +41 -0
  27. data/test/test_coderay_wrapper.rb +22 -0
  28. data/test/test_coderay_wrapper_data.rb +91 -0
  29. data/test/test_database.rb +54 -0
  30. data/test/test_mkurl.rb +30 -0
  31. data/test/test_query.rb +54 -0
  32. metadata +52 -26
  33. data/lib/cdweb/cli_cdweb.rb +0 -54
  34. data/lib/cdweb/coderay_wrapper.rb +0 -38
  35. data/lib/cdweb/grenweb.ru +0 -35
  36. data/lib/cdweb/help.rb +0 -40
  37. data/lib/cdweb/home.rb +0 -40
  38. data/lib/cdweb/html_renderer.rb +0 -243
  39. data/lib/cdweb/searcher.rb +0 -130
  40. data/lib/cdweb/viewer.rb +0 -52
  41. data/test/test_grenweb_database.rb +0 -36
  42. data/test/test_grenweb_html_renderer.rb +0 -41
  43. data/test/test_grenweb_query.rb +0 -54
  44. data/test/test_grenweb_searcher.rb +0 -35
  45. /data/lib/{cdweb → codestock/cdweb}/public/css/coderay.css +0 -0
  46. /data/lib/{cdweb → codestock/cdweb}/public/images/gren-icon-mini.png +0 -0
  47. /data/lib/{cdweb → codestock/cdweb}/public/images/gren-icon.png +0 -0
@@ -0,0 +1,54 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # @file
4
+ # @brief
5
+ # @author ongaeshi
6
+ # @date 2011/02/20
7
+
8
+ require 'rubygems'
9
+ require 'groonga'
10
+ require 'test_helper'
11
+ require 'file_test_utils'
12
+ require 'stringio'
13
+ require 'cdstk/cdstk'
14
+ require 'codestock/cdweb/lib/database'
15
+
16
+ module CodeStock
17
+ class TestDatabase < Test::Unit::TestCase
18
+ include FileTestUtils
19
+
20
+ def setup_db
21
+ # データベース作成
22
+ io = StringIO.new
23
+ obj = Cdstk.new(io)
24
+ obj.init
25
+ obj.add('../../test')
26
+ obj.add('../../lib')
27
+ # puts io.string
28
+
29
+ # データベースのセットアップ
30
+ Database.setup('.')
31
+ end
32
+
33
+ def test_database
34
+ setup_db
35
+ t_open
36
+ t_fileList
37
+ end
38
+
39
+ def t_open
40
+ Database.instance
41
+ end
42
+
43
+ def t_fileList
44
+ db = Database.instance
45
+ assert_equal [['test', false], ['lib', false]], db.fileList('')
46
+ assert db.fileList('test').include? ['test/test_database.rb', true]
47
+ assert_equal ['lib/cdstk', false], db.fileList('lib')[0]
48
+ assert_equal ['lib/cdstk/cdstk.rb', true], db.fileList('lib/cdstk')[0]
49
+ assert_equal nil, db.fileList('lib/cdstk/cdstk.rb')[0]
50
+ end
51
+ end
52
+ end
53
+
54
+
@@ -0,0 +1,30 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # @file
4
+ # @brief
5
+ # @author ongaeshi
6
+ # @date 2010/10/21
7
+
8
+ require 'test_helper'
9
+ require 'codestock/cdweb/lib/mkurl'
10
+
11
+ module CodeStock
12
+ class TestMkurl < Test::Unit::TestCase
13
+ def test_basic
14
+ p1 = {:query => 'test', :shead => 'package', :page => '2'}
15
+ p2 = {:query => 'test', :page => '2'}
16
+ p3 = {:page => '2'}
17
+
18
+ assert_equal '/home/foo/bar.hpp?query=test&shead=package', Mkurl.new('/home/foo/bar.hpp', p1).inherit_query_shead
19
+ assert_equal '.?query=test&shead=package', Mkurl.new('.', p1).inherit_query_shead
20
+ assert_equal '/home/foo/bar.hpp?query=test', Mkurl.new('/home/foo/bar.hpp', p2).inherit_query_shead
21
+ assert_equal '/home/foo/bar.hpp', Mkurl.new('/home/foo/bar.hpp', p3).inherit_query_shead
22
+
23
+ assert_equal '/home/foo/bar.hpp?shead=package', Mkurl.new('/home/foo/bar.hpp', p1).inherit_shead
24
+ assert_equal '.?shead=package', Mkurl.new('.', p1).inherit_shead
25
+ assert_equal '/home/foo/bar.hpp', Mkurl.new('/home/foo/bar.hpp', p2).inherit_shead
26
+ assert_equal '/home/foo/bar.hpp', Mkurl.new('/home/foo/bar.hpp', p3).inherit_shead
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,54 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # @file
4
+ # @brief
5
+ # @author ongaeshi
6
+ # @date 2010/10/21
7
+
8
+ require 'test_helper'
9
+ require 'codestock/cdweb/lib/query'
10
+
11
+ module CodeStock
12
+ class TestQuery < Test::Unit::TestCase
13
+ def test_query
14
+ q = create_query("test fire beam")
15
+ assert_equal q.keywords, ['test', 'fire', 'beam']
16
+ assert_equal q.packages, []
17
+ assert_equal q.fpaths, []
18
+ assert_equal q.suffixs, []
19
+ assert_equal q.escape_html, 'test fire beam'
20
+
21
+ q = create_query("test fire beam f:testfile1")
22
+ assert_equal q.keywords, ['test', 'fire', 'beam']
23
+ assert_equal q.packages, []
24
+ assert_equal q.fpaths, ['testfile1']
25
+ assert_equal q.suffixs, []
26
+
27
+ q = create_query("test fire beam f:testfile1 filepath:dir32")
28
+ assert_equal q.keywords, ['test', 'fire', 'beam']
29
+ assert_equal q.packages, []
30
+ assert_equal q.fpaths, ['dir32', 'testfile1']
31
+ assert_equal q.suffixs, []
32
+
33
+ q = create_query("package:gren test fire beam f:testfile1 filepath:dir32 s:rb p:test suffix:pl")
34
+ assert_equal q.keywords, ['test', 'fire', 'beam']
35
+ assert_equal q.packages, ['gren', 'test']
36
+ assert_equal q.fpaths, ['dir32', 'testfile1']
37
+ assert_equal q.suffixs, ['pl', 'rb']
38
+
39
+ q = create_query("&p")
40
+ assert_equal "&p", q.query_string
41
+ assert_equal q.escape_html, '&amp;p'
42
+
43
+ q = create_query("int &p")
44
+ assert_equal q.escape_html, 'int &amp;p'
45
+
46
+ q = create_query('"def update"')
47
+ assert_equal q.keywords, ['def update']
48
+ end
49
+
50
+ def create_query(query)
51
+ Query.new(query)
52
+ end
53
+ end
54
+ end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 2
9
- version: 0.1.2
8
+ - 3
9
+ version: 0.1.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - ongaeshi
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-07-03 00:00:00 +09:00
17
+ date: 2011-07-20 00:00:00 +09:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -127,6 +127,20 @@ dependencies:
127
127
  requirement: *id008
128
128
  prerelease: false
129
129
  type: :runtime
130
+ - !ruby/object:Gem::Dependency
131
+ version_requirements: &id009 !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ segments:
136
+ - 1
137
+ - 2
138
+ - 10
139
+ version: 1.2.10
140
+ name: thin
141
+ requirement: *id009
142
+ prerelease: false
143
+ type: :runtime
130
144
  description: longer description of your gem
131
145
  email: ongaeshi0621@gmail.com
132
146
  executables:
@@ -157,22 +171,30 @@ files:
157
171
  - lib/cdstk/cdstk_yaml.rb
158
172
  - lib/cdstk/cli_cdstk.rb
159
173
  - lib/cdview/cli_cdview.rb
160
- - lib/cdweb/cli_cdweb.rb
161
- - lib/cdweb/coderay_wrapper.rb
162
- - lib/cdweb/database.rb
163
- - lib/cdweb/grenweb.ru
164
- - lib/cdweb/grep.rb
165
- - lib/cdweb/help.rb
166
- - lib/cdweb/home.rb
167
- - lib/cdweb/html_renderer.rb
168
- - lib/cdweb/public/css/coderay.css
169
- - lib/cdweb/public/css/gren.css
170
- - lib/cdweb/public/images/gren-icon-mini.png
171
- - lib/cdweb/public/images/gren-icon.png
172
- - lib/cdweb/query.rb
173
- - lib/cdweb/searcher.rb
174
- - lib/cdweb/viewer.rb
175
174
  - lib/codestock.rb
175
+ - lib/codestock/cdweb/app.rb
176
+ - lib/codestock/cdweb/cli_cdweb.rb
177
+ - lib/codestock/cdweb/config.ru
178
+ - lib/codestock/cdweb/lib/coderay_wrapper.rb
179
+ - lib/codestock/cdweb/lib/command.rb
180
+ - lib/codestock/cdweb/lib/database.rb
181
+ - lib/codestock/cdweb/lib/grep.rb
182
+ - lib/codestock/cdweb/lib/mkurl.rb
183
+ - lib/codestock/cdweb/lib/query.rb
184
+ - lib/codestock/cdweb/lib/search_contents.rb
185
+ - lib/codestock/cdweb/lib/search_files.rb
186
+ - lib/codestock/cdweb/public/css/coderay.css
187
+ - lib/codestock/cdweb/public/css/gren.css
188
+ - lib/codestock/cdweb/public/images/directory.png
189
+ - lib/codestock/cdweb/public/images/file.png
190
+ - lib/codestock/cdweb/public/images/gren-icon-mini.png
191
+ - lib/codestock/cdweb/public/images/gren-icon.png
192
+ - lib/codestock/cdweb/views/filelist.haml
193
+ - lib/codestock/cdweb/views/help.haml
194
+ - lib/codestock/cdweb/views/index.haml
195
+ - lib/codestock/cdweb/views/layout.haml
196
+ - lib/codestock/cdweb/views/search.haml
197
+ - lib/codestock/cdweb/views/view.haml
176
198
  - lib/common/dbdir.rb
177
199
  - lib/common/display_util.rb
178
200
  - lib/common/grenfiletest.rb
@@ -182,19 +204,21 @@ files:
182
204
  - lib/common/util.rb
183
205
  - lib/findgrep/findgrep.rb
184
206
  - lib/findgrep/result.rb
207
+ - test/file_assert.rb
185
208
  - test/file_test_utils.rb
186
209
  - test/rake_test_loader.rb
187
210
  - test/runner.rb
188
211
  - test/test_bin_exec.rb
189
212
  - test/test_cdstk.rb
190
213
  - test/test_cdstk_yaml.rb
214
+ - test/test_coderay_wrapper.rb
215
+ - test/test_coderay_wrapper_data.rb
216
+ - test/test_database.rb
191
217
  - test/test_dbdir.rb
192
218
  - test/test_gren_util.rb
193
- - test/test_grenweb_database.rb
194
- - test/test_grenweb_html_renderer.rb
195
- - test/test_grenweb_query.rb
196
- - test/test_grenweb_searcher.rb
197
219
  - test/test_helper.rb
220
+ - test/test_mkurl.rb
221
+ - test/test_query.rb
198
222
  - test/test_string_snip.rb
199
223
  has_rdoc: true
200
224
  homepage: http://github.com/ongaeshi/codestock
@@ -227,17 +251,19 @@ signing_key:
227
251
  specification_version: 3
228
252
  summary: one-line summary of your gem
229
253
  test_files:
254
+ - test/file_assert.rb
230
255
  - test/file_test_utils.rb
231
256
  - test/rake_test_loader.rb
232
257
  - test/runner.rb
233
258
  - test/test_bin_exec.rb
234
259
  - test/test_cdstk.rb
235
260
  - test/test_cdstk_yaml.rb
261
+ - test/test_coderay_wrapper.rb
262
+ - test/test_coderay_wrapper_data.rb
263
+ - test/test_database.rb
236
264
  - test/test_dbdir.rb
237
265
  - test/test_gren_util.rb
238
- - test/test_grenweb_database.rb
239
- - test/test_grenweb_html_renderer.rb
240
- - test/test_grenweb_query.rb
241
- - test/test_grenweb_searcher.rb
242
266
  - test/test_helper.rb
267
+ - test/test_mkurl.rb
268
+ - test/test_query.rb
243
269
  - test/test_string_snip.rb
@@ -1,54 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- require 'rubygems'
3
- require 'optparse'
4
- require 'fileutils'
5
- require 'cdweb/database'
6
- require 'common/dbdir'
7
- include CodeStock
8
- require 'rack'
9
- require 'launchy'
10
-
11
- module CodeStock
12
- class CLI_Cdweb
13
- def self.execute(stdout, arguments=[])
14
- option = {
15
- :Port => 9292,
16
- :DbDir => db_default_dir,
17
- }
18
-
19
- opt = OptionParser.new("#{File.basename($0)}")
20
- opt.on('--db DB_DIR', 'Database dir (default : ~/.codestock)') {|v| option[:DbDir] = v }
21
- opt.on('-p', '--port PORT', 'use PORT (default: 9292)') {|v| option[:Port] = v }
22
- opt.on('--no-browser', 'No launch browser.') {|v| option[:NoBrowser] = true }
23
- opt.parse!(arguments)
24
-
25
- # webサーバー起動
26
- stdout.puts <<EOF
27
- Start up grenweb !!
28
- URL : http://localhost:#{option[:Port]}
29
- DB : #{option[:DbDir]}
30
- ----------------------------------------
31
- EOF
32
-
33
- # 使用するデータベースの位置設定
34
- Database.setup(option[:DbDir])
35
-
36
- # サーバースクリプトのある場所へ移動
37
- FileUtils.cd(File.dirname(__FILE__))
38
-
39
- # ブラウザ起動
40
- Launchy.open("http://localhost:#{option[:Port]}") unless (option[:NoBrowser])
41
-
42
- # サーバー起動
43
- Rack::Server.start(
44
- :environment => "development",
45
- :pid => nil,
46
- :Port => option[:Port],
47
- :Host => "0.0.0.0",
48
- :AccessLog => [],
49
- :config => "grenweb.ru"
50
- )
51
-
52
- end
53
- end
54
- end
@@ -1,38 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # @file
4
- # @brief
5
- # @author ongaeshi
6
- # @date 2011/07/03
7
-
8
- require 'rubygems'
9
- require 'coderay'
10
- require 'coderay/helpers/file_type'
11
-
12
- module CodeStock
13
- class CodeRayWrapper
14
- def self.html_memfile(content, filename)
15
- to_html_code(content, file_type(filename))
16
- end
17
-
18
- def self.to_html_code(code, kind)
19
- CodeRay.scan(code, kind).
20
- html(
21
- :wrap => nil,
22
- :line_numbers => :table,
23
- :css => :class
24
- )
25
- end
26
-
27
- def self.file_type(filename)
28
- case File.extname(filename)
29
- when ".el"
30
- :scheme
31
- else
32
- CodeRay::FileType.fetch filename, :plaintext
33
- end
34
- end
35
- end
36
- end
37
-
38
-
data/lib/cdweb/grenweb.ru DELETED
@@ -1,35 +0,0 @@
1
- # -*- mode: ruby; coding: utf-8 -*-
2
- #
3
- # @file
4
- # @brief gren web検索
5
- # @author ongaeshi
6
- # @date 2010/10/13
7
-
8
- require 'rubygems'
9
- require 'rack'
10
- require 'cdweb/home'
11
- require 'cdweb/searcher'
12
- require 'cdweb/viewer'
13
- require 'cdweb/help'
14
-
15
- use Rack::CommonLogger
16
- use Rack::Runtime
17
- use Rack::Static, :urls => ["/css", "/images"], :root => "public"
18
- use Rack::ContentLength
19
-
20
- map '/' do
21
- run CodeStock::Home.new
22
- end
23
-
24
- map '/::search' do
25
- run CodeStock::Searcher.new
26
- end
27
-
28
- map '/::view' do
29
- run CodeStock::Viewer.new
30
- end
31
-
32
- map '/::help' do
33
- run CodeStock::Help.new
34
- end
35
-
data/lib/cdweb/help.rb DELETED
@@ -1,40 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # @file
4
- # @brief ホーム画面
5
- # @author ongaeshi
6
- # @date 2010/10/13
7
-
8
- require 'rubygems'
9
- require 'rack'
10
- require 'cdweb/database'
11
- require 'cdweb/html_renderer'
12
- require 'cdweb/query'
13
-
14
- module CodeStock
15
- class Help
16
- include Rack::Utils
17
-
18
- def call(env)
19
- @env = env
20
- @request = Rack::Request.new(env)
21
- @query = Query.new(@request)
22
-
23
- @response = Rack::Response.new
24
- @response["Content-Type"] = "text/html; charset=UTF-8"
25
-
26
- render
27
- end
28
-
29
- private
30
-
31
- def render
32
- r = HTMLRendeler.new(@request.script_name + '/..')
33
- @response.write r.header("gren - help", "gren - help")
34
- @response.write r.sample_code
35
- @response.write r.footer
36
- @response.to_a
37
- end
38
- end
39
- end
40
-
data/lib/cdweb/home.rb DELETED
@@ -1,40 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # @file
4
- # @brief ホーム画面
5
- # @author ongaeshi
6
- # @date 2010/10/13
7
-
8
- require 'rubygems'
9
- require 'rack'
10
- require 'cdweb/database'
11
- require 'cdweb/html_renderer'
12
- require 'cdweb/query'
13
-
14
- module CodeStock
15
- class Home
16
- include Rack::Utils
17
-
18
- def call(env)
19
- @env = env
20
- @request = Rack::Request.new(env)
21
- @query = Query.new(@request)
22
-
23
- @response = Rack::Response.new
24
- @response["Content-Type"] = "text/html; charset=UTF-8"
25
-
26
- render
27
- end
28
-
29
- private
30
-
31
- def render
32
- r = HTMLRendeler.new(@request.script_name)
33
- @response.write r.header_home("gren", "gren", Version)
34
- @response.write r.search_box
35
- @response.write r.footer_home("??", Database.instance.fileNum)
36
- @response.to_a
37
- end
38
- end
39
- end
40
-