sekka 1.6.6 → 1.7.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 622a15c6b5630995ddafce667cbcbbe1dacd4111
4
- data.tar.gz: fcb2eea0fe4637ecdde0fe712dcd3ecf240e1404
3
+ metadata.gz: f14974e9acd87ad10f08d88a02162ef21a8c7fff
4
+ data.tar.gz: c9d7db3ca95a63b316d8089c947ab23424cde502
5
5
  SHA512:
6
- metadata.gz: 5ad30407caa0d223a4ace33eeb68225f0d9c97ac6c2dca848dfa71c825bf26d0e02135dcd3fb8bd4e2144b21f127fcd84309214e0a8dc9af8425ad41c31f92ce
7
- data.tar.gz: ebe4c31be852255ee475969a218fdb90cf2f21aba4037bea298c0cd65d105341b237f913e7bdb2e81d0f742f476fa69869c82f1c7bfe1cc78a5c2b6996398180
6
+ metadata.gz: 97f809c4c8f84c6a5123a7b71ac6f0698c46d4104b1661eb1428ea557cf9c650f47f324d7b2e2c9dfe16e1e30ad3d4b531fc6dcd1595ac5ee34535b392b6b84e
7
+ data.tar.gz: 68af3d5572e414b082afb7ec85f2024912387a2df90b43de0f68c098854e1698f6def4c01190141e77099a121e749ea74ba54d246b9c5c23c8f9bd2347c8e91d
data/.gitignore CHANGED
@@ -4,6 +4,7 @@
4
4
  /Gemfile.lock
5
5
  /Gemfile~
6
6
  /README~
7
+ /jisyo.N.ldb
7
8
  /path1.tmp
8
9
  /pkg
9
10
  /rackup.log
data/.travis.yml CHANGED
@@ -13,6 +13,3 @@ env:
13
13
 
14
14
  gemfile:
15
15
  - gemfiles/Gemfile
16
-
17
- services:
18
- - memcache
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
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 1
3
- :minor: 6
4
- :patch: 6
3
+ :minor: 7
4
+ :patch: 0
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.6 ;;SEKKA-VERSION
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.6.6" ;;SEKKA-VERSION
1759
+ "1.7.0" ;;SEKKA-VERSION
1760
1760
  )
1761
1761
  (defun sekka-version (&optional arg)
1762
1762
  "入力モード変更"
data/gemfiles/Gemfile CHANGED
@@ -3,7 +3,7 @@ gem "eventmachine"
3
3
  gem "jeweler2"
4
4
  gem "rspec"
5
5
  gem "distributed-trie"
6
- gem "memcache-client"
6
+ gem "memcachepod"
7
7
  gem "nendo"
8
8
  gem "json"
9
9
  gem "rake"
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
- (let1 henkan-result (map
399
- (lambda (x)
400
- (map (lambda (val) (if val val nil)) x))
401
- (sekka-henkan userid kvs keyword limit (make-keyword roman-method)))
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 'memcache'
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 = MemCache.new( name,
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 = @db[ key ]
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
@@ -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
- (append-map
715
- (lambda (x)
716
- (let ((hira (car x))
717
- (romans (cdr x)))
718
- (map (lambda (r) (list r hira)) romans)))
719
- alist))
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
@@ -1,4 +1,4 @@
1
1
  class SekkaVersion
2
- def self.version() "1.6.6" end
2
+ def self.version() "1.7.0" end
3
3
  def self.dictVersion() "1.6.2" end
4
4
  end
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: failt to access memcached.\n"
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 RuntimeError
134
- STDERR.puts "Info: missing [register(" + dictline + ")] batch command..."
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 RuntimeError
151
- STDERR.puts "Info: missing [kakutei(" + _tango + ")] batch command..."
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 RuntimeError
160
- STDERR.puts "Info: missing [flush] batch command..."
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
- p $! # => "unhandled exception"
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
- body = if !req.params.has_key?('userid')
180
- str = "Err: POST parameter 'userid' required"
181
- STDERR.puts str
182
- @core.writeToString( str )
183
- elsif !req.params.has_key?('format')
184
- str = "Err: POST parameter 'format' required"
185
- STDERR.puts str
186
- @core.writeToString( str )
187
- else
188
- case req.request_method
189
- when 'POST'
190
- revertMemcache()
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
- "no message."
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 revertMemcache()
266
- now = DateTime.now
267
- ## STDERR.printf( "Sekka Debug: [%d]/[%d]\n", @downTime.to_time.to_i, now.to_time.to_i )
268
- if not @cachesv
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 disableMemcache()
277
- @cachesv = false
278
- @downTime = DateTime.now
279
- STDERR.printf( "Sekka Warning: disabled using memcache server. [%s]\n", @downTime )
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"))) ;; userid2
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"))) ;; userid2
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"))) ;; userid2
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"))) ;; userid2
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.6.6
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-03-14 00:00:00.000000000 Z
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.8
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.