sekka 0.9.5 → 0.9.6
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/sekka-server +11 -3
- data/emacs/sekka.el +1 -1
- data/lib/sekka/sekkaversion.rb +2 -3
- data/lib/sekkaserver.rb +11 -4
- data/test/memcache.nnd +12 -1
- data/test/redis.nnd +88 -0
- metadata +10 -9
data/bin/sekka-server
CHANGED
@@ -11,14 +11,16 @@ require File.expand_path(File.dirname(__FILE__) + "/../lib/sekka/sekkaversion")
|
|
11
11
|
|
12
12
|
|
13
13
|
DICTDIR = File.expand_path( "~/.sekka-server" )
|
14
|
-
DICTURL = "
|
14
|
+
DICTURL = "https://raw.github.com/kiyoka/sekka/master/public_dict/" + SekkaVersion.dictVersion
|
15
|
+
|
15
16
|
|
16
17
|
PIDFILE = DICTDIR + "/pid"
|
17
18
|
|
18
19
|
TC_FILE = DICTDIR + "/SEKKA-JISYO.SMALL.tch"
|
19
20
|
TSVFILE = DICTDIR + "/SEKKA-JISYO.SMALL.tsv"
|
20
21
|
SUMFILE = DICTDIR + "/SEKKA-JISYO.SMALL.md5"
|
21
|
-
|
22
|
+
|
23
|
+
URLURL = DICTURL + "/SEKKA-JISYO.SMALL.url"
|
22
24
|
SUMURL = DICTURL + "/SEKKA-JISYO.SMALL.md5"
|
23
25
|
|
24
26
|
TC_FILE_LIST = [ DICTDIR + "/SEKKA-JISYO.CUSTOM.tch",
|
@@ -71,7 +73,13 @@ def main
|
|
71
73
|
if not File.exist?( TSVFILE )
|
72
74
|
STDERR.printf( "Info: Downloading SEKKA-JISYO\n" )
|
73
75
|
# 辞書をダウンロードする
|
74
|
-
cmd = sprintf( "curl
|
76
|
+
cmd = sprintf( "curl %s", URLURL )
|
77
|
+
STDERR.printf( "Command : %s\n", cmd )
|
78
|
+
tsvurl = open( "|" + cmd ) { |f|
|
79
|
+
f.read
|
80
|
+
}
|
81
|
+
STDERR.printf( " download URL of tsv file : %s\n", tsvurl );
|
82
|
+
cmd = sprintf( "curl -o %s %s", TSVFILE, tsvurl )
|
75
83
|
STDERR.printf( "Command : %s\n", cmd )
|
76
84
|
system( cmd )
|
77
85
|
cmd = sprintf( "curl -o %s %s", SUMFILE, SUMURL )
|
data/emacs/sekka.el
CHANGED
data/lib/sekka/sekkaversion.rb
CHANGED
data/lib/sekkaserver.rb
CHANGED
@@ -146,14 +146,21 @@ module SekkaServer
|
|
146
146
|
format = URI.decode( req.params['format'].force_encoding("UTF-8") )
|
147
147
|
case req.path
|
148
148
|
when "/henkan"
|
149
|
-
_yomi
|
150
|
-
_limit
|
151
|
-
_method
|
149
|
+
_yomi = URI.decode( req.params[ 'yomi'].force_encoding("UTF-8") )
|
150
|
+
_limit = URI.decode( req.params[ 'limit'].force_encoding("UTF-8") )
|
151
|
+
_method = URI.decode( req.params['method'].force_encoding("UTF-8") )
|
152
|
+
_orRedis = if :redis == SekkaServer::Config.dictType then "or Redis-server" else "" end
|
152
153
|
@mutex.synchronize {
|
153
154
|
begin
|
154
155
|
@core.writeToString( @core.sekkaHenkan( userid, @kvs, @cachesv, _yomi, _limit.to_i, _method ))
|
155
156
|
rescue MemCache::MemCacheError
|
156
157
|
"sekka-server: memcached server is down (or may be offline)"
|
158
|
+
rescue Timeout
|
159
|
+
result = "sekka-server: Timeout to request memcached server #{_orRedis} (may be offline)"
|
160
|
+
rescue SocketError
|
161
|
+
result = "sekka-server: SocketError to request memcached server #{_orRedis} (may be offline)"
|
162
|
+
rescue Errno::ECONNREFUSED
|
163
|
+
result = "sekka-server: ConnectionRefused to request memcached server #{_orRedis} (may be offline)"
|
157
164
|
end
|
158
165
|
}
|
159
166
|
when "/kakutei"
|
@@ -182,7 +189,7 @@ module SekkaServer
|
|
182
189
|
rescue SocketError
|
183
190
|
result = "sekka-server: SocketError to request google-ime (may be offline)"
|
184
191
|
rescue Errno::ECONNREFUSED
|
185
|
-
result = "sekka-server:
|
192
|
+
result = "sekka-server: ConnectionRefused to request google-ime (or may be offline)"
|
186
193
|
end
|
187
194
|
@core.writeToString( result )
|
188
195
|
else
|
data/test/memcache.nnd
CHANGED
@@ -40,7 +40,6 @@
|
|
40
40
|
(define dbtype 'memcache)
|
41
41
|
(define userid "temp")
|
42
42
|
(define cachesv (Kvs.new dbtype))
|
43
|
-
(cachesv.open "localhost:11211")
|
44
43
|
|
45
44
|
(test-start "memcached I/F")
|
46
45
|
;;===================================================================
|
@@ -48,6 +47,18 @@
|
|
48
47
|
;;-------------------------------------------------------------------
|
49
48
|
(test-section "memcached access")
|
50
49
|
|
50
|
+
(test* "db connect NG and Exception"
|
51
|
+
(test-error MemCache::MemCacheError)
|
52
|
+
(let1 sv (Kvs.new dbtype)
|
53
|
+
(sv.open "localhost:11111")
|
54
|
+
(sv.put! "temp::1" "one")))
|
55
|
+
|
56
|
+
(test* "db connect OK"
|
57
|
+
"one"
|
58
|
+
(begin
|
59
|
+
(cachesv.open "localhost:11211")
|
60
|
+
(cachesv.put! "temp::1" "one")))
|
61
|
+
|
51
62
|
(test* "db store 1"
|
52
63
|
"one"
|
53
64
|
(cachesv.put! "temp::1" "one"))
|
data/test/redis.nnd
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
;;-*- mode: nendo; syntax: scheme -*-
|
2
|
+
;;;
|
3
|
+
;;; redis.nnd - Redisサーバーへのアクセスのテスト
|
4
|
+
;;;
|
5
|
+
;;; Copyright (c) 2011 Kiyoka Nishiyama <kiyoka@sumibi.org>
|
6
|
+
;;;
|
7
|
+
;;; Redistribution and use in source and binary forms, with or without
|
8
|
+
;;; modification, are permitted provided that the following conditions
|
9
|
+
;;; are met:
|
10
|
+
;;;
|
11
|
+
;;; 1. Redistributions of source code must retain the above copyright
|
12
|
+
;;; notice, this list of conditions and the following disclaimer.
|
13
|
+
;;;
|
14
|
+
;;; 2. Redistributions in binary form must reproduce the above copyright
|
15
|
+
;;; notice, this list of conditions and the following disclaimer in the
|
16
|
+
;;; documentation and/or other materials provided with the distribution.
|
17
|
+
;;;
|
18
|
+
;;; 3. Neither the name of the authors nor the names of its contributors
|
19
|
+
;;; may be used to endorse or promote products derived from this
|
20
|
+
;;; software without specific prior written permission.
|
21
|
+
;;;
|
22
|
+
;;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
23
|
+
;;; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
24
|
+
;;; LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
25
|
+
;;; A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
26
|
+
;;; OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
27
|
+
;;; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
28
|
+
;;; TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
29
|
+
;;; PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
30
|
+
;;; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
31
|
+
;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
32
|
+
;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
33
|
+
;;;
|
34
|
+
;;; $Id:
|
35
|
+
;;;
|
36
|
+
(require "sekka/kvs")
|
37
|
+
(use nendo.test)
|
38
|
+
(load "./test/common.nnd")
|
39
|
+
|
40
|
+
(define dbtype 'redis)
|
41
|
+
(define userid "temp")
|
42
|
+
(define cachesv (Kvs.new dbtype))
|
43
|
+
|
44
|
+
(test-start "redis I/F")
|
45
|
+
;;===================================================================
|
46
|
+
|
47
|
+
;;-------------------------------------------------------------------
|
48
|
+
(test-section "redis server access")
|
49
|
+
|
50
|
+
(test* "db connect NG and Exception"
|
51
|
+
(test-error SocketError)
|
52
|
+
(let1 sv (Kvs.new dbtype)
|
53
|
+
(sv.open "nohost.example.com")
|
54
|
+
(sv.put! "temp::1" "one")))
|
55
|
+
|
56
|
+
(test* "db connect NG and Exception"
|
57
|
+
(test-error Timeout::Error)
|
58
|
+
(let1 sv (Kvs.new dbtype)
|
59
|
+
(sv.open "126.0.0.1")
|
60
|
+
(sv.put! "temp::1" "one")))
|
61
|
+
|
62
|
+
(test* "db connect OK"
|
63
|
+
"one"
|
64
|
+
(begin
|
65
|
+
(cachesv.open "localhost")
|
66
|
+
(cachesv.put! "temp::1" "one")))
|
67
|
+
|
68
|
+
(print "sleep 100")
|
69
|
+
(.sleep 100)
|
70
|
+
|
71
|
+
|
72
|
+
(test* "db store 1"
|
73
|
+
"one"
|
74
|
+
(cachesv.put! "temp::1" "one"))
|
75
|
+
|
76
|
+
(test* "db fetch 1"
|
77
|
+
"one"
|
78
|
+
(cachesv.get "temp::1"))
|
79
|
+
|
80
|
+
(test* "db fetch fallback"
|
81
|
+
false
|
82
|
+
(cachesv.get "temp::none" false))
|
83
|
+
|
84
|
+
|
85
|
+
;;===================================================================
|
86
|
+
|
87
|
+
|
88
|
+
(test-end)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sekka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 55
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 9
|
9
|
-
-
|
10
|
-
version: 0.9.
|
9
|
+
- 6
|
10
|
+
version: 0.9.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Kiyoka Nishiyama
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-11-07 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: rspec
|
@@ -220,12 +220,12 @@ dependencies:
|
|
220
220
|
requirements:
|
221
221
|
- - "="
|
222
222
|
- !ruby/object:Gem::Version
|
223
|
-
hash:
|
223
|
+
hash: 5
|
224
224
|
segments:
|
225
225
|
- 0
|
226
|
-
-
|
227
|
-
-
|
228
|
-
version: 0.
|
226
|
+
- 6
|
227
|
+
- 1
|
228
|
+
version: 0.6.1
|
229
229
|
type: :runtime
|
230
230
|
prerelease: false
|
231
231
|
version_requirements: *id015
|
@@ -304,6 +304,7 @@ files:
|
|
304
304
|
- test/henkan-main.nnd
|
305
305
|
- test/jisyo.nnd
|
306
306
|
- test/memcache.nnd
|
307
|
+
- test/redis.nnd
|
307
308
|
- test/roman-lib.nnd
|
308
309
|
- test/sharp-number.nnd
|
309
310
|
- test/skk-azik-table.nnd
|
@@ -339,7 +340,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
339
340
|
requirements: []
|
340
341
|
|
341
342
|
rubyforge_project:
|
342
|
-
rubygems_version: 1.8.
|
343
|
+
rubygems_version: 1.8.11
|
343
344
|
signing_key:
|
344
345
|
specification_version: 3
|
345
346
|
summary: Sekka is a SKK like input method.
|