sekka 0.8.1 → 0.8.2
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.
- data/bin/sekka-benchmark +135 -0
- data/emacs/sekka.el +52 -53
- data/lib/sekka/kvs.rb +1 -0
- data/lib/sekka/sekkaversion.rb +1 -1
- data/lib/sekkaserver.rb +14 -6
- data/test/approximate-bench.nnd +1 -1
- data/test/azik-verification.nnd +1 -1
- data/test/henkan-main.nnd +1 -1
- metadata +5 -15
data/bin/sekka-benchmark
ADDED
@@ -0,0 +1,135 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# -*- mode: nendo; syntax: scheme ; coding: utf-8 -*-
|
3
|
+
require 'nendo'
|
4
|
+
$LOAD_PATH.push( File.dirname(__FILE__) + "/../lib" )
|
5
|
+
core = Nendo::Core.new()
|
6
|
+
core.setArgv( ARGV )
|
7
|
+
core.loadInitFile
|
8
|
+
core.evalStr( <<";;END-OF-SCRIPT" )
|
9
|
+
;;;
|
10
|
+
;;; sekka-benchmark - sekka-serverのベンチマークプログラム
|
11
|
+
;;;
|
12
|
+
;;; Copyright (c) 2010 Kiyoka Nishiyama <kiyoka@sumibi.org>
|
13
|
+
;;;
|
14
|
+
;;; Redistribution and use in source and binary forms, with or without
|
15
|
+
;;; modification, are permitted provided that the following conditions
|
16
|
+
;;; are met:
|
17
|
+
;;;
|
18
|
+
;;; 1. Redistributions of source code must retain the above copyright
|
19
|
+
;;; notice, this list of conditions and the following disclaimer.
|
20
|
+
;;;
|
21
|
+
;;; 2. Redistributions in binary form must reproduce the above copyright
|
22
|
+
;;; notice, this list of conditions and the following disclaimer in the
|
23
|
+
;;; documentation and/or other materials provided with the distribution.
|
24
|
+
;;;
|
25
|
+
;;; 3. Neither the name of the authors nor the names of its contributors
|
26
|
+
;;; may be used to endorse or promote products derived from this
|
27
|
+
;;; software without specific prior written permission.
|
28
|
+
;;;
|
29
|
+
;;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
30
|
+
;;; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
31
|
+
;;; LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
32
|
+
;;; A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
33
|
+
;;; OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
34
|
+
;;; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
35
|
+
;;; TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
36
|
+
;;; PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
37
|
+
;;; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
38
|
+
;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
39
|
+
;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
40
|
+
;;;
|
41
|
+
;;; $Id:
|
42
|
+
;;;
|
43
|
+
(require "benchmark")
|
44
|
+
(define (bench-block title block)
|
45
|
+
(print "----------------------------------------")
|
46
|
+
(printf "[%s]\n" title )
|
47
|
+
(.puts Benchmark::CAPTION)
|
48
|
+
(.puts (Benchmark.measure
|
49
|
+
(&block ()
|
50
|
+
(block)))))
|
51
|
+
|
52
|
+
|
53
|
+
(define (gen-curl-command-string keyword limit)
|
54
|
+
(let ((host "localhost"))
|
55
|
+
(sprintf "curl --silent --show-error --max-time 60 --insecure --header 'Content-Type: application/x-www-form-urlencoded' http://%s:12929/henkan --data 'format=sexp' --data 'yomi=%s' --data 'limit=%d' --data 'method=normal' --data 'userid=%s' > /dev/null" host keyword limit "benchuser")))
|
56
|
+
|
57
|
+
|
58
|
+
(define (henkan-with-same-keyword limit)
|
59
|
+
(let1 cmd (gen-curl-command-string "Kanji" limit)
|
60
|
+
(bench-block
|
61
|
+
(sprintf "Samekey limit=%d (all request hits memcached)" limit)
|
62
|
+
(lambda ()
|
63
|
+
(for-each
|
64
|
+
(lambda (x)
|
65
|
+
(display ".")
|
66
|
+
(.system cmd))
|
67
|
+
(range 100))
|
68
|
+
(newline)))))
|
69
|
+
|
70
|
+
(define (henkan-with-uniq-keyword limit)
|
71
|
+
(let1 keylist
|
72
|
+
'(
|
73
|
+
"Aimai" "Ao" "Aoumigame" "Akakeitou"
|
74
|
+
"Bangou" "Bankai" "Banninkyoutuu" "Banouyaku"
|
75
|
+
"Chance"
|
76
|
+
"Dangai" "Daiichihousoku" "Daigakuin" "Daidokoro"
|
77
|
+
"Enjin" "Eigyoukatudou" "Eiseikidou" "Ebisu"
|
78
|
+
"Fantaji-"
|
79
|
+
"Goukaku" "Gakkou" "Gaikoku" "Gakki" "Gamenkeishiki" "Gamensaizu" "Garapagosu" "Gankyuu"
|
80
|
+
"Hinode" "Hi-ro-" "Hiroshima" "Hinjaku" "Hakari" "Ha-monika" "Haru"
|
81
|
+
"Iwanami" "Ikimono" "Inarizushi" "Iso" "Ishi" "Ima" "Imi" "Inu"
|
82
|
+
"Jinkoumondai" "Jinkoueisei" "Jiken" "Jiko" "Jirou" "Jakouneko"
|
83
|
+
"Kousei" "Kaisen" "Kiso" "Kisokenkyuu" "Kisoshikkan" "Kenkyuukikan" "Kenkyuunaiyou"
|
84
|
+
"London" "Lonly" "Load" "Love" "Listen" "List"
|
85
|
+
"Manyousyuu"
|
86
|
+
"Nouzei" "Namae" "Nakanaka" "Nihongohenkan" "Nihongo" "Nishi"
|
87
|
+
"Okinawa" "Oudanhodou"
|
88
|
+
"Painappuru" "Pa-sonaru"
|
89
|
+
"Quizu"
|
90
|
+
"Rokuon" "Rasenkaidan" "Risoku" "Risuku"
|
91
|
+
"Sougouhyouka" "Sougou" "Son" "Soro"
|
92
|
+
"Tuuka" "Tuika" "Taiyou" "Taiou" "Tamatama"
|
93
|
+
"Umi" "Ushiro" "Utagoe" "Uso" "Ukai"
|
94
|
+
"World" "Watagashi" "Watarigani"
|
95
|
+
"Yamagataken" "Yamai" "Yu-suke-su"
|
96
|
+
"Zonbi" "Zou" "Zanshin" "Zannen"
|
97
|
+
)
|
98
|
+
|
99
|
+
(bench-block
|
100
|
+
(sprintf "Uniqkey limit=%d" limit)
|
101
|
+
(lambda ()
|
102
|
+
(for-each
|
103
|
+
(lambda (x)
|
104
|
+
(let1 cmd (gen-curl-command-string x limit)
|
105
|
+
(display ".")
|
106
|
+
(.system cmd)))
|
107
|
+
keylist)
|
108
|
+
(newline)))))
|
109
|
+
|
110
|
+
|
111
|
+
(define (display-help)
|
112
|
+
(print "Usage : ")
|
113
|
+
(print " sekka-benchmark samekey0 .... henkan 100 times with same keyword [Kanji] (get N candidate)")
|
114
|
+
(print " sekka-benchmark samekey1 .... henkan 100 times with same keyword [Kanji] (get 1 candidate)")
|
115
|
+
(print " sekka-benchmark uniqkey0 .... henkan 100 times with uniq keywords [Aimai Ao ...] (get N candidate)"))
|
116
|
+
|
117
|
+
|
118
|
+
(define (main argv)
|
119
|
+
(cond
|
120
|
+
((= 0 (length argv))
|
121
|
+
(display-help))
|
122
|
+
(else
|
123
|
+
(let1 command (string->symbol (first argv))
|
124
|
+
(cond
|
125
|
+
((eq? 'samekey0 command)
|
126
|
+
(henkan-with-same-keyword 0))
|
127
|
+
((eq? 'samekey1 command)
|
128
|
+
(henkan-with-same-keyword 1))
|
129
|
+
((eq? 'uniqkey0 command)
|
130
|
+
(henkan-with-uniq-keyword 0))
|
131
|
+
(else
|
132
|
+
(errorf "Error: no such command [%s] \n" command )))))))
|
133
|
+
|
134
|
+
(main *argv*)
|
135
|
+
;;END-OF-SCRIPT
|
data/emacs/sekka.el
CHANGED
@@ -55,11 +55,6 @@
|
|
55
55
|
:type 'string
|
56
56
|
:group 'sekka)
|
57
57
|
|
58
|
-
(defcustom sekka-use-viper nil
|
59
|
-
"*Non-nil であれば、VIPER に対応する"
|
60
|
-
:type 'boolean
|
61
|
-
:group 'sekka)
|
62
|
-
|
63
58
|
(defcustom sekka-realtime-guide-running-seconds 30
|
64
59
|
"リアルタイムガイド表示の継続時間(秒数)・ゼロでガイド表示機能が無効になる"
|
65
60
|
:type 'integer
|
@@ -369,14 +364,17 @@
|
|
369
364
|
;; ユーザー語彙をサーバーに登録する。
|
370
365
|
;;
|
371
366
|
(defun sekka-register-userdict-internal ()
|
372
|
-
(let ((str
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
367
|
+
(let* ((str (sekka-get-jisyo-str "~/.sekka-jisyo"))
|
368
|
+
(str-lst (sekka-divide-into-few-line str)))
|
369
|
+
(mapcar
|
370
|
+
(lambda (x)
|
371
|
+
;;(message "Requesting to sekka server...")
|
372
|
+
(sekka-debug-print (format "register [%s]\n" x))
|
373
|
+
(let ((result (sekka-rest-request "register" `((dict . ,x)))))
|
374
|
+
(sekka-debug-print (format "register-result:%S\n" result))
|
375
|
+
(message result)))
|
376
|
+
str-lst)
|
377
|
+
t))
|
380
378
|
|
381
379
|
|
382
380
|
;;
|
@@ -392,17 +390,52 @@
|
|
392
390
|
t))
|
393
391
|
|
394
392
|
|
393
|
+
;; str = "line1 \n line2 \n line3 \n line4 \n line5 \n "
|
394
|
+
;; result:
|
395
|
+
;; '(
|
396
|
+
;; ("line1 \n line2 \n line3 \n ")
|
397
|
+
;; ("line4 \n line5 \n ")
|
398
|
+
;; )
|
399
|
+
;;
|
400
|
+
;; for-testing:
|
401
|
+
;; (sekka-divide-into-few-line
|
402
|
+
;; "line1 \n line2 \n line3 \n line4 \n line5 \n line6 \n line7 \n line8 \n line9 \n line10 \n line11 \n line12 \n")
|
403
|
+
;;
|
404
|
+
(defun sekka-divide-into-few-line (str)
|
405
|
+
(if (stringp str)
|
406
|
+
(let ((str-lst (split-string str "\n"))
|
407
|
+
(result '()))
|
408
|
+
(while (< 0 (length str-lst))
|
409
|
+
(push
|
410
|
+
(concat
|
411
|
+
(pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n"
|
412
|
+
(pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n"
|
413
|
+
|
414
|
+
(pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n"
|
415
|
+
(pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n"
|
416
|
+
|
417
|
+
(pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n"
|
418
|
+
(pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n"
|
419
|
+
|
420
|
+
(pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n"
|
421
|
+
(pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n"
|
422
|
+
|
423
|
+
(pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n"
|
424
|
+
(pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n" (pop str-lst) "\n"
|
425
|
+
)
|
426
|
+
result))
|
427
|
+
(reverse result))
|
428
|
+
'()))
|
429
|
+
|
395
430
|
(defun sekka-get-jisyo-str (file &optional nomsg)
|
396
|
-
"FILE を開いて
|
397
|
-
オプション引数の NOMSG を指定するとファイル読み込みの際のメッセージを表示しな
|
398
|
-
い。"
|
431
|
+
"FILE を開いて Sekka辞書バッファを作り、バッファ1行1文字列のリストで返す"
|
399
432
|
(when file
|
400
433
|
(let* ((file (or (car-safe file)
|
401
434
|
file))
|
402
435
|
(file (expand-file-name file)))
|
403
436
|
(if (not (file-exists-p file))
|
404
437
|
(progn
|
405
|
-
(message (format "
|
438
|
+
(message (format "Sekka辞書 %s が存在しません..." file))
|
406
439
|
nil)
|
407
440
|
(let ((str "")
|
408
441
|
(buf-name (file-name-nondirectory file)))
|
@@ -410,12 +443,10 @@
|
|
410
443
|
(find-file-read-only file)
|
411
444
|
(setq str (with-current-buffer (get-buffer buf-name)
|
412
445
|
(buffer-substring-no-properties (point-min) (point-max))))
|
413
|
-
(message (format "
|
446
|
+
(message (format "Sekka辞書 %s を開いています...完了!" (file-name-nondirectory file)))
|
414
447
|
(kill-buffer-if-not-modified (get-buffer buf-name)))
|
415
448
|
str)))))
|
416
449
|
|
417
|
-
;;(sekka-get-jisyo-str "~/.sekka-jisyo")
|
418
|
-
|
419
450
|
|
420
451
|
;; ポータブル文字列置換( EmacsとXEmacsの両方で動く )
|
421
452
|
(defun sekka-replace-regexp-in-string (regexp replace str)
|
@@ -998,36 +1029,6 @@
|
|
998
1029
|
(point))
|
999
1030
|
result)))))
|
1000
1031
|
|
1001
|
-
|
1002
|
-
;;;
|
1003
|
-
;;; with viper
|
1004
|
-
;;;
|
1005
|
-
;; code from skk-viper.el
|
1006
|
-
(defun sekka-viper-normalize-map ()
|
1007
|
-
(let ((other-buffer
|
1008
|
-
(if (featurep 'xemacs)
|
1009
|
-
(local-variable-p 'minor-mode-map-alist nil t)
|
1010
|
-
(local-variable-if-set-p 'minor-mode-map-alist))))
|
1011
|
-
;; for current buffer and buffers to be created in the future.
|
1012
|
-
;; substantially the same job as viper-harness-minor-mode does.
|
1013
|
-
(viper-normalize-minor-mode-map-alist)
|
1014
|
-
(setq-default minor-mode-map-alist minor-mode-map-alist)
|
1015
|
-
(when other-buffer
|
1016
|
-
;; for buffers which are already created and have
|
1017
|
-
;; the minor-mode-map-alist localized by Viper.
|
1018
|
-
(dolist (buf (buffer-list))
|
1019
|
-
(with-current-buffer buf
|
1020
|
-
(unless (assq 'sekka-mode minor-mode-map-alist)
|
1021
|
-
(setq minor-mode-map-alist
|
1022
|
-
(append (list (cons 'sekka-mode sekka-mode-map)
|
1023
|
-
(cons 'sekka-select-mode
|
1024
|
-
sekka-select-mode-map))
|
1025
|
-
minor-mode-map-alist)))
|
1026
|
-
(viper-normalize-minor-mode-map-alist))))))
|
1027
|
-
|
1028
|
-
(defun sekka-viper-init-function ()
|
1029
|
-
(sekka-viper-normalize-map)
|
1030
|
-
(remove-hook 'sekka-mode-hook 'sekka-viper-init-function))
|
1031
1032
|
|
1032
1033
|
(defun sekka-sticky-shift-init-function ()
|
1033
1034
|
;; sticky-shift
|
@@ -1156,8 +1157,6 @@ point から行頭方向に同種の文字列が続く間を漢字変換しま
|
|
1156
1157
|
(sekka-kill-sekka-mode))
|
1157
1158
|
(setq sekka-mode (if (null arg) (not sekka-mode)
|
1158
1159
|
(> (prefix-numeric-value arg) 0))))
|
1159
|
-
(when sekka-use-viper
|
1160
|
-
(add-hook 'sekka-mode-hook 'sekka-viper-init-function))
|
1161
1160
|
(when sekka-sticky-shift
|
1162
1161
|
(add-hook 'sekka-mode-hook 'sekka-sticky-shift-init-function))
|
1163
1162
|
(when sekka-mode (run-hooks 'sekka-mode-hook)))
|
@@ -1199,7 +1198,7 @@ point から行頭方向に同種の文字列が続く間を漢字変換しま
|
|
1199
1198
|
(setq default-input-method "japanese-sekka")
|
1200
1199
|
|
1201
1200
|
(defconst sekka-version
|
1202
|
-
"0.8.
|
1201
|
+
"0.8.2" ;;SEKKA-VERSION
|
1203
1202
|
)
|
1204
1203
|
(defun sekka-version (&optional arg)
|
1205
1204
|
"入力モード変更"
|
data/lib/sekka/kvs.rb
CHANGED
data/lib/sekka/sekkaversion.rb
CHANGED
data/lib/sekkaserver.rb
CHANGED
@@ -39,6 +39,7 @@ require 'nendo'
|
|
39
39
|
require 'eventmachine'
|
40
40
|
require 'syslog'
|
41
41
|
require 'uri'
|
42
|
+
require 'date'
|
42
43
|
require './lib/sekkaconfig'
|
43
44
|
require './lib/sekka/sekkaversion'
|
44
45
|
|
@@ -67,15 +68,22 @@ module SekkaServer
|
|
67
68
|
@thread = Thread.new do
|
68
69
|
Thread.pass
|
69
70
|
EventMachine::run {
|
71
|
+
d = DateTime.now
|
70
72
|
EventMachine::PeriodicTimer.new( 5 ) do
|
71
73
|
while not @queue.empty?
|
72
|
-
@queue.pop { |word|
|
74
|
+
@queue.pop { |word|
|
73
75
|
arr = word.split( /[ ]+/ )
|
74
76
|
userid = arr[0]
|
75
|
-
dictline =
|
77
|
+
dictline =
|
78
|
+
if 3 == arr.size
|
79
|
+
arr[1] + " " + arr[2]
|
80
|
+
else
|
81
|
+
";; comment"
|
82
|
+
end
|
76
83
|
registered = @core.registerUserJisyo(userid, @kvs, dictline)
|
77
84
|
if registered
|
78
|
-
|
85
|
+
str = d.strftime( "%D %X" )
|
86
|
+
puts "Info: [" + str + "]added to dict userid[" + userid + "] dictline[" + dictline + "]"
|
79
87
|
@core.flushCacheServer( @cachesv )
|
80
88
|
else
|
81
89
|
puts "Info: ignored (already added or comment) userid[" + userid + "] dictline[" + dictline + "]"
|
@@ -110,14 +118,14 @@ module SekkaServer
|
|
110
118
|
when "/register"
|
111
119
|
dict = URI.decode( req.params['dict'].force_encoding( "UTF-8" ) ).split( "\n" )
|
112
120
|
dict.each { |x| @queue.push( userid + " " + x ) }
|
113
|
-
sprintf( "register request
|
121
|
+
sprintf( "sekka-server:register request (%s) words added, current-queue-size (%s)", dict.size, @queue.size )
|
114
122
|
when "/flush"
|
115
123
|
@core.flushCacheServer( @cachesv )
|
116
124
|
n = @core.flushUserJisyo( userid, @kvs )
|
117
125
|
printf( "info : flush [%s] user's dict %d entries.", userid, n )
|
118
|
-
sprintf( "flush request successful. flush (%d) entries.", n )
|
126
|
+
sprintf( "sekka-server:flush request successful. flush (%d) entries.", n )
|
119
127
|
else
|
120
|
-
sprintf( "unknown path name. [%s]", req.path )
|
128
|
+
sprintf( "sekka-server:unknown path name. [%s]", req.path )
|
121
129
|
end
|
122
130
|
else
|
123
131
|
"no message."
|
data/test/approximate-bench.nnd
CHANGED
data/test/azik-verification.nnd
CHANGED
data/test/henkan-main.nnd
CHANGED
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sekka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 61
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
7
|
- 8
|
9
|
-
-
|
10
|
-
version: 0.8.
|
8
|
+
- 2
|
9
|
+
version: 0.8.2
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Kiyoka Nishiyama
|
@@ -15,7 +14,7 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date: 2010-
|
17
|
+
date: 2010-12-06 00:00:00 +09:00
|
19
18
|
default_executable:
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
@@ -26,7 +25,6 @@ dependencies:
|
|
26
25
|
requirements:
|
27
26
|
- - ">="
|
28
27
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 3
|
30
28
|
segments:
|
31
29
|
- 0
|
32
30
|
version: "0"
|
@@ -40,7 +38,6 @@ dependencies:
|
|
40
38
|
requirements:
|
41
39
|
- - ">="
|
42
40
|
- !ruby/object:Gem::Version
|
43
|
-
hash: 3
|
44
41
|
segments:
|
45
42
|
- 0
|
46
43
|
version: "0"
|
@@ -54,7 +51,6 @@ dependencies:
|
|
54
51
|
requirements:
|
55
52
|
- - ">="
|
56
53
|
- !ruby/object:Gem::Version
|
57
|
-
hash: 3
|
58
54
|
segments:
|
59
55
|
- 0
|
60
56
|
version: "0"
|
@@ -68,7 +64,6 @@ dependencies:
|
|
68
64
|
requirements:
|
69
65
|
- - ">="
|
70
66
|
- !ruby/object:Gem::Version
|
71
|
-
hash: 3
|
72
67
|
segments:
|
73
68
|
- 0
|
74
69
|
version: "0"
|
@@ -82,7 +77,6 @@ dependencies:
|
|
82
77
|
requirements:
|
83
78
|
- - ">="
|
84
79
|
- !ruby/object:Gem::Version
|
85
|
-
hash: 3
|
86
80
|
segments:
|
87
81
|
- 0
|
88
82
|
version: "0"
|
@@ -96,7 +90,6 @@ dependencies:
|
|
96
90
|
requirements:
|
97
91
|
- - ">="
|
98
92
|
- !ruby/object:Gem::Version
|
99
|
-
hash: 3
|
100
93
|
segments:
|
101
94
|
- 0
|
102
95
|
version: "0"
|
@@ -110,7 +103,6 @@ dependencies:
|
|
110
103
|
requirements:
|
111
104
|
- - ">="
|
112
105
|
- !ruby/object:Gem::Version
|
113
|
-
hash: 15
|
114
106
|
segments:
|
115
107
|
- 0
|
116
108
|
- 4
|
@@ -126,7 +118,6 @@ dependencies:
|
|
126
118
|
requirements:
|
127
119
|
- - ">="
|
128
120
|
- !ruby/object:Gem::Version
|
129
|
-
hash: 3
|
130
121
|
segments:
|
131
122
|
- 0
|
132
123
|
version: "0"
|
@@ -140,7 +131,6 @@ dependencies:
|
|
140
131
|
requirements:
|
141
132
|
- - ">="
|
142
133
|
- !ruby/object:Gem::Version
|
143
|
-
hash: 3
|
144
134
|
segments:
|
145
135
|
- 0
|
146
136
|
version: "0"
|
@@ -149,6 +139,7 @@ dependencies:
|
|
149
139
|
description: Sekka is a SKK like input method. Sekka server provides REST Based API. If you are SKK user, let's try it.
|
150
140
|
email: kiyoka@sumibi.org
|
151
141
|
executables:
|
142
|
+
- sekka-benchmark
|
152
143
|
- sekka-jisyo
|
153
144
|
- sekka-server
|
154
145
|
extensions: []
|
@@ -158,6 +149,7 @@ extra_rdoc_files:
|
|
158
149
|
files:
|
159
150
|
- COPYING
|
160
151
|
- README
|
152
|
+
- bin/sekka-benchmark
|
161
153
|
- bin/sekka-jisyo
|
162
154
|
- bin/sekka-server
|
163
155
|
- emacs/http-cookies.el
|
@@ -198,7 +190,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
198
190
|
requirements:
|
199
191
|
- - ">="
|
200
192
|
- !ruby/object:Gem::Version
|
201
|
-
hash: 49
|
202
193
|
segments:
|
203
194
|
- 1
|
204
195
|
- 9
|
@@ -209,7 +200,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
209
200
|
requirements:
|
210
201
|
- - ">="
|
211
202
|
- !ruby/object:Gem::Version
|
212
|
-
hash: 3
|
213
203
|
segments:
|
214
204
|
- 0
|
215
205
|
version: "0"
|