sekka 1.6.6 → 1.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +0 -3
- data/Rakefile +5 -1
- data/VERSION.yml +2 -2
- data/emacs/sekka.el +2 -2
- data/gemfiles/Gemfile +1 -1
- data/lib/sekka/henkan.nnd +19 -6
- data/lib/sekka/kvs.rb +11 -7
- data/lib/sekka/roman-lib.nnd +14 -7
- data/lib/sekka/sekkaversion.rb +1 -1
- data/lib/sekkaserver.rb +105 -99
- data/test/henkan-main.nnd +43 -34
- data/test/jisyo.nnd +6 -0
- data/test/memcache.nnd +0 -6
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f14974e9acd87ad10f08d88a02162ef21a8c7fff
|
4
|
+
data.tar.gz: c9d7db3ca95a63b316d8089c947ab23424cde502
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 97f809c4c8f84c6a5123a7b71ac6f0698c46d4104b1661eb1428ea557cf9c650f47f324d7b2e2c9dfe16e1e30ad3d4b531fc6dcd1595ac5ee34535b392b6b84e
|
7
|
+
data.tar.gz: 68af3d5572e414b082afb7ec85f2024912387a2df90b43de0f68c098854e1698f6def4c01190141e77099a121e749ea74ba54d246b9c5c23c8f9bd2347c8e91d
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/Rakefile
CHANGED
@@ -116,7 +116,7 @@ task :test do
|
|
116
116
|
files << "./test/henkan-main.nnd leveldb"
|
117
117
|
end
|
118
118
|
files.each {|filename|
|
119
|
-
sh sprintf( "ruby -I ./lib -S nendo -I ./lib -d %s", filename )
|
119
|
+
sh sprintf( "export RUBY_THREAD_VM_STACK_SIZE=100000 ; ruby -I ./lib -S nendo -I ./lib -d %s", filename )
|
120
120
|
}
|
121
121
|
sh "cat test.record"
|
122
122
|
end
|
@@ -152,6 +152,10 @@ task :dump do
|
|
152
152
|
sh sprintf( "ruby ./bin/sekka-jisyo dump ./data/SEKKA-JISYO.N.tch#xmsiz=1024m > ./data/SEKKA-JISYO-%s.N.tsv", dictVersion )
|
153
153
|
end
|
154
154
|
|
155
|
+
task :restore do
|
156
|
+
sh sprintf("export RUBY_THREAD_VM_STACK_SIZE=100000 ; ruby -I ./lib ./bin/sekka-jisyo restore ./data/SEKKA-JISYO-%s.N.tsv jisyo.N.ldb", dictVersion )
|
157
|
+
end
|
158
|
+
|
155
159
|
task :load_leveldb do
|
156
160
|
sh sprintf( "ruby ./bin/sekka-jisyo load ./data/SEKKA-JISYO.N ./data/SEKKA-JISYO-%s.N.ldb", dictVersion )
|
157
161
|
sh sprintf( "tar zcCf ./data ./data/SEKKA-JISYO-%s.N.ldb.tar.gz ./SEKKA-JISYO-%s.N.ldb" , dictVersion, dictVersion )
|
data/VERSION.yml
CHANGED
data/emacs/sekka.el
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
;; Copyright (C) 2010-2014 Kiyoka Nishiyama
|
4
4
|
;;
|
5
5
|
;; Author: Kiyoka Nishiyama <kiyoka@sumibi.org>
|
6
|
-
;; Version: 1.
|
6
|
+
;; Version: 1.7.0 ;;SEKKA-VERSION
|
7
7
|
;; Keywords: ime, skk, japanese
|
8
8
|
;; Package-Requires: ((cl-lib "0.3") (concurrent "0.3.1") (popup "0.5.2"))
|
9
9
|
;; URL: https://github.com/kiyoka/sekka
|
@@ -1756,7 +1756,7 @@ point から行頭方向に同種の文字列が続く間を漢字変換しま
|
|
1756
1756
|
(setq default-input-method "japanese-sekka")
|
1757
1757
|
|
1758
1758
|
(defconst sekka-version
|
1759
|
-
"1.
|
1759
|
+
"1.7.0" ;;SEKKA-VERSION
|
1760
1760
|
)
|
1761
1761
|
(defun sekka-version (&optional arg)
|
1762
1762
|
"入力モード変更"
|
data/gemfiles/Gemfile
CHANGED
data/lib/sekka/henkan.nnd
CHANGED
@@ -386,19 +386,32 @@
|
|
386
386
|
|
387
387
|
|
388
388
|
;; conversion #f => nil for EmacsLisp
|
389
|
-
(define (sekkaHenkan userid kvs cachesv keyword limit roman-method)
|
389
|
+
(define (sekkaHenkan userid kvs cachesv keyword limit roman-method emacs-mode)
|
390
390
|
(define cache-exp-second (* 10 60))
|
391
391
|
(let* ((keyword (keyword.strip))
|
392
|
-
(sekka-keyword (+ "sekka:" roman-method ":" (limit.to_s) ":" keyword)))
|
392
|
+
(sekka-keyword (+ "sekka:" roman-method ":" (limit.to_s) ":" (if emacs-mode "sexp" "json") ":" keyword)))
|
393
393
|
(if-let1 fetched (and cachesv
|
394
394
|
(cachesv.get sekka-keyword #f))
|
395
395
|
(begin
|
396
396
|
keyword
|
397
397
|
(read-from-string fetched))
|
398
|
-
(
|
399
|
-
|
400
|
-
|
401
|
-
|
398
|
+
(let*
|
399
|
+
((henkan-result-tmp
|
400
|
+
(sekka-henkan userid kvs keyword limit (make-keyword roman-method)))
|
401
|
+
(henkan-result
|
402
|
+
(if emacs-mode
|
403
|
+
(map
|
404
|
+
(lambda (x)
|
405
|
+
(map (lambda (val)
|
406
|
+
(if val val nil))
|
407
|
+
x))
|
408
|
+
henkan-result-tmp)
|
409
|
+
(list->vector
|
410
|
+
(map
|
411
|
+
(lambda (x)
|
412
|
+
(list->vector x))
|
413
|
+
henkan-result-tmp)))))
|
414
|
+
|
402
415
|
(and cachesv
|
403
416
|
(not (null? henkan-result))
|
404
417
|
(let1 fetched2 (cachesv.get "sekka:(keys)" #f)
|
data/lib/sekka/kvs.rb
CHANGED
@@ -31,7 +31,7 @@
|
|
31
31
|
#
|
32
32
|
# $Id:
|
33
33
|
#
|
34
|
-
require '
|
34
|
+
require 'memcachepod'
|
35
35
|
|
36
36
|
class Kvs
|
37
37
|
def initialize( dbtype )
|
@@ -110,9 +110,7 @@ class Kvs
|
|
110
110
|
when :redis
|
111
111
|
@db = Redis.new( :host => name )
|
112
112
|
when :memcache
|
113
|
-
@db =
|
114
|
-
:connect_timeout => 1000.0,
|
115
|
-
:timeout => 1000.0 )
|
113
|
+
@db = MemcachePod::Client.new( name, { :expires_in => 600 } )
|
116
114
|
when :gdbm
|
117
115
|
if not name.match( /.db$/ )
|
118
116
|
name = name + ".db"
|
@@ -175,11 +173,17 @@ class Kvs
|
|
175
173
|
if 0 == key.size
|
176
174
|
fallback
|
177
175
|
else
|
178
|
-
val =
|
176
|
+
val = ''
|
177
|
+
case @dbtype
|
178
|
+
when :memcache
|
179
|
+
val = @db.get(key.force_encoding("ASCII-8BIT"))
|
180
|
+
else
|
181
|
+
val = @db[ key ]
|
182
|
+
end
|
179
183
|
if val
|
180
|
-
val.force_encoding("UTF-8")
|
184
|
+
return val.force_encoding("UTF-8")
|
181
185
|
else
|
182
|
-
fallback
|
186
|
+
return fallback
|
183
187
|
end
|
184
188
|
end
|
185
189
|
end
|
data/lib/sekka/roman-lib.nnd
CHANGED
@@ -360,7 +360,7 @@
|
|
360
360
|
|
361
361
|
;; 子音が2音入ったテーブル
|
362
362
|
(define sekka-kana->roman-alist-long
|
363
|
-
|
363
|
+
'(
|
364
364
|
;; "n" 一つで "nn" を表現する件と被るのでAZIK専用拡張とする(エントリ上書き)
|
365
365
|
("にゃ" "nya" "nga")
|
366
366
|
("にゅ" "nyu" "ngu")
|
@@ -711,12 +711,19 @@
|
|
711
711
|
|
712
712
|
;; ハッシュテーブル ローマ字 =>平仮名
|
713
713
|
(define (sekka-alist-swap alist)
|
714
|
-
(
|
715
|
-
|
716
|
-
|
717
|
-
|
718
|
-
|
719
|
-
|
714
|
+
(let1 mapped (map
|
715
|
+
(lambda (x)
|
716
|
+
(let ((hira (car x))
|
717
|
+
(romans (cdr x)))
|
718
|
+
(map (lambda (r) (list r hira)) romans)))
|
719
|
+
alist)
|
720
|
+
(let1 lst '()
|
721
|
+
(for-each
|
722
|
+
(lambda (x)
|
723
|
+
(for-each (lambda (y) (push! lst y)) (reverse x)))
|
724
|
+
mapped)
|
725
|
+
(reverse lst))))
|
726
|
+
|
720
727
|
(define sekka-roman->kana-hash-short
|
721
728
|
(alist->hash-table (sekka-alist-swap sekka-kana->roman-alist-short)))
|
722
729
|
(define sekka-roman->kana-hash-long
|
data/lib/sekka/sekkaversion.rb
CHANGED
data/lib/sekkaserver.rb
CHANGED
@@ -60,12 +60,15 @@ module SekkaServer
|
|
60
60
|
@core.evalStr( "(use sekka.henkan)" )
|
61
61
|
@core.evalStr( '(define (writeToString sexp) (write-to-string sexp))' )
|
62
62
|
@core.evalStr( '(export-to-ruby writeToString)' )
|
63
|
+
@core.evalStr( "(use rfc.json)" )
|
64
|
+
@core.evalStr( '(define (constructJsonString sexp) (construct-json-string sexp))' )
|
65
|
+
@core.evalStr( '(export-to-ruby constructJsonString)' )
|
63
66
|
(@kvs,@initialCachesv) = @core.openSekkaJisyo( SekkaServer::Config.dictType,
|
64
67
|
SekkaServer::Config.dictSource,
|
65
68
|
SekkaServer::Config.cacheSource )
|
66
69
|
|
67
70
|
# connection check to memcached
|
68
|
-
fail_message = "sekka-server:
|
71
|
+
fail_message = "sekka-server: failed to access memcached.\n"
|
69
72
|
begin
|
70
73
|
@core.flushCacheServer(@initialCachesv)
|
71
74
|
rescue MemCache::MemCacheError
|
@@ -100,7 +103,6 @@ module SekkaServer
|
|
100
103
|
STDERR.printf( " dict version : %s\n", SekkaVersion.dictVersion )
|
101
104
|
STDERR.printf( " dict-type : %s\n", SekkaServer::Config.dictType )
|
102
105
|
STDERR.printf( " dict-db : %s\n", SekkaServer::Config.dictSource )
|
103
|
-
STDERR.printf( " memcached : %s\n", SekkaServer::Config.cacheSource )
|
104
106
|
STDERR.printf( " listenPort : %s\n", SekkaServer::Config.listenPort )
|
105
107
|
STDERR.printf( " proxyHost : %s\n", SekkaServer::Config.proxyHost )
|
106
108
|
STDERR.printf( " proxyPort : %s\n", SekkaServer::Config.proxyPort )
|
@@ -130,8 +132,8 @@ module SekkaServer
|
|
130
132
|
STDERR.puts "Info: processing [register(" + dictline + ") on " + userid + "] batch command... "
|
131
133
|
begin
|
132
134
|
registered = @core.registerUserJisyo(userid, @kvs, dictline)
|
133
|
-
rescue
|
134
|
-
STDERR.puts "
|
135
|
+
rescue Exception => e
|
136
|
+
STDERR.puts "Error: missing [register(" + dictline + ")] batch command... [" + e.message + "]"
|
135
137
|
end
|
136
138
|
if registered
|
137
139
|
str = d.strftime( "%D %X" )
|
@@ -147,17 +149,16 @@ module SekkaServer
|
|
147
149
|
STDERR.puts "Info: processing [kakutei(" + _tango + ")] batch command..."
|
148
150
|
begin
|
149
151
|
@core.sekkaKakutei( userid, @kvs, @cachesv, _key, _tango )
|
150
|
-
rescue
|
151
|
-
STDERR.puts "
|
152
|
+
rescue Exception => e
|
153
|
+
STDERR.puts "Error: missing [kakutei(" + _tango + ")] batch command... [" + e.message + "]"
|
152
154
|
end
|
153
|
-
|
154
155
|
STDERR.printf( "Info: kakutei [%s:%s] \n", _key, _tango )
|
155
156
|
when 'f' # flush
|
156
157
|
STDERR.puts "Info: processing [flush] batch command..."
|
157
158
|
begin
|
158
159
|
n = @core.flushUserJisyo( userid, @kvs )
|
159
|
-
rescue
|
160
|
-
STDERR.puts "
|
160
|
+
rescue Exception => e
|
161
|
+
STDERR.puts "Error: missing [flush] batch command... [" + e.message + "]"
|
161
162
|
end
|
162
163
|
@core.flushCacheServer( @cachesv )
|
163
164
|
STDERR.printf( "info : flush [%s] user's dict %d entries. \n", userid, n )
|
@@ -169,90 +170,31 @@ module SekkaServer
|
|
169
170
|
}
|
170
171
|
end
|
171
172
|
@thread.run
|
172
|
-
rescue
|
173
|
-
|
173
|
+
rescue Exception => e
|
174
|
+
STDERR.puts "Error: " + e.message # => "unhandled exception"
|
174
175
|
end
|
175
176
|
end
|
176
177
|
|
177
178
|
def call(env)
|
178
179
|
req = Rack::Request.new(env)
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
userid = URI.decode( req.params['userid'].force_encoding("UTF-8") )
|
193
|
-
format = URI.decode( req.params['format'].force_encoding("UTF-8") )
|
194
|
-
case req.path
|
195
|
-
when "/henkan"
|
196
|
-
_yomi = URI.decode( req.params[ 'yomi'].force_encoding("UTF-8") )
|
197
|
-
_limit = URI.decode( req.params[ 'limit'].force_encoding("UTF-8") )
|
198
|
-
_method = URI.decode( req.params['method'].force_encoding("UTF-8") )
|
199
|
-
_orRedis = if :redis == SekkaServer::Config.dictType then "or Redis-server" else "" end
|
200
|
-
@mutex.synchronize {
|
201
|
-
begin
|
202
|
-
if SekkaServer::Config.maxQueryLength < _yomi.size
|
203
|
-
result = sprintf( "sekka-server: query string is too long (over %d character length)", SekkaServer::Config.maxQueryLength )
|
204
|
-
else
|
205
|
-
@core.writeToString( @core.sekkaHenkan( userid, @kvs, @cachesv, _yomi, _limit.to_i, _method ))
|
206
|
-
end
|
207
|
-
rescue MemCache::MemCacheError
|
208
|
-
result = "sekka-server: memcached server is down (or may be offline)"
|
209
|
-
disableMemcache()
|
210
|
-
rescue Timeout
|
211
|
-
result = "sekka-server: Timeout to request memcached server #{_orRedis} (or may be offline)"
|
212
|
-
disableMemcache()
|
213
|
-
rescue SocketError
|
214
|
-
result = "sekka-server: SocketError to request memcached server #{_orRedis} (or may be offline)"
|
215
|
-
disableMemcache()
|
216
|
-
rescue Errno::ECONNREFUSED
|
217
|
-
result = "sekka-server: ConnectionRefused to request memcached server #{_orRedis} (or may be offline)"
|
218
|
-
disableMemcache()
|
219
|
-
end
|
220
|
-
}
|
221
|
-
when "/kakutei"
|
222
|
-
_key = URI.decode( req.params[ 'key'].force_encoding("UTF-8") )
|
223
|
-
_tango = URI.decode( req.params[ 'tango'].force_encoding("UTF-8") )
|
224
|
-
@queue.push( 'k ' + userid + " " + _key + " " + _tango )
|
225
|
-
when "/register"
|
226
|
-
dict = URI.decode( req.params['dict'].force_encoding( "UTF-8" ) ).split( "\n" )
|
227
|
-
dict.each { |x|
|
228
|
-
@queue.push( 'r ' + userid + " " + x )
|
229
|
-
}
|
230
|
-
sprintf( "sekka-server:register request (%s) words added, current-queue-size (%s)", dict.size, @queue.size )
|
231
|
-
when "/flush"
|
232
|
-
@queue.push( 'f ' + userid )
|
233
|
-
sprintf( "sekka-server:flush request successful." )
|
234
|
-
when "/googleime"
|
235
|
-
_yomi = URI.decode( req.params[ 'yomi'].force_encoding("UTF-8") )
|
236
|
-
printf( "info : google-ime request [%s]\n", _yomi )
|
237
|
-
result = "sekka-server: google-ime error"
|
238
|
-
begin
|
239
|
-
result = @core.googleIme( _yomi,
|
240
|
-
SekkaServer::Config.proxyHost,
|
241
|
-
SekkaServer::Config.proxyPort )
|
242
|
-
rescue Timeout
|
243
|
-
result = "sekka-server: Timeout to request google-ime (may be offline)"
|
244
|
-
rescue SocketError
|
245
|
-
result = "sekka-server: SocketError to request google-ime (may be offline)"
|
246
|
-
rescue Errno::ECONNREFUSED
|
247
|
-
result = "sekka-server: ConnectionRefused to request google-ime (or may be offline)"
|
248
|
-
end
|
249
|
-
@core.writeToString( result )
|
250
|
-
else
|
251
|
-
sprintf( "sekka-server:unknown path name. [%s]", req.path )
|
252
|
-
end
|
180
|
+
|
181
|
+
body = case req.request_method
|
182
|
+
when 'GET'
|
183
|
+
execGetMethod(req)
|
184
|
+
when 'POST'
|
185
|
+
if !req.params.has_key?('userid')
|
186
|
+
str = "Err: parameter 'userid' required"
|
187
|
+
STDERR.puts str
|
188
|
+
@core.writeToString( str )
|
189
|
+
elsif !req.params.has_key?('format')
|
190
|
+
str = "Err: parameter 'format' required"
|
191
|
+
STDERR.puts str
|
192
|
+
@core.writeToString( str )
|
253
193
|
else
|
254
|
-
|
194
|
+
execPostMethod(req)
|
255
195
|
end
|
196
|
+
else
|
197
|
+
"no message."
|
256
198
|
end
|
257
199
|
res = Rack::Response.new { |r|
|
258
200
|
r.status = 200
|
@@ -261,22 +203,86 @@ module SekkaServer
|
|
261
203
|
}
|
262
204
|
res.finish
|
263
205
|
end
|
264
|
-
|
265
|
-
def
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
if (@downTime.to_time.to_i + (10 * 60)) < now.to_time.to_i
|
270
|
-
@cachesv = @initialCachesv
|
271
|
-
STDERR.printf( "Sekka Info: revert using memcache server. [%s]\n", @downTime )
|
272
|
-
end
|
206
|
+
|
207
|
+
def execGetMethod(req)
|
208
|
+
case req.path
|
209
|
+
when "/status"
|
210
|
+
"OK"
|
273
211
|
end
|
274
212
|
end
|
275
213
|
|
276
|
-
def
|
277
|
-
|
278
|
-
|
279
|
-
|
214
|
+
def isJson(format)
|
215
|
+
return "json" == format.downcase
|
216
|
+
end
|
217
|
+
|
218
|
+
def execPostMethod(req)
|
219
|
+
|
220
|
+
userid = URI.decode( req.params['userid'].force_encoding("UTF-8") )
|
221
|
+
format = URI.decode( req.params['format'].force_encoding("UTF-8") )
|
222
|
+
case req.path
|
223
|
+
when "/henkan"
|
224
|
+
_yomi = URI.decode( req.params[ 'yomi'].force_encoding("UTF-8") )
|
225
|
+
_limit = URI.decode( req.params[ 'limit'].force_encoding("UTF-8") )
|
226
|
+
_method = URI.decode( req.params['method'].force_encoding("UTF-8") )
|
227
|
+
_orRedis = if :redis == SekkaServer::Config.dictType then "or Redis-server" else "" end
|
228
|
+
@mutex.synchronize {
|
229
|
+
begin
|
230
|
+
if SekkaServer::Config.maxQueryLength < _yomi.size
|
231
|
+
result = sprintf( "sekka-server: query string is too long (over %d character length)", SekkaServer::Config.maxQueryLength )
|
232
|
+
else
|
233
|
+
if isJson(format)
|
234
|
+
obj = @core.sekkaHenkan( userid, @kvs, @cachesv, _yomi, _limit.to_i, _method, false )
|
235
|
+
@core.constructJsonString(obj)
|
236
|
+
else
|
237
|
+
obj = @core.sekkaHenkan( userid, @kvs, @cachesv, _yomi, _limit.to_i, _method, true )
|
238
|
+
@core.writeToString(obj)
|
239
|
+
end
|
240
|
+
end
|
241
|
+
rescue MemCache::MemCacheError
|
242
|
+
result = "sekka-server: memcached server is down (or may be offline)"
|
243
|
+
rescue Timeout
|
244
|
+
result = "sekka-server: Timeout to request memcached server #{_orRedis} (or may be offline)"
|
245
|
+
rescue SocketError
|
246
|
+
result = "sekka-server: SocketError to request memcached server #{_orRedis} (or may be offline)"
|
247
|
+
rescue Errno::ECONNREFUSED
|
248
|
+
result = "sekka-server: ConnectionRefused to request memcached server #{_orRedis} (or may be offline)"
|
249
|
+
end
|
250
|
+
}
|
251
|
+
when "/kakutei"
|
252
|
+
_key = URI.decode( req.params[ 'key'].force_encoding("UTF-8") )
|
253
|
+
_tango = URI.decode( req.params[ 'tango'].force_encoding("UTF-8") )
|
254
|
+
@queue.push( 'k ' + userid + " " + _key + " " + _tango )
|
255
|
+
if isJson(format)
|
256
|
+
sprintf("{}")
|
257
|
+
end
|
258
|
+
when "/register"
|
259
|
+
dict = URI.decode( req.params['dict'].force_encoding( "UTF-8" ) ).split( "\n" )
|
260
|
+
dict.each { |x|
|
261
|
+
@queue.push( 'r ' + userid + " " + x )
|
262
|
+
}
|
263
|
+
sprintf( "sekka-server:register request (%s) words added, current-queue-size (%s)", dict.size, @queue.size )
|
264
|
+
when "/flush"
|
265
|
+
@queue.push( 'f ' + userid )
|
266
|
+
sprintf( "sekka-server:flush request successful." )
|
267
|
+
when "/googleime"
|
268
|
+
_yomi = URI.decode( req.params[ 'yomi'].force_encoding("UTF-8") )
|
269
|
+
printf( "info : google-ime request [%s]\n", _yomi )
|
270
|
+
result = "sekka-server: google-ime error"
|
271
|
+
begin
|
272
|
+
result = @core.googleIme( _yomi,
|
273
|
+
SekkaServer::Config.proxyHost,
|
274
|
+
SekkaServer::Config.proxyPort )
|
275
|
+
rescue Timeout
|
276
|
+
result = "sekka-server: Timeout to request google-ime (may be offline)"
|
277
|
+
rescue SocketError
|
278
|
+
result = "sekka-server: SocketError to request google-ime (may be offline)"
|
279
|
+
rescue Errno::ECONNREFUSED
|
280
|
+
result = "sekka-server: ConnectionRefused to request google-ime (or may be offline)"
|
281
|
+
end
|
282
|
+
@core.writeToString( result )
|
283
|
+
else
|
284
|
+
sprintf( "sekka-server:unknown path name. [%s]", req.path )
|
285
|
+
end
|
280
286
|
end
|
281
287
|
end
|
282
288
|
end
|
data/test/henkan-main.nnd
CHANGED
@@ -1154,87 +1154,96 @@
|
|
1154
1154
|
|
1155
1155
|
(test* "henkan toplevel(for Elisp) 1"
|
1156
1156
|
'(("*" nil "*" j 0) ("※" nil "*" j 1) ("×" nil "*" j 2) ("*" nil "*" z 3) ("*" nil "*" l 4))
|
1157
|
-
(sekkaHenkan userid kvs #f "*" 0 "normal"))
|
1157
|
+
(sekkaHenkan userid kvs #f "*" 0 "normal" #t))
|
1158
1158
|
|
1159
1159
|
(test* "henkan toplevel(for Elisp) 2"
|
1160
1160
|
'(("しぜんげんごりか" nil "shizengengorika" h 0) ("シゼンゲンゴリカ" nil "shizengengorika" k 1) ("しぜにぇにょりか" nil "shizengengorika" h 2) ("シゼニェニョリカ" nil "shizengengorika" k 3) ("shizengengorika" nil "shizengengorika" z 4) ("shizengengorika" nil "shizengengorika" l 5) ("自然言語理解" nil "しぜんげんごりかい" j 6) ("自然言語" nil "しぜんげんご" j 7) ("自然言語処理" nil "しぜんげんごしょり" j 8))
|
1161
|
-
(sekkaHenkan userid kvs #f "shizengengorika" 0 "normal"))
|
1161
|
+
(sekkaHenkan userid kvs #f "shizengengorika" 0 "normal" #t))
|
1162
1162
|
|
1163
1163
|
(test* "henkan toplevel(for Elisp) 3"
|
1164
1164
|
'(("自然言語理解" nil "しぜんげんごりかい" j 0) ("自然言語" nil "しぜんげんご" j 1) ("自然言語処理" nil "しぜんげんごしょり" j 2) ("しぜんげんごりか" nil "shizengengorika" h 3) ("シゼンゲンゴリカ" nil "shizengengorika" k 4) ("しぜにぇにょりか" nil "shizengengorika" h 5) ("シゼニェニョリカ" nil "shizengengorika" k 6) ("Shizengengorika" nil "Shizengengorika" z 7) ("Shizengengorika" nil "Shizengengorika" l 8))
|
1165
|
-
(sekkaHenkan userid kvs #f "Shizengengorika" 0 "normal"))
|
1165
|
+
(sekkaHenkan userid kvs #f "Shizengengorika" 0 "normal" #t))
|
1166
1166
|
|
1167
1167
|
(test* "henkan toplevel(for Elisp) 4"
|
1168
1168
|
'(("変化する" nil "へんかs" j 0) ("へんかする" nil "henkasuru" h 1) ("ヘンカスル" nil "henkasuru" k 2) ("へにんあする" nil "henkasuru" h 3) ("ヘニンアスル" nil "henkasuru" k 4) ("henkaSuru" nil "henkaSuru" z 5) ("henkaSuru" nil "henkaSuru" l 6))
|
1169
|
-
(sekkaHenkan userid kvs #f "henkaSuru" 0 "normal"))
|
1169
|
+
(sekkaHenkan userid kvs #f "henkaSuru" 0 "normal" #t))
|
1170
1170
|
|
1171
1171
|
(test* "henkan toplevel(for Elisp) 5"
|
1172
1172
|
'(("変換" nil "へんかん" j 0) ("返還" nil "へんかん" j 1) ("変化" nil "へんか" j 2) ("返歌" nil "へんか" j 3) ("へんかん" nil "henkan" h 4) ("ヘンカン" nil "henkan" k 5) ("へにんあん" nil "henkan" h 6) ("ヘニンアン" nil "henkan" k 7) ("Henkan" nil "Henkan" z 8) ("Henkan" nil "Henkan" l 9))
|
1173
|
-
(sekkaHenkan userid kvs #f "Henkan" 0 "normal"))
|
1173
|
+
(sekkaHenkan userid kvs #f "Henkan" 0 "normal" #t))
|
1174
1174
|
|
1175
1175
|
(test* "henkan toplevel(for Elisp) 6"
|
1176
1176
|
'(("マジパネェ" nil "まじぱねぇ" j 0) ("まじパネェ" nil "まじぱねぇ" j 1) ("マジ半端ネェ" nil "まじぱねぇ" j 2) ("まじ半端ネェ" nil "まじぱねぇ" j 3) ("まじぱねえ" nil "majipanee" h 4) ("マジパネエ" nil "majipanee" k 5) ("Majipanee" nil "Majipanee" z 6) ("Majipanee" nil "Majipanee" l 7))
|
1177
|
-
(sekkaHenkan userid kvs #f "Majipanee" 0 "normal"))
|
1177
|
+
(sekkaHenkan userid kvs #f "Majipanee" 0 "normal" #t))
|
1178
1178
|
|
1179
1179
|
(test* "henkan toplevel(for Elisp) 7"
|
1180
1180
|
'(("変換エンジン" nil "へんかんえんじん" j 0) ("変換" nil "へんかん" j 1) ("返還" nil "へんかん" j 2) ("へんかねんじ" nil "henkanenji" h 3) ("ヘンカネンジ" nil "henkanenji" k 4) ("へにんあねぬんい" nil "henkanenji" h 5) ("ヘニンアネヌンイ" nil "henkanenji" k 6) ("Henkanenji" nil "Henkanenji" z 7) ("Henkanenji" nil "Henkanenji" l 8))
|
1181
|
-
(sekkaHenkan userid kvs #f "Henkanenji" 0 "normal"))
|
1181
|
+
(sekkaHenkan userid kvs #f "Henkanenji" 0 "normal" #t))
|
1182
1182
|
|
1183
1183
|
(test* "henkan toplevel(for Elisp) 8"
|
1184
1184
|
'(("ブログった" nil "ぶろぐt" j 0) ("ブログった" nil "ぶろぐ+" j 1) ("ブログった" nil "ぶろぐr" j 2) ("ブログった" nil "ぶろぐ`" j 3) ("ぶろぐった" nil "burogutta" h 4) ("ブログッタ" nil "burogutta" k 5) ("buroguTta" nil "buroguTta" z 6) ("buroguTta" nil "buroguTta" l 7))
|
1185
|
-
(sekkaHenkan userid kvs #f "buroguTta" 0 "normal"))
|
1185
|
+
(sekkaHenkan userid kvs #f "buroguTta" 0 "normal" #t))
|
1186
1186
|
|
1187
1187
|
(test* "henkan toplevel(for Elisp) 9"
|
1188
1188
|
'(("ブログりました" nil "ぶろぐr" j 0) ("ブログりました" nil "ぶろぐ+" j 1) ("ブログりました" nil "ぶろぐt" j 2) ("ブログりました" nil "ぶろぐ`" j 3) ("ぶろぐりました" nil "burogurimashita" h 4) ("ブログリマシタ" nil "burogurimashita" k 5) ("buroguRimashita" nil "buroguRimashita" z 6) ("buroguRimashita" nil "buroguRimashita" l 7))
|
1189
|
-
(sekkaHenkan userid kvs #f "buroguRimashita" 0 "normal"))
|
1189
|
+
(sekkaHenkan userid kvs #f "buroguRimashita" 0 "normal" #t))
|
1190
1190
|
|
1191
1191
|
(test* "henkan toplevel(for Elisp) 10"
|
1192
1192
|
'(("はてブ" nil "はてぶ" j 0) ("はてなブックマーク" nil "はてぶ" j 1) ("はてぶ" nil "hatebu" h 2) ("ハテブ" nil "hatebu" k 3) ("Hatebu" nil "Hatebu" z 4) ("Hatebu" nil "Hatebu" l 5))
|
1193
|
-
(sekkaHenkan userid kvs #f "Hatebu" 0 "normal"))
|
1193
|
+
(sekkaHenkan userid kvs #f "Hatebu" 0 "normal" #t))
|
1194
1194
|
|
1195
1195
|
(test* "henkan toplevel(for Elisp) 11"
|
1196
1196
|
'(("かに" nil "kani" h 0) ("カニ" nil "kani" k 1) ("kani" nil "kani" z 2) ("kani" nil "kani" l 3) ("蟹" nil "かに" j 4) ("可児" nil "かに" j 5) ("蠏" nil "かに" j 6) ("簡易" nil "かんい" j 7) ("官位" nil "かんい" j 8) ("冠位" "-十二階" "かんい" j 9) ("漢医" "漢方医" "かんい" j 10) ("敢為" nil "かんい" j 11) ("官医" nil "かんい" j 12) ("寛衣" nil "かんい" j 13) ("換位" nil "かんい" j 14) ("簡意" nil "かんい" j 15))
|
1197
|
-
(sekkaHenkan userid kvs #f "kani" 0 "normal"))
|
1197
|
+
(sekkaHenkan userid kvs #f "kani" 0 "normal" #t))
|
1198
1198
|
|
1199
1199
|
(test* "henkan toplevel(for Elisp) 12"
|
1200
1200
|
'(("かんい" nil "kanni" h 0) ("カンイ" nil "kanni" k 1) ("kanni" nil "kanni" z 2) ("kanni" nil "kanni" l 3) ("簡易" nil "かんい" j 4) ("官位" nil "かんい" j 5) ("冠位" "-十二階" "かんい" j 6) ("漢医" "漢方医" "かんい" j 7) ("敢為" nil "かんい" j 8) ("官医" nil "かんい" j 9) ("寛衣" nil "かんい" j 10) ("換位" nil "かんい" j 11) ("簡意" nil "かんい" j 12) ("蟹" nil "かに" j 13) ("可児" nil "かに" j 14) ("蠏" nil "かに" j 15))
|
1201
|
-
(sekkaHenkan userid kvs #f "kanni" 0 "normal"))
|
1201
|
+
(sekkaHenkan userid kvs #f "kanni" 0 "normal" #t))
|
1202
1202
|
|
1203
1203
|
(test* "henkan toplevel(for Elisp) 13"
|
1204
1204
|
'(("確固" nil "かっこ" j 0) ("括弧" nil "かっこ" j 1) ("かっこ" nil "ka@ko" h 2) ("カッコ" nil "ka@ko" k 3) ("Ka@ko" nil "Ka@ko" z 4) ("Ka@ko" nil "Ka@ko" l 5))
|
1205
|
-
(sekkaHenkan userid kvs #f "Ka@ko" 2 "normal"))
|
1205
|
+
(sekkaHenkan userid kvs #f "Ka@ko" 2 "normal" #t))
|
1206
1206
|
|
1207
1207
|
(test* "henkan toplevel(for Elisp) 14"
|
1208
1208
|
'(("かっこ" nil "ka@ko" h 0) ("カッコ" nil "ka@ko" k 1) ("ka@ko" nil "ka@ko" z 2) ("ka@ko" nil "ka@ko" l 3) ("確固" nil "かっこ" j 4) ("括弧" nil "かっこ" j 5))
|
1209
|
-
(sekkaHenkan userid kvs #f "ka@ko" 2 "normal"))
|
1209
|
+
(sekkaHenkan userid kvs #f "ka@ko" 2 "normal" #t))
|
1210
1210
|
|
1211
1211
|
(test* "henkan toplevel(for Elisp) 15"
|
1212
1212
|
'(("確固" nil "かっこ" j 0) ("括弧" nil "かっこ" j 1) ("かっこ" nil "ka;ko" h 2) ("カッコ" nil "ka;ko" k 3) ("Ka;ko" nil "Ka;ko" z 4) ("Ka;ko" nil "Ka;ko" l 5))
|
1213
|
-
(sekkaHenkan userid kvs #f "Ka;ko" 2 "normal"))
|
1213
|
+
(sekkaHenkan userid kvs #f "Ka;ko" 2 "normal" #t))
|
1214
1214
|
|
1215
1215
|
(test* "henkan toplevel(for Elisp) 16"
|
1216
1216
|
'(("かっこ" nil "ka;ko" h 0) ("カッコ" nil "ka;ko" k 1) ("ka;ko" nil "ka;ko" z 2) ("ka;ko" nil "ka;ko" l 3) ("確固" nil "かっこ" j 4) ("括弧" nil "かっこ" j 5))
|
1217
|
-
(sekkaHenkan userid kvs #f "ka;ko" 2 "normal"))
|
1217
|
+
(sekkaHenkan userid kvs #f "ka;ko" 2 "normal" #t))
|
1218
1218
|
|
1219
1219
|
(test* "henkan toplevel(for Elisp) 17"
|
1220
1220
|
'(("ユーザー辞書" nil "ゆーざーじしょ" j 0) ("ゆーざーじしょ" nil "yu-za-jisyo" h 1) ("ユーザージショ" nil "yu-za-jisyo" k 2) ("Yu-za-jisyo" nil "Yu-za-jisyo" z 3) ("Yu-za-jisyo" nil "Yu-za-jisyo" l 4))
|
1221
|
-
(sekkaHenkan userid kvs #f "Yu-za-jisyo" 2 "normal"))
|
1221
|
+
(sekkaHenkan userid kvs #f "Yu-za-jisyo" 2 "normal" #t))
|
1222
1222
|
|
1223
1223
|
(test* "henkan toplevel(for Elisp) 18"
|
1224
1224
|
'(("2月28日" nil "#がつ#にち" n 0) ("2月28日" nil "#がつ#にち" n 1) ("二月二八日" nil "#がつ#にち" n 2) ("二月28日" nil "#がつ#にち" n 3) ("2gatu28nichi" nil "2gatu28nichi" z 4) ("2gatu28nichi" nil "2gatu28nichi" l 5))
|
1225
|
-
(sekkaHenkan userid kvs #f "2gatu28nichi" 0 "normal"))
|
1225
|
+
(sekkaHenkan userid kvs #f "2gatu28nichi" 0 "normal" #t))
|
1226
1226
|
|
1227
1227
|
(test* "henkan toplevel(for Elisp) 19"
|
1228
1228
|
'(("100" nil "100" n 0) ("100" nil "100" n 1) ("一〇〇" nil "100" n 2) ("百" nil "100" n 3))
|
1229
|
-
(sekkaHenkan userid kvs #f "100" 0 "normal"))
|
1229
|
+
(sekkaHenkan userid kvs #f "100" 0 "normal" #t))
|
1230
1230
|
|
1231
1231
|
(test* "henkan toplevel(for Elisp) 20"
|
1232
1232
|
'(("1000020003" nil "1000020003" n 0) ("1000020003" nil "1000020003" n 1) ("一〇〇〇〇二〇〇〇三" nil "1000020003" n 2) ("十億二万三" nil "1000020003" n 3))
|
1233
|
-
(sekkaHenkan userid kvs #f "1000020003" 0 "normal"))
|
1233
|
+
(sekkaHenkan userid kvs #f "1000020003" 0 "normal" #t))
|
1234
1234
|
(test* "henkan toplevel(for Elisp) 21"
|
1235
1235
|
'(("3チーム" nil "#ちーむ" n 0) ("3chi-mu" nil "3chi-mu" z 1) ("3chi-mu" nil "3chi-mu" l 2))
|
1236
|
-
(sekkaHenkan userid kvs #f "3chi-mu" 0 "normal"))
|
1236
|
+
(sekkaHenkan userid kvs #f "3chi-mu" 0 "normal" #t))
|
1237
1237
|
|
1238
|
+
(sekkaHenkan userid kvs #f "*" 0 "normal" #f)
|
1239
|
+
|
1240
|
+
(test* "henkan toplevel(for JSON) 1"
|
1241
|
+
'#(#("*" #f "*" j 0) #("※" #f "*" j 1) #("×" #f "*" j 2) #("*" #f "*" z 3) #("*" #f "*" l 4))
|
1242
|
+
(sekkaHenkan userid kvs #f "*" 0 "normal" #f))
|
1243
|
+
|
1244
|
+
(test* "henkan toplevel(for JSON) 2"
|
1245
|
+
'#(#("しぜんげんごりか" #f "shizengengorika" h 0) #("シゼンゲンゴリカ" #f "shizengengorika" k 1) #("しぜにぇにょりか" #f "shizengengorika" h 2) #("シゼニェニョリカ" #f "shizengengorika" k 3) #("shizengengorika" #f "shizengengorika" z 4) #("shizengengorika" #f "shizengengorika" l 5) #("自然言語理解" #f "しぜんげんごりかい" j 6) #("自然言語" #f "しぜんげんご" j 7) #("自然言語処理" #f "しぜんげんごしょり" j 8))
|
1246
|
+
(sekkaHenkan userid kvs #f "shizengengorika" 0 "normal" #f))
|
1238
1247
|
|
1239
1248
|
|
1240
1249
|
;;-------------------------------------------------------------------
|
@@ -1243,7 +1252,7 @@
|
|
1243
1252
|
'(("返還" nil "へんかん" j 0) ("変換" nil "へんかん" j 1) ("変化" nil "へんか" j 2) ("返歌" nil "へんか" j 3) ("へんかん" nil "henkan" h 4) ("ヘンカン" nil "henkan" k 5) ("へにんあん" nil "henkan" h 6) ("ヘニンアン" nil "henkan" k 7) ("Henkan" nil "Henkan" z 8) ("Henkan" nil "Henkan" l 9))
|
1244
1253
|
(begin
|
1245
1254
|
(sekkaKakutei userid kvs #f "へんかん" "返還")
|
1246
|
-
(sekkaHenkan userid kvs #f "Henkan" 0 "normal")))
|
1255
|
+
(sekkaHenkan userid kvs #f "Henkan" 0 "normal" #t)))
|
1247
1256
|
|
1248
1257
|
(test* "DB check after henkan kakutei 1"
|
1249
1258
|
"/返還/変換"
|
@@ -1253,7 +1262,7 @@
|
|
1253
1262
|
'(("変換" nil "へんかん" j 0) ("返還" nil "へんかん" j 1) ("変化" nil "へんか" j 2) ("返歌" nil "へんか" j 3) ("へんかん" nil "henkan" h 4) ("ヘンカン" nil "henkan" k 5) ("へにんあん" nil "henkan" h 6) ("ヘニンアン" nil "henkan" k 7) ("Henkan" nil "Henkan" z 8) ("Henkan" nil "Henkan" l 9))
|
1254
1263
|
(begin
|
1255
1264
|
(sekkaKakutei userid kvs #f "へんかん" "変換")
|
1256
|
-
(sekkaHenkan userid kvs #f "Henkan" 0 "normal")))
|
1265
|
+
(sekkaHenkan userid kvs #f "Henkan" 0 "normal" #t)))
|
1257
1266
|
|
1258
1267
|
(test* "DB check after henkan kakutei 2"
|
1259
1268
|
"/変換/返還"
|
@@ -1263,13 +1272,13 @@
|
|
1263
1272
|
'(("デベロッパ" nil "developer" j 0) ("デベロッパー" nil "developer" j 1) ("ディベロッパー" nil "developer" j 2) ("developer" nil "developer" z 3) ("developer" nil "developer" l 4))
|
1264
1273
|
(begin
|
1265
1274
|
(sekkaKakutei userid kvs #f "developer" "デベロッパ")
|
1266
|
-
(sekkaHenkan userid kvs #f "developer" 0 "normal")))
|
1275
|
+
(sekkaHenkan userid kvs #f "developer" 0 "normal" #t)))
|
1267
1276
|
|
1268
1277
|
(test* "henkan kakutei(for Elisp) 4"
|
1269
1278
|
'(("。" nil "." j 0) ("." nil "." j 1) ("・" nil "." j 2) ("…" "..." "." j 3) ("." nil "." z 4) ("." nil "." l 5))
|
1270
1279
|
(begin
|
1271
1280
|
(sekkaKakutei userid kvs #f "." "。")
|
1272
|
-
(sekkaHenkan userid kvs #f "." 0 "normal")))
|
1281
|
+
(sekkaHenkan userid kvs #f "." 0 "normal" #t)))
|
1273
1282
|
|
1274
1283
|
(test* "henkan kakutei(for Elisp) 5"
|
1275
1284
|
nil
|
@@ -1287,24 +1296,24 @@
|
|
1287
1296
|
'(("はてなブックマーク" nil "はてぶ" j 0) ("はてブ" nil "はてぶ" j 1) ("はてぶ" nil "hatebu" h 2) ("ハテブ" nil "hatebu" k 3) ("Hatebu" nil "Hatebu" z 4) ("Hatebu" nil "Hatebu" l 5))
|
1288
1297
|
(begin
|
1289
1298
|
(sekkaKakutei userid kvs #f "はてぶ" "はてなブックマーク")
|
1290
|
-
(sekkaHenkan userid kvs #f "Hatebu" 0 "normal")))
|
1299
|
+
(sekkaHenkan userid kvs #f "Hatebu" 0 "normal" #t)))
|
1291
1300
|
|
1292
1301
|
|
1293
1302
|
(test* "henkan kakutei(for Elisp) 9"
|
1294
1303
|
'(("." nil "." j 0) ("・" nil "." j 1) ("。" nil "." j 2) ("…" "..." "." j 3) ("." nil "." z 4) ("." nil "." l 5))
|
1295
1304
|
(begin
|
1296
|
-
(sekkaHenkan userid2 kvs #f "." 0 "normal")))
|
1305
|
+
(sekkaHenkan userid2 kvs #f "." 0 "normal" #t))) ;; userid2
|
1297
1306
|
|
1298
1307
|
(test* "henkan kakutei(for Elisp) 10"
|
1299
1308
|
'(("。" nil "." j 0) ("." nil "." j 1) ("・" nil "." j 2) ("…" "..." "." j 3) ("." nil "." z 4) ("." nil "." l 5))
|
1300
1309
|
(begin
|
1301
1310
|
(sekkaKakutei userid2 kvs #f "." "。") ;; userid2
|
1302
|
-
(sekkaHenkan userid2 kvs #f "." 0 "normal")))
|
1311
|
+
(sekkaHenkan userid2 kvs #f "." 0 "normal" #t))) ;; userid2
|
1303
1312
|
|
1304
1313
|
(test* "henkan kakutei(for Elisp) 11"
|
1305
1314
|
'(("。" nil "." j 0) ("." nil "." j 1) ("・" nil "." j 2) ("…" "..." "." j 3) ("." nil "." z 4) ("." nil "." l 5))
|
1306
1315
|
(begin
|
1307
|
-
(sekkaHenkan userid2 kvs #f "." 0 "normal")))
|
1316
|
+
(sekkaHenkan userid2 kvs #f "." 0 "normal" #t))) ;; userid2
|
1308
1317
|
|
1309
1318
|
(test* "henkan kakutei(for Elisp) 12"
|
1310
1319
|
nil
|
@@ -1315,30 +1324,30 @@
|
|
1315
1324
|
'(("観" "(字義:みわたす)" "みr" j 0) ("見" nil "みr" j 1) ("視" "(字義:じっとみる)" "みr" j 2) ("診" "(diagnose) 患者を診る" "みr" j 3) ("看" "(nurse) 病母を看る" "みr" j 4) ("觀" "「観」の旧字" "みr" j 5) ("miR" nil "miR" z 6) ("miR" nil "miR" l 7))
|
1316
1325
|
(begin
|
1317
1326
|
(sekkaKakutei userid kvs #f "みr" "観")
|
1318
|
-
(sekkaHenkan userid kvs #f "miR" 0 "normal")))
|
1327
|
+
(sekkaHenkan userid kvs #f "miR" 0 "normal" #t)))
|
1319
1328
|
|
1320
1329
|
(test* "henkan kakutei(for Elisp) 14"
|
1321
1330
|
'(("視" "(字義:じっとみる)" "みr" j 0) ("観" "(字義:みわたす)" "みr" j 1) ("見" nil "みr" j 2) ("診" "(diagnose) 患者を診る" "みr" j 3) ("看" "(nurse) 病母を看る" "みr" j 4) ("觀" "「観」の旧字" "みr" j 5) ("miR" nil "miR" z 6) ("miR" nil "miR" l 7))
|
1322
1331
|
(begin
|
1323
1332
|
(sekkaKakutei userid kvs #f "みr" "視")
|
1324
|
-
(sekkaHenkan userid kvs #f "miR" 0 "normal")))
|
1333
|
+
(sekkaHenkan userid kvs #f "miR" 0 "normal" #t)))
|
1325
1334
|
|
1326
1335
|
(test* "henkan kakutei(for Elisp) 15"
|
1327
1336
|
'(("観る" "(字義:みわたす)" "みr" j 0) ("見る" nil "みr" j 1) ("視る" "(字義:じっとみる)" "みr" j 2) ("診る" "(diagnose) 患者を診る" "みr" j 3) ("看る" "(nurse) 病母を看る" "みr" j 4) ("觀る" "「観」の旧字" "みr" j 5) ("みる" nil "miru" h 6) ("ミル" nil "miru" k 7) ("miRu" nil "miRu" z 8) ("miRu" nil "miRu" l 9))
|
1328
1337
|
(begin
|
1329
1338
|
(sekkaKakutei userid2 kvs #f "みr" "観る") ;; userid2
|
1330
|
-
(sekkaHenkan userid2 kvs #f "miRu" 0 "normal")))
|
1339
|
+
(sekkaHenkan userid2 kvs #f "miRu" 0 "normal" #t))) ;; userid2
|
1331
1340
|
|
1332
1341
|
(test* "henkan kakutei(for Elisp) 16"
|
1333
1342
|
'(("かに" nil "kani" h 0) ("カニ" nil "kani" k 1) ("kani" nil "kani" z 2) ("kani" nil "kani" l 3) ("可児" nil "かに" j 4) ("蟹" nil "かに" j 5) ("蠏" nil "かに" j 6) ("簡易" nil "かんい" j 7) ("官位" nil "かんい" j 8) ("冠位" "-十二階" "かんい" j 9) ("漢医" "漢方医" "かんい" j 10) ("敢為" nil "かんい" j 11) ("官医" nil "かんい" j 12) ("寛衣" nil "かんい" j 13) ("換位" nil "かんい" j 14) ("簡意" nil "かんい" j 15))
|
1334
1343
|
(begin
|
1335
1344
|
(sekkaKakutei userid kvs #f "かに" "可児")
|
1336
|
-
(sekkaHenkan userid kvs #f "kani" 0 "normal")))
|
1345
|
+
(sekkaHenkan userid kvs #f "kani" 0 "normal" #t)))
|
1337
1346
|
(test* "henkan kakutei(for Elisp) 17"
|
1338
1347
|
'(("かんい" nil "kanni" h 0) ("カンイ" nil "kanni" k 1) ("kanni" nil "kanni" z 2) ("kanni" nil "kanni" l 3) ("官位" nil "かんい" j 4) ("簡易" nil "かんい" j 5) ("冠位" "-十二階" "かんい" j 6) ("漢医" "漢方医" "かんい" j 7) ("敢為" nil "かんい" j 8) ("官医" nil "かんい" j 9) ("寛衣" nil "かんい" j 10) ("換位" nil "かんい" j 11) ("簡意" nil "かんい" j 12) ("可児" nil "かに" j 13) ("蟹" nil "かに" j 14) ("蠏" nil "かに" j 15))
|
1339
1348
|
(begin
|
1340
1349
|
(sekkaKakutei userid kvs #f "かんい" "官位")
|
1341
|
-
(sekkaHenkan userid kvs #f "kanni" 0 "normal")))
|
1350
|
+
(sekkaHenkan userid kvs #f "kanni" 0 "normal" #t)))
|
1342
1351
|
|
1343
1352
|
;;===================================================================
|
1344
1353
|
|
data/test/jisyo.nnd
CHANGED
@@ -109,5 +109,11 @@
|
|
109
109
|
'("shiroI Cしろi" "siroI Cしろi" "xiroI Cしろi" "しろi /白" "ai Cあい" "あい /愛/哀/相/挨" "Greek /Α/Β/Γ/Δ/Ε/Ζ/Η/Θ/Ι/Κ/Λ/Μ/Ν/Ξ/Ο/Π/Ρ/Σ/Τ/Υ/Φ/Χ/Ψ/Ω" ">an C>あん" ">ann C>あん" ">aq C>あん" ">あん /案" ">yasuI C>やすi" ">やすi /易" "! /!/感嘆符" "? /?" "ko'hi' Cこーひー" "ko'hi- Cこーひー" "ko'hi: Cこーひー" "ko'hi^ Cこーひー" "ko-hi' Cこーひー" "ko-hi- Cこーひー" "ko-hi: Cこーひー" "ko-hi^ Cこーひー" "ko:hi' Cこーひー" "ko:hi- Cこーひー" "ko:hi: Cこーひー" "ko:hi^ Cこーひー" "ko^hi' Cこーひー" "ko^hi- Cこーひー" "ko^hi: Cこーひー" "ko^hi^ Cこーひー" "こーひー /コーヒー" "=shimashita しました" "=shimasita しました" "=shimast しました" "=simashita しました" "=simasita しました" "=simast しました" "=ximast しました" "=shiteimasu しています" "=shitwms しています" "=siteimasu しています" "=sitwms しています" "=xitwms しています")
|
110
110
|
(convert-skk-jisyo-f _input)))
|
111
111
|
|
112
|
+
;;(with-open "./data/1000.tsv"
|
113
|
+
;; (lambda (_input)
|
114
|
+
;; (test* "restore"
|
115
|
+
;; '("")
|
116
|
+
;; (restore-sekka-jisyo-f _input "out.ldb"))))
|
117
|
+
|
112
118
|
;;===================================================================
|
113
119
|
(test-end)
|
data/test/memcache.nnd
CHANGED
@@ -47,12 +47,6 @@
|
|
47
47
|
;;-------------------------------------------------------------------
|
48
48
|
(test-section "memcached access")
|
49
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
50
|
(test* "db connect OK"
|
57
51
|
"one"
|
58
52
|
(begin
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sekka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kiyoka Nishiyama
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-06-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: eventmachine
|
@@ -252,7 +252,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
252
252
|
version: '0'
|
253
253
|
requirements: []
|
254
254
|
rubyforge_project:
|
255
|
-
rubygems_version: 2.6.
|
255
|
+
rubygems_version: 2.6.11
|
256
256
|
signing_key:
|
257
257
|
specification_version: 4
|
258
258
|
summary: Sekka is a SKK like input method.
|