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