kansi_valid 0.0.7
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/LICENSE.txt +15 -0
- data/README +133 -0
- data/dic/dic.txt +6888 -0
- data/dic/ji_s.txt +1 -0
- data/dic/jouyou_kanji.txt +1 -0
- data/dic/kaku.dic +31 -0
- data/dic/kanji_list.txt +1 -0
- data/dic/parts.dic +1313 -0
- data/dic/yomi.dic +6404 -0
- data/kansi_valid.gemspec +45 -0
- data/lib/kansi_valid.rb +299 -0
- data/lib/kansi_valid/_24hudou.rb +146 -0
- data/lib/kansi_valid/_3ren.rb +22 -0
- data/lib/kansi_valid/be_hyo.rb +15 -0
- data/lib/kansi_valid/be_soku.rb +15 -0
- data/lib/kansi_valid/bouin.rb +38 -0
- data/lib/kansi_valid/check_okosi.rb +13 -0
- data/lib/kansi_valid/check_ouin.rb +17 -0
- data/lib/kansi_valid/check_ryouin.rb +47 -0
- data/lib/kansi_valid/check_tuuin.rb +30 -0
- data/lib/kansi_valid/check_zekku.rb +23 -0
- data/lib/kansi_valid/hyousoku.rb +46 -0
- data/lib/kansi_valid/inji.rb +65 -0
- data/lib/kansi_valid/kanji.rb +18 -0
- data/lib/kansi_valid/kansi_analyze.rb +16 -0
- data/lib/kansi_valid/kansi_comment.rb +23 -0
- data/lib/kansi_valid/kansi_generate.rb +387 -0
- data/lib/kansi_valid/kansi_htm.rb +151 -0
- data/lib/kansi_valid/kansi_organize.rb +57 -0
- data/lib/kansi_valid/kohyo.rb +37 -0
- data/lib/kansi_valid/kougo.rb +132 -0
- data/lib/kansi_valid/nihongo.rb +12 -0
- data/lib/kansi_valid/pick.rb +57 -0
- data/lib/kansi_valid/sample.rb +17 -0
- data/lib/kansi_valid/search.rb +28 -0
- data/lib/kansi_valid/seikei.rb +20 -0
- data/lib/kansi_valid/version.rb +14 -0
- data/lib/kansi_valid/wiktionary.rb +79 -0
- data/test/tc_kansi_valid.rb +92 -0
- metadata +120 -0
@@ -0,0 +1,28 @@
|
|
1
|
+
# coding:utf-8
|
2
|
+
|
3
|
+
module Kansi_valid
|
4
|
+
module_function
|
5
|
+
# 辞書にある読みなどから調べる
|
6
|
+
# search("かえで")#=>{"楓"=>["楓", "2440", "", "0", "○", "一東", "上平", "", "フウ", "", "かえで", "4976", "4186", "13", "木風几丿虫", "0"],
|
7
|
+
# "槭"=>["槭", "4166", "", "0", "●", "屋", "入声", "", "セキ", "", "かえで", "5C65", "6069", "15", "木戚戈上小", "0"]}
|
8
|
+
def search(str)
|
9
|
+
hash={}
|
10
|
+
Dic.each do |key,val|
|
11
|
+
val.each do |content|
|
12
|
+
if content.include?(str)
|
13
|
+
hash[key]=val
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
return hash
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
if $0==__FILE__
|
22
|
+
include Kansi_valid
|
23
|
+
str=ARGV[0] ||"かえで"
|
24
|
+
p res=search(str)
|
25
|
+
p str
|
26
|
+
p res.keys
|
27
|
+
p res.size
|
28
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# coding:utf-8
|
2
|
+
|
3
|
+
module Kansi_valid
|
4
|
+
module_function
|
5
|
+
|
6
|
+
def seikei(kekka)
|
7
|
+
if kekka!=nil
|
8
|
+
res=""
|
9
|
+
begin
|
10
|
+
list=kekka.split("\n")
|
11
|
+
list.each{|i|res+="#"+i+"\n"}
|
12
|
+
xx=res
|
13
|
+
rescue
|
14
|
+
xx="#"+kekka.strip+"\n"
|
15
|
+
end
|
16
|
+
return xx
|
17
|
+
end
|
18
|
+
return res
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# coding:utf-8
|
2
|
+
|
3
|
+
module Kansi_valid
|
4
|
+
module_function
|
5
|
+
Version = '0.0.7'
|
6
|
+
|
7
|
+
CHENGE_LOG="'0.0.7' Also use NameSpace (module_function add).
|
8
|
+
'0.0.6' Rdoc error fixed. UnitTest add.
|
9
|
+
'0.0.5' search() add.
|
10
|
+
'0.0.4' Linux support. ,delete 'win32ole'
|
11
|
+
'0.0.3' for win 2009.2.6Takayasu_H
|
12
|
+
'0.0.2' some bug fix
|
13
|
+
'0.0.1' first on windows XP. Thanks Kantarou(Author:Jigen Konou),and its great dictionary."
|
14
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
#coding:utf-8
|
2
|
+
require 'uri'
|
3
|
+
|
4
|
+
module Kansi_valid
|
5
|
+
module_function
|
6
|
+
##
|
7
|
+
#===文字データベースのwiktionary:
|
8
|
+
# http://en.wiktionary.org/wiki/
|
9
|
+
# で文字を調べるように、urlを作成する(1字のみ)
|
10
|
+
#===exsample:
|
11
|
+
# wiktionary("字") # =>"http://en.wiktionary.org/wiki/%E5%AD%97"
|
12
|
+
#
|
13
|
+
# to_wiktionary
|
14
|
+
# ref
|
15
|
+
def wiktionary(str)
|
16
|
+
str_uri = URI.escape("http://en.wiktionary.org/wiki/#{str}")
|
17
|
+
end
|
18
|
+
|
19
|
+
##
|
20
|
+
#===文字データベースのwiktionary
|
21
|
+
# http://en.wiktionary.org/wiki/
|
22
|
+
# で文字を調べるように、urlを作成する(1字のみ)
|
23
|
+
# htmlに貼り付けるリンク向きです。
|
24
|
+
#===exsample:
|
25
|
+
# ref("字") # =>"<a href=\"http://en.wiktionary.org/wiki/%E5%AD%97\" target=\"_blank\">字</a>"
|
26
|
+
# :to_wiktionary
|
27
|
+
# :wiktionary
|
28
|
+
def ref(str)
|
29
|
+
#str should be 1 char
|
30
|
+
|
31
|
+
#result=see_dic(str,8)
|
32
|
+
kekka=str#rubi(str,result)
|
33
|
+
begin
|
34
|
+
x="<a href=\"#{wiktionary(str)}\" target=\"_blank\">#{kekka}</a>"
|
35
|
+
rescue
|
36
|
+
x="<a href=\"#{wiktionary(str)}\">#{str}</a>"
|
37
|
+
end
|
38
|
+
return x
|
39
|
+
end
|
40
|
+
|
41
|
+
##
|
42
|
+
#===文字データベースのwiktionary
|
43
|
+
# http://en.wiktionary.org/wiki/
|
44
|
+
# で文字を調べるように、urlを作成する
|
45
|
+
# こちらは他文字に対応している。
|
46
|
+
#===exsample:
|
47
|
+
# to_wiktionary("漢字")# =>"<a href=\"http://en.wiktionary.org/wiki/%E6%BC%A2\" target=\"_blank\">漢</a>
|
48
|
+
# <a href=\"http://en.wiktionary.org/wiki/%E5%AD%97\" target=\"_blank\">字</a>
|
49
|
+
#wiktionary
|
50
|
+
#ref
|
51
|
+
def to_wiktionary(str)
|
52
|
+
kekka=""
|
53
|
+
flag=true #perse flag
|
54
|
+
##core
|
55
|
+
x=str.split(//) #each characters into Array
|
56
|
+
x.each do |ji|
|
57
|
+
#if comment
|
58
|
+
if ji=="#"
|
59
|
+
flag=false
|
60
|
+
kekka+="<span class='comment'>#"
|
61
|
+
elsif ji=="\n"
|
62
|
+
kekka+="</span>" if flag==false
|
63
|
+
flag=true
|
64
|
+
kekka+="<br/>\n"
|
65
|
+
else
|
66
|
+
if flag
|
67
|
+
kekka+=ref(ji)
|
68
|
+
else
|
69
|
+
kekka+=ji
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
#kekka+="<br/><p>単漢字をクリックすると辞書へ移動します。!!</p>"
|
74
|
+
|
75
|
+
yield kekka if block_given?
|
76
|
+
return kekka
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
# coding:utf-8
|
2
|
+
|
3
|
+
$:.unshift(File.dirname(__FILE__) + "/../lib/")
|
4
|
+
$KCODE="u" if RUBY_VERSION<"1.9"
|
5
|
+
|
6
|
+
require 'test/unit'
|
7
|
+
require "kansi_valid"
|
8
|
+
|
9
|
+
|
10
|
+
class TC_Kansi_valid < Test::Unit::TestCase
|
11
|
+
include Kansi_valid
|
12
|
+
def setup
|
13
|
+
srand(12345)
|
14
|
+
@str=samples(1) # =>"襟道珠曇凍傘釭\n騒衷祥字机麻撞\n優幾院看維彰芋\n腰空需嘆共仮窓\n\n"
|
15
|
+
srand(12345)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_sample
|
19
|
+
assert_equal("#偶成 朱熹\n少年易老学難成\n一寸光陰不可軽\n未覚池塘春草夢\n階前梧葉已秋声\n",sample)
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_samples
|
23
|
+
assert_equal("襟道珠曇凍傘釭\n騒衷祥字机麻撞\n優幾院看維彰芋\n腰空需嘆共仮窓\n\n",@str)
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_kv
|
27
|
+
|
28
|
+
assert_equal(1,("#偶成 朱熹\n少年易老学難成\n一寸光陰不可軽\n未覚池塘春草夢\n階前梧葉已秋声\n\n\n# 庚 平起\n#篠●先○陌●皓●覚●寒◇庚○\n#質●願●陽○侵◇物◇哿●庚◇\n#未●覚●支○陽○真○皓●東◇\n#佳○先○虞◇葉●紙●尤○庚○\n#Valid 絶句(Ver0.0.6)\n#2013-01-04 12:57:41 +0900\n\n#少:●:篠:嘯:ショウ:すくない すこし わかい\n#年:○:一先::ネン:とし よわい みのり\n#易:●:陌:寘:エキ:やさしい やすい かわる\n#老:●:皓::ロウ:おいる ふける おいかんむり\n#学:●:覚::ガク:まなぶ\n#難:◇:十四寒:翰五歌:ナン:かたい むずかしい ●くるしむ\n#成:○:八庚::セイ:なる なす たいらげる\n#\n#一:●:質::イチ:ひと ひとつ いち\n#寸:●:願::スン:ながさ 3,03㎝ すん\n#光:○:七陽::コウ:ひかり ひかる\n#陰:◇:十二侵:覃沁:イン:かげ かげる ひそか くもる\n#不:◇:物:有紙:フ:・・ず ・・ざる ○いなや否\n#可:●:哿:陌:カ:よい べし\n#軽:◇:八庚:敬:ケイ:かるい かろやか ●かるがるしい\n#\n#未:●:未::ミ:いまだ・・ず ひつじ\n#覚:●:覚:効:カク:おぼえる さめる さとる\n#池:○:四支::チ:いけ\n#塘:○:七陽::トウ:つつみ\n#春:○:十一真::シュン:はる\n#草:●:皓::ソウ:くさ\n#夢:◇:一東:送:ム:ゆめ ゆめをみる○あきらかならざる貌\n#\n#階:○:九佳::カイ:きざはし かいだん しな\n#前:○:一先::ゼン:まえ さき すすむ\n#梧:◇:七虞:遇:ゴ:あおぎり\n#葉:●:葉::ヨウ:は\n#已:●:紙:寘:イ:すでに のみ やめる はなはだ\n#秋:○:十一尤::シュウ:あき みのり とき としつき\n#声:○:八庚::セイ:こえ うわさ こわ\n".split("\n")-kansi_valid(sample).split("\n")).size)
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_valid
|
32
|
+
assert_equal(true,valid?("少年易老学難成 一寸光陰不可軽 未覚池塘春草夢 階前梧葉已秋声"))
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_dic
|
36
|
+
assert_equal("漢:●:翰::カン:国名 あや から\nあ:::::\n峠:■:国字::トウゲ:とうげ\n",dic("漢あ峠"))
|
37
|
+
assert_equal(["漢", "413", "", "0", "●", "翰", "去声", "", "カン", "", "国名 あや から", "3441", "2033", "13", "水艸口夫漢", "0"],Dic["漢"])
|
38
|
+
assert_equal(
|
39
|
+
{"楓"=>["楓", "2440", "", "0", "○", "一東", "上平", "", "フウ", "", "かえで", "4976", "4186", "13", "木風几丿虫", "0"],
|
40
|
+
"槭"=>["槭", "4166", "", "0", "●", "屋", "入声", "", "セキ", "", "かえで", "5C65", "6069", "15", "木戚戈上小", "0"]
|
41
|
+
},
|
42
|
+
search("かえで"))
|
43
|
+
assert_equal( "咸銜鹹緘岩巌杉衫凡鑑函監讒帆",inji[29])
|
44
|
+
assert_equal("亜",Jouyou[0])
|
45
|
+
assert_equal("亜",Ji[0])
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_hyousoku
|
49
|
+
assert_equal("虞◇曷●",hyousoku("菩薩")) # =>"虞◇曷●"
|
50
|
+
assert_equal("虞◇曷●",hyosoku("菩薩")) # =>"虞◇曷●"
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_poetter
|
54
|
+
assert_equal("常国見搬納\n玉筒恒勺戎\n操銅置招演\n毛貝器移楓",poetter("常国◇○●\n◇○○●◎\n○○●○●\n○●●○◎",[Jouyou,inji[0]]))
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_kougo
|
58
|
+
assert_equal("班定常国河双\n#江",kougo("◇●常国○◎"))
|
59
|
+
end
|
60
|
+
end
|
61
|
+
=begin
|
62
|
+
puts sample # =>"#偶成 朱熹\n少年易老学難成\n一寸光陰不可軽\n未覚池塘春草夢\n階前梧葉已秋声\n"
|
63
|
+
#other valid=>"少年易老学難成\n一寸光陰不可軽\n未覚池塘春草夢\n階前梧葉已秋声"
|
64
|
+
#other valid=>"少年易老学難成 一寸光陰不可軽 未覚池塘春草夢 階前梧葉已秋声"
|
65
|
+
#other valid=>"少年易老学難成一寸光陰不可軽未覚池塘春草夢階前梧葉已秋声"
|
66
|
+
puts samples(10) # =>make many 'Meaningless' Kansi-Poet on 1 sec
|
67
|
+
|
68
|
+
puts str1 = generate(7) # => make random 'Meaningless' poet(7 gon Zekku)
|
69
|
+
generate(5) # => make random 'Meaningless' poet(5 gon Zekku)
|
70
|
+
|
71
|
+
puts kansi_valid(sample)# =>絶句ならば禁則評価と辞書の結果表示、research dictionary and answer,validate
|
72
|
+
kv(str1) # =>同上、 same above
|
73
|
+
valid(str1) # =>同上、 same above
|
74
|
+
|
75
|
+
valid?(str1) # =>絶句が正しいならtrue。両韻・畳字などはtrueを返せない、return true or false(nil).
|
76
|
+
kv_bool(str1) # =>同上、 same above
|
77
|
+
|
78
|
+
Dic["漢"] # =>単漢字を調べる、Character Hash Dictionary(Author Jigen Kanou,in Kantarou)
|
79
|
+
dic("漢字辞典") # =>文字列を調べる。普通こちら、Simple dictionary using Dic[]
|
80
|
+
search("かえで") # =>Dicの内容から該当する漢字のハッシュをつくる
|
81
|
+
|
82
|
+
kougo() # =>香語、make random 'Meaningless' "kougo",you know.
|
83
|
+
kougo("◇●常国○◎") # =>"囚故常国挑琴\n#侵" 平仄式から字を充て、最後に韻をコメント。
|
84
|
+
# "◇不問 ●仄 ○平 ◎韻"
|
85
|
+
|
86
|
+
hyousoku("菩薩") # =>"虞◇曷●"韻と平仄式を返す
|
87
|
+
hyosoku("菩薩") # =>同上、 same above
|
88
|
+
|
89
|
+
inji # =>平韻の配列表(inji[x],x=0..29)
|
90
|
+
|
91
|
+
=end
|
92
|
+
|
metadata
ADDED
@@ -0,0 +1,120 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: kansi_valid
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 17
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 7
|
10
|
+
version: 0.0.7
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Takayasu Hayashi
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2013-01-04 00:00:00 +09:00
|
19
|
+
default_executable:
|
20
|
+
dependencies: []
|
21
|
+
|
22
|
+
description: |
|
23
|
+
Usage:
|
24
|
+
requrie "rubyems"
|
25
|
+
require "Kansi_valid"
|
26
|
+
inclide Kansi_valid
|
27
|
+
|
28
|
+
puts str1 = generate(7) # => make random poet(7 gon Zekku)
|
29
|
+
puts str2 = generate(5) # => make random poet(5 gon Zekku)
|
30
|
+
|
31
|
+
kansi_valid(str1) # => research dictionary and answer,validate
|
32
|
+
kv(str1) # => same above
|
33
|
+
valid(str1) # => same above
|
34
|
+
|
35
|
+
valid?(str1) # =>true,false(nil)
|
36
|
+
kv_bool(str1) # => same above
|
37
|
+
|
38
|
+
email: joe.ko9ji@gmail.com
|
39
|
+
executables: []
|
40
|
+
|
41
|
+
extensions: []
|
42
|
+
|
43
|
+
extra_rdoc_files:
|
44
|
+
- README
|
45
|
+
files:
|
46
|
+
- lib/kansi_valid/sample.rb
|
47
|
+
- lib/kansi_valid/kansi_htm.rb
|
48
|
+
- lib/kansi_valid/check_tuuin.rb
|
49
|
+
- lib/kansi_valid/nihongo.rb
|
50
|
+
- lib/kansi_valid/be_hyo.rb
|
51
|
+
- lib/kansi_valid/pick.rb
|
52
|
+
- lib/kansi_valid/version.rb
|
53
|
+
- lib/kansi_valid/be_soku.rb
|
54
|
+
- lib/kansi_valid/bouin.rb
|
55
|
+
- lib/kansi_valid/check_ouin.rb
|
56
|
+
- lib/kansi_valid/kansi_organize.rb
|
57
|
+
- lib/kansi_valid/kansi_generate.rb
|
58
|
+
- lib/kansi_valid/seikei.rb
|
59
|
+
- lib/kansi_valid/hyousoku.rb
|
60
|
+
- lib/kansi_valid/check_zekku.rb
|
61
|
+
- lib/kansi_valid/wiktionary.rb
|
62
|
+
- lib/kansi_valid/kansi_analyze.rb
|
63
|
+
- lib/kansi_valid/_24hudou.rb
|
64
|
+
- lib/kansi_valid/search.rb
|
65
|
+
- lib/kansi_valid/kanji.rb
|
66
|
+
- lib/kansi_valid/inji.rb
|
67
|
+
- lib/kansi_valid/kohyo.rb
|
68
|
+
- lib/kansi_valid/kansi_comment.rb
|
69
|
+
- lib/kansi_valid/_3ren.rb
|
70
|
+
- lib/kansi_valid/check_okosi.rb
|
71
|
+
- lib/kansi_valid/check_ryouin.rb
|
72
|
+
- lib/kansi_valid/kougo.rb
|
73
|
+
- lib/kansi_valid.rb
|
74
|
+
- test/tc_kansi_valid.rb
|
75
|
+
- dic/parts.dic
|
76
|
+
- dic/jouyou_kanji.txt
|
77
|
+
- dic/dic.txt
|
78
|
+
- dic/kaku.dic
|
79
|
+
- dic/ji_s.txt
|
80
|
+
- dic/yomi.dic
|
81
|
+
- dic/kanji_list.txt
|
82
|
+
- kansi_valid.gemspec
|
83
|
+
- LICENSE.txt
|
84
|
+
- README
|
85
|
+
has_rdoc: true
|
86
|
+
homepage:
|
87
|
+
licenses: []
|
88
|
+
|
89
|
+
post_install_message:
|
90
|
+
rdoc_options: []
|
91
|
+
|
92
|
+
require_paths:
|
93
|
+
- lib
|
94
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
hash: 3
|
100
|
+
segments:
|
101
|
+
- 0
|
102
|
+
version: "0"
|
103
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
|
+
none: false
|
105
|
+
requirements:
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
hash: 3
|
109
|
+
segments:
|
110
|
+
- 0
|
111
|
+
version: "0"
|
112
|
+
requirements: []
|
113
|
+
|
114
|
+
rubyforge_project:
|
115
|
+
rubygems_version: 1.6.2
|
116
|
+
signing_key:
|
117
|
+
specification_version: 3
|
118
|
+
summary: "\xE6\xBC\xA2\xE8\xA9\xA9\xE3\x81\xAE\xE4\xBD\x9C\xE6\x88\x90\xE8\xA3\x9C\xE5\x8A\xA9\xE3\x80\x81\xE6\xB7\xBB\xE5\x89\x8A\xE3\x80\x82\xE3\x80\x80Easy to make Kanshi(Zekku)(Han-poet)and validate it. str=generate(5);kansi_valid(str);kv_bool(str)"
|
119
|
+
test_files:
|
120
|
+
- test/tc_kansi_valid.rb
|