kansi_valid 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,17 @@
1
+ # coding:utf-8
2
+
3
+ module Kansi_valid
4
+ module_function
5
+
6
+ def sample
7
+ "#偶成 朱熹\n少年易老学難成\n一寸光陰不可軽\n未覚池塘春草夢\n階前梧葉已秋声\n"
8
+ end
9
+
10
+ def samples(num)
11
+ str=""
12
+ num.times do
13
+ str+=generate()+"\n\n"
14
+ end
15
+ return str
16
+ end
17
+ end
@@ -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