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 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.