kansi_valid 0.0.10 → 0.0.12

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.
Files changed (51) hide show
  1. data/GPL +0 -0
  2. data/LICENSE.txt +2 -2
  3. data/README +46 -12
  4. data/kansi_valid.gemspec +24 -21
  5. data/lib/kansi_valid/_24hudou.rb +0 -0
  6. data/lib/kansi_valid/_3ren.rb +0 -0
  7. data/lib/kansi_valid/be_hyo.rb +0 -0
  8. data/lib/kansi_valid/be_soku.rb +0 -0
  9. data/lib/kansi_valid/bouin.rb +0 -0
  10. data/lib/kansi_valid/check_okosi.rb +0 -0
  11. data/lib/kansi_valid/check_ouin.rb +0 -0
  12. data/lib/kansi_valid/check_ryouin.rb +0 -0
  13. data/lib/kansi_valid/check_tuuin.rb +2 -2
  14. data/lib/kansi_valid/check_zekku.rb +0 -0
  15. data/lib/kansi_valid/hyousoku.rb +0 -0
  16. data/lib/kansi_valid/inji.rb +0 -0
  17. data/lib/kansi_valid/kanji.rb +1 -1
  18. data/lib/kansi_valid/kansi_anaryze.rb +0 -0
  19. data/lib/kansi_valid/kansi_comment.rb +0 -0
  20. data/lib/kansi_valid/kansi_generate.rb +0 -0
  21. data/lib/kansi_valid/kansi_htm.rb +0 -0
  22. data/lib/kansi_valid/kansi_organize.rb +0 -0
  23. data/lib/kansi_valid/kohyo.rb +0 -0
  24. data/lib/kansi_valid/kougo.rb +4 -4
  25. data/lib/kansi_valid/nihongo.rb +0 -0
  26. data/lib/kansi_valid/pick.rb +0 -0
  27. data/lib/kansi_valid/run.rb +41 -0
  28. data/lib/kansi_valid/sample.rb +1 -1
  29. data/lib/kansi_valid/search.rb +0 -0
  30. data/lib/kansi_valid/seikei.rb +0 -0
  31. data/lib/kansi_valid/version.rb +4 -2
  32. data/lib/kansi_valid/wiktionary.rb +0 -0
  33. data/lib/kansi_valid.rb +6 -6
  34. data/license.rb +26 -0
  35. data/readme.rb +165 -0
  36. data/test/tc_kansi_valid.rb +0 -0
  37. data/usual.rb +6 -0
  38. data/www/cgi-bin/jrb.cgi +69 -0
  39. data/www/cgi-bin/kougo.cgi +54 -0
  40. data/www/cgi-bin/post.cgi +50 -0
  41. data/www/cgi-bin/rb.cgi +61 -0
  42. data/www/cgi-bin/web.rb +36 -0
  43. data/{dic → www}/dic.txt +0 -0
  44. data/www/index.htm +19 -0
  45. data/{dic → www}/ji_s.txt +0 -0
  46. data/{dic → www}/jouyou_kanji.txt +0 -0
  47. data/{dic → www}/kanji_list.txt +0 -0
  48. metadata +24 -20
  49. data/dic/kaku.dic +0 -31
  50. data/dic/parts.dic +0 -1313
  51. data/dic/yomi.dic +0 -6404
data/GPL CHANGED
File without changes
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
- 'kansi_valid' can easy to make Kanshi(Han-poet).
1
+ 'kansi_valid' can easy to make Kanshi(Han-poet). {keywords: 漢詩 作り方 作成 基礎 平仄辞書 添削 rubygems.org}
2
2
 
3
- Copyright (C) 2009-2013 Takayasu Hayashi (email: joe.ko9ji@gmail.com )
3
+ Copyright (C) 2009-2014 Takayasu Hayashi(T_H) (email: joe.ko9ji@gmail.com )
4
4
 
5
5
  This program is free software; you can redistribute it and/or modify
6
6
  it under the terms of the GNU General Public License, version 2, as
data/README CHANGED
@@ -1,5 +1,5 @@
1
1
  #coding:utf-8
2
- === 漢詩を作ったり、解析したりするのに役立つモジュール、関数をつくりました。
2
+ === 漢詩を作る、平仄や添削したりするのに役立つモジュール、関数をつくりました。
3
3
  kansi_valid is a varidator of Han character poem(Kan si).
4
4
  Author:: Takayasu Hayashi(林 貴康 joe.ko9ji@gmail.com )
5
5
  License::GPL v2
@@ -12,6 +12,9 @@ License::GPL v2
12
12
  requrie "rubyems" if "RUBY_VERSION"<"1.9"
13
13
  require "kansi_valid"
14
14
  include Kansi_valid
15
+
16
+ run(port=8880) # => see 127.0.0.1:8880
17
+
15
18
  puts kv(generate)
16
19
 
17
20
  #winXPなど、文字コードが shift-jisなどのとき
@@ -29,8 +32,16 @@ script内部で
29
32
  をつかってみてください。(Fixed >=0.0.9)
30
33
 
31
34
  === 先ずは有名なサンプルで。
32
- sample # =>"#偶成 朱熹\n少年易老学難成\n一寸光陰不可軽\n未覚池塘春草夢\n階前梧葉已秋声\n"
33
- #other valid=>"少年易老学難成\n一寸光陰不可軽\n未覚池塘春草夢\n階前梧葉已秋声"
35
+ sample # =>"#偶成 朱熹
36
+ 少年易老学難成
37
+ 一寸光陰不可軽
38
+ 未覚池塘春草夢
39
+ 階前梧葉已秋声
40
+ "
41
+ #other valid=>"少年易老学難成
42
+ 一寸光陰不可軽
43
+ 未覚池塘春草夢
44
+ 階前梧葉已秋声"
34
45
  #other valid=>"少年易老学難成 一寸光陰不可軽 未覚池塘春草夢 階前梧葉已秋声"
35
46
  #other valid=>"少年易老学難成一寸光陰不可軽未覚池塘春草夢階前梧葉已秋声"
36
47
 
@@ -38,8 +49,14 @@ script内部で
38
49
  samples(10) # =>make many 'Meaningless' poet.
39
50
 
40
51
  * 七言絶句(7を指定)五言絶句(5を指定) make random 'Meaningless' poet(7or5 gon Zekku)
41
- srand(0);str1 = generate(7) # => "戻里唆双差及援\n罷傷脈拘序周元\n家据弱役露宵屋\n稚守途紅稿軸温"
42
- srand(0);generate(5) # => "戻里唆双飯\n差猫及硬温\n除慌女収嫁\n枢寂厄痴援"
52
+ srand(0);str1 = generate(7) # => "戻里唆双差及援
53
+ 罷傷脈拘序周元
54
+ 家据弱役露宵屋
55
+ 稚守途紅稿軸温"
56
+ srand(0);generate(5) # => "戻里唆双飯
57
+ 差猫及硬温
58
+ 除慌女収嫁
59
+ 枢寂厄痴援"
43
60
  * srand は同じ詩を生成するために使用していますので通常は不要
44
61
 
45
62
  ===kansi_valid(String) 絶句ならば禁則評価と辞書の結果表示、research dictionary and answer,validate
@@ -105,10 +122,17 @@ script内部で
105
122
  Ji =["亜","唖",..,"禔","赶"]
106
123
 
107
124
  ===平仄韻からランダムに文字をあてはめます
108
- poetter("常国◇○●\n◇○○●◎\n○○●○●\n○●●○◎",[Jouyou,inji[0]])
109
- # =>"常国雇坪坂\n飲戯眠分崇\n諸番襲硝看\n評緯越然籠"
125
+ poetter("常国◇○●
126
+ ◇○○●◎
127
+ ○○●○●
128
+ ○●●○◎",[Jouyou,inji[0]])
129
+ # =>"常国雇坪坂
130
+ 飲戯眠分崇
131
+ 諸番襲硝看
132
+ 評緯越然籠"
110
133
  zekku_list # =>絶句として適した文字を当てはめる配列
111
- kougo("◇●常国○◎") # =>"囚故常国挑琴\n#侵" 平仄式から字を充て、最後に韻をコメント。
134
+ kougo("◇●常国○◎") # =>"囚故常国挑琴
135
+ #侵" 平仄式から字を充て、最後に韻をコメント。
112
136
  # "◇不問 ●仄 ○平 ◎韻"
113
137
  kougo() # =>無意味な香語調を生成します、make random 'Meaningless' "kougo".
114
138
 
@@ -151,7 +175,17 @@ script内部で
151
175
  2、2、3(五言は2,3)の字で区切られているか
152
176
  多少目をつむるなどの融通はきかない。
153
177
  次は詩語表を登録したり、句のまとまりで当てはめられるようにしたい。
154
- ===更新履歴
155
- ==0.0.9
156
- * Windows7 コンソールで、デフォルトでは表示できないので、encodingをUTF-8に決めてあります
157
- kansi_valid.rb Fixed
178
+
179
+ <h3>更新履歴</h3>
180
+ '0.0.12' checked windows.
181
+ '0.0.11' #Kansi_valid::run (add)
182
+ '0.0.10' 0.0.9 error in rdoc(win7)
183
+ '0.0.9' BugFixed kansi_valid.rb (RUBY >=1.9)ENCODING ERROR on Windows7(or later) console.
184
+ '0.0.8' kansi_valid Bug fixed.(_bouin word+=...)
185
+ '0.0.7' Also use NameSpace (module_function add).
186
+ '0.0.6' Rdoc error fixed. UnitTest add.
187
+ '0.0.5' search() add.
188
+ '0.0.4' Linux support. ,delete 'win32ole'
189
+ '0.0.3' for win 2009.2.6Takayasu_H
190
+ '0.0.2' some bug fix
191
+ '0.0.1' first on windows XP. Thanks Kantarou(Author:Jigen Konou),and its great dictionary.
data/kansi_valid.gemspec CHANGED
@@ -1,6 +1,7 @@
1
1
  # coding:utf-8
2
2
  if RUBY_VERSION<"1.9"
3
3
  $KCODE="u"
4
+ require 'rubygems'
4
5
  else
5
6
  ##for execute gemspec and build
6
7
  #2013.2.7 Bug Fix on Windows7 console.(or later version)
@@ -8,19 +9,26 @@ else
8
9
  Encoding.default_external = 'utf-8'
9
10
  Encoding.default_internal = 'utf-8'
10
11
  end
12
+ $:.unshift(File.dirname(__FILE__) + "/../lib/")
13
+ Dir.chdir(File.dirname(__FILE__))
11
14
 
12
- require 'rubygems'
13
15
  require './lib/kansi_valid/version'
14
- #require './license'
16
+ require './license'
17
+ require './readme'
18
+
19
+ desc="'kansi_valid' can easy to make Kanshi(Han-poet). {keywords: 漢詩 作り方 作成 基礎 平仄辞書 添削 rubygems.org}"
20
+ open("./LICENSE.txt","w"){|io| io.print license(desc)}
21
+ open("./README","w"){|io| io.print readme()}
22
+
15
23
  spec = Gem::Specification.new do |s|
16
24
  s.platform = Gem::Platform::RUBY
17
- s.summary = "漢詩の作成補助、添削。 Easy to make Kanshi(Zekku)(Han-poet)and validate it. str=generate(5);kansi_valid(str);kv_bool(str)"
25
+ s.summary = "漢詩の作り方 補助ツール、添削。 Easy to make Kanshi(Zekku)(Han-poet)and validate it. run(port=8880);kansi_valid(str)"
18
26
  s.author="Takayasu Hayashi"
19
27
  s.email="joe.ko9ji@gmail.com"
20
28
  #s.homepage="http://maru.selfip.com/mygem/"
21
29
  s.name = "kansi_valid"
22
30
  s.version = Kansi_valid::Version
23
-
31
+ s.license="GPLv2"
24
32
  #s.requirements << 'rmagick'
25
33
  #s.requirements << 'gruff'
26
34
  #s.add_dependency('serialport','>= 1.0.4')
@@ -28,28 +36,23 @@ require './lib/kansi_valid/version'
28
36
  s.has_rdoc=true
29
37
 
30
38
  #s.files = Dir.glob("{test,lib}/**/*.rb")
31
- s.files = Dir.glob("{lib}/**/*.{rb,txt,dic}")+
39
+ s.files = Dir.glob("{lib}/**/*.{rb,txt,dic,bat}")+
32
40
  Dir.glob("test/{ts,tc}*.rb")+
33
- Dir.glob("dic/*")+
34
- #Dir.glob("bin/*.rb")+
35
- ["kansi_valid.gemspec","GPL","LICENSE.txt"]
41
+ #Dir.glob("dic/*")+
42
+ Dir.glob("www/**/*.{rb,cgi,txt,htm}")+
43
+ ["kansi_valid.gemspec","GPL","LICENSE.txt","license.rb","usual.rb","readme.rb"]
36
44
  s.test_file="test/tc_kansi_valid.rb"
37
45
  s.extra_rdoc_files="README"
38
46
  s.description = <<EOF
39
47
  Usage:
40
- requrie "rubyems"
41
- require "Kansi_valid"
42
- inclide Kansi_valid
43
-
44
- puts str1 = generate(7) # => make random poet(7 gon Zekku)
45
- puts str2 = generate(5) # => make random poet(5 gon Zekku)
46
-
47
- kansi_valid(str1) # => research dictionary and answer,validate
48
- kv(str1) # => same above
49
- valid(str1) # => same above
50
-
51
- valid?(str1) # =>true,false(nil)
52
- kv_bool(str1) # => same above
48
+ require "kansi_valid" ;inclide Kansi_valid <br/>
49
+ run(port=7980) ##New!(遊び系「漢詩作り」サーバー)
50
+ kansi_valid(sample) # =>漢詩の評価、添削 kv(sample)
51
+ valid?(sample) # =>true (五言か七言絶句ならば)
52
+ generate(7)     #無意味な七言絶句を生成(7,5のみ)
53
+ dic("漢字") #平仄を調べる
54
+ search("かえで") #辞書で文字検索(部首、つくり、意味、音訓、画数ほか)
55
+ poetter("常国◇○●\n◇○○●◎\n○○●○●\n○●●○◎",[Jouyou,inji[0]])
53
56
  EOF
54
57
  end
55
58
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,6 +1,6 @@
1
1
  # coding:utf-8
2
2
 
3
- module Kansi_valid
3
+ module Kansi_valid
4
4
  module_function
5
5
  #通韻のチェック
6
6
  def check_tuuin(a,zekku,ouIn)
@@ -17,7 +17,7 @@ module_function
17
17
  elsif zekku==5
18
18
  #p ouIn
19
19
  #p a[1][8]
20
- return (ouIn==a[1][8] && ouIn==a[3][8] && (ouIn==a[0][8]) or be_soku(a[0][9]))
20
+ return (ouIn==a[1][8] && ouIn==a[3][8] && (ouIn==a[0][8]) or be_soku(a[0][8]))
21
21
  #その他(false)
22
22
  else
23
23
  return false
File without changes
File without changes
File without changes
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Kansi_valid
4
4
  module_function
5
- def kanji(dic_file=File.dirname(__FILE__)+"/../../dic/dic.txt")
5
+ def kanji(dic_file=File.dirname(__FILE__)+"/../../www/dic.txt")
6
6
  dic={}
7
7
  data=File.read(dic_file)
8
8
  data.each_line do |list|
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,6 +1,6 @@
1
1
  # coding:utf-8
2
-
3
- module Kansi_valid
2
+
3
+ module Kansi_valid
4
4
  module_function
5
5
  def zekku_list
6
6
  hyo_7=["◇○◇●●○◎
@@ -90,7 +90,7 @@ rule=x[rand(x.size)]
90
90
  rule+="
91
91
 
92
92
  茲惟
93
- 新帰元 ◇◇◇◇信士"
93
+ 新帰元 ◇◇◇◇信仁"
94
94
  #八字称 人格・徳行
95
95
  rule+="
96
96
  ◇◇◇◇
@@ -121,7 +121,7 @@ rule+="
121
121
  rule+="
122
122
  ◇◇◇◇◇◇●
123
123
  ◇◇◇◇◇◇◎
124
- "
124
+ "
125
125
  end
126
126
  #p rule
127
127
  #p list
File without changes
File without changes
@@ -0,0 +1,41 @@
1
+ require "webrick"
2
+ module Kansi_valid
3
+ module_function
4
+ def run(port=8880,root=File.dirname(__FILE__)+"/../../www")
5
+ Dir.chdir(File.dirname(__FILE__))
6
+ #File.expand_path(File.dirname(__FILE__) + '/../..')
7
+ #require "../kansi_valid"
8
+ if RUBY_PLATFORM.include?("mswin")
9
+ #p rubybin = `exec ./which.bat ruby`.chomp
10
+ list=ENV["PATH"].split(";")
11
+ ls=list.select{|f| f.include?("ruby") && f.include?("bin")}
12
+ rubybin=ls[0].gsub("\\","/")+"/ruby"
13
+ else#linux
14
+ rubybin = `which ruby`.chomp
15
+ end
16
+
17
+ document_root = root
18
+ server = WEBrick::HTTPServer.new({
19
+ :DocumentRoot => document_root,
20
+ :BindAddress => '0.0.0.0',
21
+ :CGIInterpreter => rubybin,
22
+ :Port => port
23
+ })
24
+
25
+ cgi_root=document_root + '/**/*.{cgi,rb}'
26
+ cgilist = Dir.glob(cgi_root)
27
+ cgilist.each {|cgi_file|
28
+ server.mount(cgi_file, WEBrick::HTTPServlet::CGIHandler, document_root + cgi_file)
29
+ }
30
+
31
+ ['INT', 'TERM'].each {|signal|
32
+ Signal.trap(signal){ server.shutdown }
33
+ }
34
+ puts "See! # => 127.0.0.1:#{port.to_s}"
35
+ server.start
36
+ end
37
+ end
38
+
39
+ if $0==__FILE__
40
+ Kansi_valid::run()
41
+ end
@@ -7,7 +7,7 @@ module_function
7
7
  "#偶成 朱熹\n少年易老学難成\n一寸光陰不可軽\n未覚池塘春草夢\n階前梧葉已秋声\n"
8
8
  end
9
9
 
10
- def samples(num)
10
+ def samples(num=1)
11
11
  str=""
12
12
  num.times do
13
13
  str+=generate()+"\n\n"
File without changes
File without changes
@@ -2,9 +2,11 @@
2
2
 
3
3
  module Kansi_valid
4
4
  module_function
5
- Version = '0.0.10'
5
+ Version = '0.0.12'
6
6
 
7
- CHENGE_LOG="'0.0.10' 0.0.9 error in rdoc(win7)
7
+ CHENGE_LOG="'0.0.12' checked windows.
8
+ '0.0.11' #Kansi_valid::run (add)
9
+ '0.0.10' 0.0.9 error in rdoc(win7)
8
10
  '0.0.9' BugFixed kansi_valid.rb (RUBY >=1.9)ENCODING ERROR on Windows7(or later) console.
9
11
  '0.0.8' kansi_valid Bug fixed.(_bouin word+=...)
10
12
  '0.0.7' Also use NameSpace (module_function add).
File without changes
data/lib/kansi_valid.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  #coding:utf-8
2
- if RUBY_VERSION<"1.9"
2
+ if RUBY_VERSION<"1.9"
3
3
  $KCODE="u"
4
- else
4
+ else
5
5
  #2013.2.7 Bug Fix on Windows7 console.(or later version)
6
6
  Encoding.default_external = 'utf-8'
7
7
  Encoding.default_internal = 'utf-8'
@@ -20,10 +20,10 @@ module_function
20
20
  #全辞書ハッシュ
21
21
  Dic=kanji
22
22
  #常用漢字の配列
23
- Jouyou=File.read(File.dirname(__FILE__)+"/../dic/jouyou_kanji.txt").chomp.split(//)
23
+ Jouyou=File.read(File.dirname(__FILE__)+"/../www/jouyou_kanji.txt").chomp.split(//)
24
24
 
25
25
  #辞書の全ての漢字の配列(ひらがな等は、除外、国字は含む)
26
- Ji =File.read(File.dirname(__FILE__)+"/../dic/kanji_list.txt").chomp.split(//)
26
+ Ji =File.read(File.dirname(__FILE__)+"/../www/kanji_list.txt").chomp.split(//)
27
27
 
28
28
  #===kansi_valid(String) 絶句ならば禁則評価と辞書の結果表示、research dictionary and answer,validate
29
29
  # kansi_valid(sample)
@@ -85,13 +85,13 @@ module_function
85
85
  #二六対(挟み平(転句)はOK)
86
86
  hudo=_24hudou(a,zekku)
87
87
  unless hudo
88
- warning+="# 違反・二四不同、(二六対)\n"
88
+ warning+="# 違反・二四不同、二六対(又は両韻字)\n"
89
89
  end
90
90
 
91
91
  #下三連禁
92
92
  _simo3ren=_3ren(a)
93
93
  unless _simo3ren
94
- warning+="# 警告・下三連禁(下平三連、下仄三連)\n"
94
+ warning+="# 警告・下三連禁(下平三連、下仄三連)(又は両韻字)\n"
95
95
  end
96
96
 
97
97
  #二弧平禁(七言は四弧平禁)
data/license.rb ADDED
@@ -0,0 +1,26 @@
1
+ #!ruby
2
+
3
+ #write licence (with year)
4
+ def license_gplv2(desc)
5
+ year=Time.now.year
6
+
7
+ str=<<HEREDOC
8
+ #{desc}
9
+
10
+ Copyright (C) 2009-#{year} Takayasu Hayashi(T_H) (email: joe.ko9ji@gmail.com )
11
+
12
+ This program is free software; you can redistribute it and/or modify
13
+ it under the terms of the GNU General Public License, version 2, as
14
+ published by the Free Software Foundation.
15
+
16
+ This program is distributed in the hope that it will be useful,
17
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ GNU General Public License for more details.
20
+
21
+ You should have received a copy of the GNU General Public License
22
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
23
+ HEREDOC
24
+
25
+ end
26
+ alias license license_gplv2
data/readme.rb ADDED
@@ -0,0 +1,165 @@
1
+ #coding:utf-8
2
+ def readme
3
+ str=<<eos
4
+ #coding:utf-8
5
+ === 漢詩を作る、平仄や添削したりするのに役立つモジュール、関数をつくりました。
6
+ kansi_valid is a varidator of Han character poem(Kan si).
7
+ Author:: Takayasu Hayashi(林 貴康 joe.ko9ji@gmail.com )
8
+ License::GPL v2
9
+ * 辞書の使用は自己責任でお願いします。辞書は漢太郎の作者、Jigen様の作成された辞書を御許可いただきUTF-8テキストにしてあります。Jigen様、ありがとうございます。間違いがありましたら修正したいと思いますのでご連絡ください。joe.ko9ji@gmail.com
10
+ * Dictionary saved "/dic/dic.txt"UTF-8,about 6800 chars ,made by Jigen Kanou.
11
+ If you resume this,please tell me.
12
+ * 文字コードは UTF-8 ですので、WinXPなどは出力をKconvで変換したり、対応のエディタで見てください。
13
+ ===:Usage 使い方
14
+ # coding:utf-8
15
+ requrie "rubyems" if "RUBY_VERSION"<"1.9"
16
+ require "kansi_valid"
17
+ include Kansi_valid
18
+
19
+ run(port=8880) # => see 127.0.0.1:8880
20
+
21
+ puts kv(generate)
22
+
23
+ #winXPなど、文字コードが shift-jisなどのとき
24
+ require "kconv"
25
+ print Kconv.kconv(Kansi_valid::sample,Kconv::SJIS,Kconv::UTF8)
26
+
27
+ #追記Windows7以降のコンソールで、ruby1.9以降、エラーがでるなら、
28
+ ruby -Ku kansi_valid_script
29
+
30
+ ruby -U kansi_valid_script
31
+
32
+ script内部で
33
+ Encoding.default_external = 'utf-8'
34
+ Encoding.default_internal = 'utf-8'
35
+ をつかってみてください。(Fixed >=0.0.9)
36
+
37
+ === 先ずは有名なサンプルで。
38
+ sample # =>"#偶成 朱熹\n少年易老学難成\n一寸光陰不可軽\n未覚池塘春草夢\n階前梧葉已秋声\n"
39
+ #other valid=>"少年易老学難成\n一寸光陰不可軽\n未覚池塘春草夢\n階前梧葉已秋声"
40
+ #other valid=>"少年易老学難成 一寸光陰不可軽 未覚池塘春草夢 階前梧葉已秋声"
41
+ #other valid=>"少年易老学難成一寸光陰不可軽未覚池塘春草夢階前梧葉已秋声"
42
+
43
+ ===漢詩ではないサンプル漢詩を機械的に生成します
44
+ samples(10) # =>make many 'Meaningless' poet.
45
+
46
+ * 七言絶句(7を指定)五言絶句(5を指定) make random 'Meaningless' poet(7or5 gon Zekku)
47
+ srand(0);str1 = generate(7) # => "戻里唆双差及援\n罷傷脈拘序周元\n家据弱役露宵屋\n稚守途紅稿軸温"
48
+ srand(0);generate(5) # => "戻里唆双飯\n差猫及硬温\n除慌女収嫁\n枢寂厄痴援"
49
+ * srand は同じ詩を生成するために使用していますので通常は不要
50
+
51
+ ===kansi_valid(String) 絶句ならば禁則評価と辞書の結果表示、research dictionary and answer,validate
52
+ str=kansi_valid(sample)
53
+ # =>#偶成 朱熹
54
+ 少年易老学難成
55
+ 一寸光陰不可軽
56
+ 未覚池塘春草夢
57
+ 階前梧葉已秋声
58
+
59
+ # 庚 平起
60
+ #篠●先○陌●皓●覚●寒◇庚○
61
+ #質●願●陽○侵◇物◇哿●庚◇
62
+ #未●覚●支○陽○真○皓●東◇
63
+ #佳○先○虞◇葉●紙●尤○庚○
64
+ #Valid 絶句(Ver0.0.6)
65
+ #2013-01-03 22:58:18 +0900
66
+
67
+ #少:●:篠:嘯:ショウ:すくない すこし わかい
68
+ #年:○:一先::ネン:とし よわい みのり
69
+ 以下省略#
70
+ (ver 0.0.8よりValid表示基準を見直し)
71
+
72
+ kv(sample) # =>同上、 same above
73
+ valid(sample) # =>同上、 same above
74
+
75
+ ==html化して、wiktionaryなどで文字を調べられるようにするなら、
76
+ wik=to_wiktionary(str)
77
+ open("kansi.htm","w"){|io| io.print wik}
78
+ などとすると、html埋め込みデータができます。(ヘッダ等は必要なら適宜入れてください。)
79
+ firefox kansi.htm
80
+ などして、見てください
81
+
82
+ === 文字列が絶句であれば true を返す
83
+ valid?(sample) # =>true (絶句が正しいならtrue。)
84
+ (両韻・畳字はtrueを返せない)
85
+ kv_bool(sample) # =>同上、 same above
86
+
87
+ ===漢詩でないものも第二水準漢字程度まで調べられます。日本の国字<峠辻>なども調べられますが、絶句の評価はできません。
88
+ dic("漢字辞典") # =>文字列を調べる。普通こちら、Simple dictionary using Dic[]
89
+ # =>"漢:●:翰::カン:国名 あや から
90
+ 字:●:寘::ジ:あざ あざな じ
91
+ 辞:○:四支::ジ:やめる ことば ことわる
92
+ 典:●:銑::テン:ふみ のり つかさどる
93
+ "
94
+ Dic["漢"] # =>単漢字を調べる、Character Hash Dictionary(Author Jigen Kanou,in Kantarou)
95
+ # =>["漢", "413", "", "0", "●", "翰", "去声", "", "カン", "",
96
+ "国名 あや から", "3441", "2033", "13", "水艸口夫漢", "0"]
97
+
98
+ === 辞書の音訓などから調べる場合は search を使います
99
+ search("かえで") # =>Dicの内容から該当する漢字のハッシュをつくる
100
+ # =>{"楓"=>["楓", "2440", "", "0", "○", "一東", "上平", "", "フウ", "",
101
+ "かえで", "4976", "4186", "13", "木風几丿虫", "0"],
102
+ "槭"=>["槭", "4166", "", "0", "●", "屋", "入声", "", "セキ", "",
103
+ "かえで", "5C65", "6069", "15", "木戚戈上小", "0"]}
104
+ ===平韻の字表の配列です
105
+ inji # =>平韻の配列表(inji[x],x=0..29)
106
+ (inji[0]が一東です)
107
+  inji[29] # =>"咸銜鹹緘岩巌杉衫凡鑑函監讒帆"
108
+ ===常用漢字の配列です(約1945字)
109
+ Jouyou=["哀","愛",..,"湾","腕"]
110
+ ===辞書漢字の配列です(約6715字、国字など含む。かな・記号類は除外してあります。)
111
+ Ji =["亜","唖",..,"禔","赶"]
112
+
113
+ ===平仄韻からランダムに文字をあてはめます
114
+ poetter("常国◇○●\n◇○○●◎\n○○●○●\n○●●○◎",[Jouyou,inji[0]])
115
+ # =>"常国雇坪坂\n飲戯眠分崇\n諸番襲硝看\n評緯越然籠"
116
+ zekku_list # =>絶句として適した文字を当てはめる配列
117
+ kougo("◇●常国○◎") # =>"囚故常国挑琴\n#侵" 平仄式から字を充て、最後に韻をコメント。
118
+ # "◇不問 ●仄 ○平 ◎韻"
119
+ kougo() # =>無意味な香語調を生成します、make random 'Meaningless' "kougo".
120
+
121
+
122
+ hyousoku("菩薩") # =>"虞◇曷●" (韻と平仄式を返す)
123
+ hyosoku("菩薩") # =>同上、 same above
124
+
125
+ ===漢詩バリデータ(ルールどおりか評価する)ができるまで…
126
+ 漢詩のルールにしたがっているかをチェックするスクリプト
127
+ 記号
128
+ 平=韻+○
129
+ 仄=韻+●
130
+ 両韻=◇
131
+ 国字など=■
132
+ それ以外=?
133
+
134
+ チェック可能漢詩:
135
+ 七言絶句
136
+ 五言絶句
137
+
138
+ チェック項目
139
+ 押韻、おういん(重複禁)、踏み落とし(三句目)
140
+ 二四不動、にしふどう(挟み平(転句)はOK)
141
+ 二六対、にろくつい(挟み平(転句)はOK)
142
+ 下三連禁、あさんれんきん
143
+ 挟み平(転句はOK)
144
+ 二弧平禁(七言は四弧平禁)
145
+ 冒韻禁,韻字の句内での重複(畳字なども未チェック)
146
+
147
+ 他のチェック事項
148
+
149
+ 平起、仄起
150
+
151
+ やりたいこと
152
+ 読みかた(音、訓)# =>漢字辞書などへ転送など。
153
+ できてないこと
154
+ 対句,畳字など技法のチェック
155
+ 両韻の振り分けなど(◇でしか対応できない。基本1字1韻対応となる。)
156
+ たぶんチェックできないこと
157
+ 2、2、3(五言は2,3)の字で区切られているか
158
+ 多少目をつむるなどの融通はきかない。
159
+ 次は詩語表を登録したり、句のまとまりで当てはめられるようにしたい。
160
+
161
+ <h3>更新履歴</h3>
162
+ #{Kansi_valid::CHENGE_LOG}
163
+ eos
164
+
165
+ end
File without changes
data/usual.rb ADDED
@@ -0,0 +1,6 @@
1
+ if RUBY_VERSION < "1.9.0"
2
+ $KCODE="u"
3
+ require "rubygems"
4
+ end
5
+ require "kansi_valid"
6
+ include Kansi_valid