jelegante 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/Gemfile ADDED
@@ -0,0 +1,13 @@
1
+ source "http://rubygems.org"
2
+ # Add dependencies required to use your gem here.
3
+ # Example:
4
+ # gem "activesupport", ">= 2.3.5"
5
+
6
+ # Add dependencies to develop your gem here.
7
+ # Include everything needed to run rake, tests, features, etc.
8
+ group :development do
9
+ gem "rspec", "~> 2.3.0"
10
+ gem "bundler", "~> 1.0.0"
11
+ gem "jeweler", "~> 1.6.4"
12
+ gem "rcov", ">= 0"
13
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,13 @@
1
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
2
+ Version 2, December 2004
3
+
4
+ Copyright (C) 2011 lpm11.
5
+
6
+ Everyone is permitted to copy and distribute verbatim or modified
7
+ copies of this license document, and changing it is allowed as long
8
+ as the name is changed.
9
+
10
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
11
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
12
+
13
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
data/README.rdoc ADDED
@@ -0,0 +1,7 @@
1
+ = jelegante
2
+
3
+ Guess whether text is japanese or not heuristically.
4
+
5
+ == Copyright
6
+
7
+ Copyright (c) 2011 lpm11. See LICENSE.txt for further details.
data/Rakefile ADDED
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
13
+
14
+ require 'jeweler'
15
+ Jeweler::Tasks.new do |gem|
16
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
+ gem.name = "jelegante"
18
+ gem.homepage = "http://github.com/lpm11/jelegante"
19
+ gem.license = "MIT"
20
+ gem.summary = %Q{Guess whether text is japanese or not heuristically.}
21
+ gem.description = %Q{Guess whether text is japanese or not heuristically.}
22
+ gem.email = "lpm11r@gmail.com"
23
+ gem.authors = ["lpm11"]
24
+ # dependencies defined in Gemfile
25
+ end
26
+ Jeweler::RubygemsDotOrgTasks.new
27
+
28
+ require 'rspec/core'
29
+ require 'rspec/core/rake_task'
30
+ RSpec::Core::RakeTask.new(:spec) do |spec|
31
+ spec.pattern = FileList['spec/**/*_spec.rb']
32
+ end
33
+
34
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
35
+ spec.pattern = 'spec/**/*_spec.rb'
36
+ spec.rcov = true
37
+ end
38
+
39
+ task :default => :spec
40
+
41
+ require 'rake/rdoctask'
42
+ Rake::RDocTask.new do |rdoc|
43
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
44
+
45
+ rdoc.rdoc_dir = 'rdoc'
46
+ rdoc.title = "jelegante #{version}"
47
+ rdoc.rdoc_files.include('README*')
48
+ rdoc.rdoc_files.include('lib/**/*.rb')
49
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.0.1
@@ -0,0 +1,24 @@
1
+ #!/bin/env ruby
2
+ #-*- coding: utf-8 -*-
3
+ require("../lib/jelegante");
4
+
5
+ tests = [
6
+ "Ruby 1.9.3 の最初の Release Candidate 版である ruby-1.9.3-rc1 がリリースされました。",
7
+ "Ruby 1.9.3 rc1 has been released. This is a second preview of next version and there're still minor known issues. But it will be fixed in next release, ruby 1.9.3-p0.",
8
+ "Ruby 1.9.3 rc1 est sorti. C'est le second aperçu de ce que sera cette nouvelle version, et elle contient encore quelques bugs connus. Ceux-ci seront corrigés dans la sortie de Ruby 1.9.3-p0.",
9
+ "Ruby 1.9.3 preview1이 릴리즈되었습니다. 이는 1.9.3으로서는 첫 preview이며 아직까지 자잘한 문제점을 가지고 있습니다. 이러한 문제점은 정식 릴리즈인 p0부터는 모두 수정될 예정입니다.",
10
+ "RuPy 2011 już za dwa miesiące!",
11
+ "Este año tenemos una cantidad inédita de eventos de Ruby en américa latina.",
12
+ "O Ruby 1.9.3 preview1 foi lançado. Esta é a primeira pre-release da próxima versão e ainda existem alguns problemas conhecidos, que serão resolvidos na proxima release, Ruby 1.9.3-p0",
13
+ "Ruby 1.9.2-p136 已经发布.",
14
+ "RubyConf Taiwan 將於 2011/8/26 (週五) 和 8/27 (週六) 在中央研究院人科所會議廳舉辦,是台灣唯一及最大的 Ruby 程式語言大會,將會超過一百位的 IT 技術人員、系統管理員、程式開發者來參加這項會議,並邀請來自台灣、美國及日本的講者來分享他們的專案及經驗。",
15
+ "Ruby 1.8.7-p248 dan Ruby 1.9.1-p376 diluncurkan",
16
+ "Ruby 1.9.3-rc1 ist veröffentlicht worden.",
17
+ "Ruby 1.9.3 preview1 è stato rilasciato. Questa è una prima preview della prossima versione, e contiene ancora qualche piccolo baco, che sarà tuttavia corretto nel prossimo rilascio, Ruby 1.9.3-p0.",
18
+ "Излезе Ruby 1.9.2. Това е последната стабилна версия от серията 1.9.",
19
+ "Ruby 1.9.2-p136 sürümü yayınlandı",
20
+ ];
21
+
22
+ tests.each { |text|
23
+ puts("#{text} => #{Jelegante.japanese?(text)}")
24
+ }
data/jelegante.gemspec ADDED
@@ -0,0 +1,60 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "jelegante"
8
+ s.version = "1.0.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["lpm11"]
12
+ s.date = "2011-10-03"
13
+ s.description = "Guess whether text is japanese or not heuristically."
14
+ s.email = "lpm11r@gmail.com"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".rspec",
22
+ "Gemfile",
23
+ "LICENSE.txt",
24
+ "README.rdoc",
25
+ "Rakefile",
26
+ "VERSION",
27
+ "example/sample1.rb",
28
+ "jelegante.gemspec",
29
+ "lib/jelegante.rb",
30
+ "spec/jelegante_spec.rb",
31
+ "spec/spec_helper.rb"
32
+ ]
33
+ s.homepage = "http://github.com/lpm11/jelegante"
34
+ s.licenses = ["MIT"]
35
+ s.require_paths = ["lib"]
36
+ s.rubygems_version = "1.8.10"
37
+ s.summary = "Guess whether text is japanese or not heuristically."
38
+
39
+ if s.respond_to? :specification_version then
40
+ s.specification_version = 3
41
+
42
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
43
+ s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
44
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
45
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
46
+ s.add_development_dependency(%q<rcov>, [">= 0"])
47
+ else
48
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
49
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
50
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
51
+ s.add_dependency(%q<rcov>, [">= 0"])
52
+ end
53
+ else
54
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
55
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
56
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
57
+ s.add_dependency(%q<rcov>, [">= 0"])
58
+ end
59
+ end
60
+
data/lib/jelegante.rb ADDED
@@ -0,0 +1,213 @@
1
+ #!/bin/env ruby
2
+ #-*- coding: utf-8 -*-
3
+
4
+ class Jelegante
5
+ KANJI_JYOUYOU = %w[
6
+ 亜 哀 愛 悪 握 圧 扱 安 暗 案 以 位 依 偉 囲 委 威 尉 意 慰 易 為 異 移 維
7
+ 緯 胃 衣 違 遺 医 井 域 育 一 壱 逸 稲 芋 印 員 因 姻 引 飲 院 陰 隠 韻 右
8
+ 宇 羽 雨 渦 浦 運 雲 営 影 映 栄 永 泳 英 衛 詠 鋭 液 疫 益 駅 悦 謁 越 閲
9
+ 円 園 宴 延 援 沿 演 炎 煙 猿 縁 遠 鉛 塩 汚 凹 央 奥 往 応 押 横 欧 殴 王
10
+ 翁 黄 沖 億 屋 憶 乙 卸 恩 温 穏 音 下 化 仮 何 価 佳 加 可 夏 嫁 家 寡 科
11
+ 暇 果 架 歌 河 火 禍 稼 箇 花 荷 華 菓 課 貨 過 蚊 我 画 芽 賀 雅 餓 介 会
12
+ 解 回 塊 壊 快 怪 悔 懐 戒 拐 改 械 海 灰 界 皆 絵 開 階 貝 劾 外 害 慨 概
13
+ 涯 街 該 垣 嚇 各 拡 格 核 殻 獲 確 穫 覚 角 較 郭 閣 隔 革 学 岳 楽 額 掛
14
+ 潟 割 喝 括 活 渇 滑 褐 轄 且 株 刈 乾 冠 寒 刊 勘 勧 巻 喚 堪 完 官 寛 干
15
+ 幹 患 感 慣 憾 換 敢 棺 款 歓 汗 漢 環 甘 監 看 管 簡 緩 缶 肝 艦 観 貫 還
16
+ 鑑 間 閑 関 陥 館 丸 含 岸 眼 岩 頑 顔 願 企 危 喜 器 基 奇 寄 岐 希 幾 忌
17
+ 揮 机 旗 既 期 棋 棄 機 帰 気 汽 祈 季 紀 規 記 貴 起 軌 輝 飢 騎 鬼 偽 儀
18
+ 宜 戯 技 擬 欺 犠 疑 義 議 菊 吉 喫 詰 却 客 脚 虐 逆 丘 久 休 及 吸 宮 弓
19
+ 急 救 朽 求 泣 球 究 窮 級 糾 給 旧 牛 去 居 巨 拒 拠 挙 虚 許 距 漁 魚 享
20
+ 京 供 競 共 凶 協 叫 境 峡 強 恐 恭 挟 教 橋 況 狂 狭 矯 胸 脅 興 郷 鏡 響
21
+ 驚 仰 凝 暁 業 局 曲 極 玉 勤 均 斤 琴 禁 筋 緊 菌 襟 謹 近 金 吟 銀 九 句
22
+ 区 苦 駆 具 愚 虞 空 偶 遇 隅 屈 掘 靴 繰 桑 勲 君 薫 訓 群 軍 郡 係 傾 刑
23
+ 兄 啓 型 契 形 径 恵 慶 憩 掲 携 敬 景 渓 系 経 継 茎 蛍 計 警 軽 鶏 芸 迎
24
+ 鯨 劇 撃 激 傑 欠 決 潔 穴 結 血 月 件 倹 健 兼 券 剣 圏 堅 嫌 建 憲 懸 検
25
+ 権 犬 献 研 絹 県 肩 見 謙 賢 軒 遣 険 顕 験 元 原 厳 幻 弦 減 源 玄 現 言
26
+ 限 個 古 呼 固 孤 己 庫 弧 戸 故 枯 湖 誇 雇 顧 鼓 五 互 午 呉 娯 後 御 悟
27
+ 碁 語 誤 護 交 侯 候 光 公 功 効 厚 口 向 后 坑 好 孔 孝 工 巧 幸 広 康 恒
28
+ 慌 抗 拘 控 攻 更 校 構 江 洪 港 溝 甲 皇 硬 稿 紅 絞 綱 耕 考 肯 航 荒 行
29
+ 衡 講 貢 購 郊 酵 鉱 鋼 降 項 香 高 剛 号 合 拷 豪 克 刻 告 国 穀 酷 黒 獄
30
+ 腰 骨 込 今 困 墾 婚 恨 懇 昆 根 混 紺 魂 佐 唆 左 差 査 砂 詐 鎖 座 債 催
31
+ 再 最 妻 宰 彩 才 採 栽 歳 済 災 砕 祭 斎 細 菜 裁 載 際 剤 在 材 罪 財 坂
32
+ 咲 崎 作 削 搾 昨 策 索 錯 桜 冊 刷 察 撮 擦 札 殺 雑 皿 三 傘 参 山 惨 散
33
+ 桟 産 算 蚕 賛 酸 暫 残 仕 伺 使 刺 司 史 嗣 四 士 始 姉 姿 子 市 師 志 思
34
+ 指 支 施 旨 枝 止 死 氏 祉 私 糸 紙 紫 肢 脂 至 視 詞 詩 試 誌 諮 資 賜 雌
35
+ 飼 歯 事 似 侍 児 字 寺 慈 持 時 次 滋 治 璽 磁 示 耳 自 辞 式 識 軸 七 執
36
+ 失 室 湿 漆 疾 質 実 芝 舎 写 射 捨 赦 斜 煮 社 者 謝 車 遮 蛇 邪 借 勺 尺
37
+ 爵 酌 釈 若 寂 弱 主 取 守 手 朱 殊 狩 珠 種 趣 酒 首 儒 受 寿 授 樹 需 囚
38
+ 収 周 宗 就 州 修 愁 拾 秀 秋 終 習 臭 舟 衆 襲 週 酬 集 醜 住 充 十 従 柔
39
+ 汁 渋 獣 縦 重 銃 叔 宿 淑 祝 縮 粛 塾 熟 出 術 述 俊 春 瞬 准 循 旬 殉 準
40
+ 潤 盾 純 巡 遵 順 処 初 所 暑 庶 緒 署 書 諸 助 叙 女 序 徐 除 傷 償 勝 匠
41
+ 升 召 商 唱 奨 宵 将 小 少 尚 床 彰 承 抄 招 掌 昇 昭 晶 松 沼 消 渉 焼 焦
42
+ 照 症 省 硝 礁 祥 称 章 笑 粧 紹 肖 衝 訟 証 詔 詳 象 賞 鐘 障 上 丈 乗 冗
43
+ 剰 城 場 壌 嬢 常 情 条 浄 状 畳 蒸 譲 醸 錠 嘱 飾 植 殖 織 職 色 触 食 辱
44
+ 伸 信 侵 唇 娠 寝 審 心 慎 振 新 森 浸 深 申 真 神 紳 臣 薪 親 診 身 辛 進
45
+ 針 震 人 仁 刃 尋 甚 尽 迅 陣 酢 図 吹 垂 帥 推 水 炊 睡 粋 衰 遂 酔 錘 随
46
+ 髄 崇 数 枢 据 杉 澄 寸 世 瀬 畝 是 制 勢 姓 征 性 成 政 整 星 晴 正 清 牲
47
+ 生 盛 精 聖 声 製 西 誠 誓 請 逝 青 静 斉 税 隻 席 惜 斥 昔 析 石 積 籍 績
48
+ 責 赤 跡 切 拙 接 摂 折 設 窃 節 説 雪 絶 舌 仙 先 千 占 宣 専 川 戦 扇 栓
49
+ 泉 浅 洗 染 潜 旋 線 繊 船 薦 践 選 遷 銭 銑 鮮 前 善 漸 然 全 禅 繕 塑 措
50
+ 疎 礎 祖 租 粗 素 組 訴 阻 僧 創 双 倉 喪 壮 奏 層 想 捜 掃 挿 操 早 曹 巣
51
+ 槽 燥 争 相 窓 総 草 荘 葬 藻 装 走 送 遭 霜 騒 像 増 憎 臓 蔵 贈 造 促 側
52
+ 則 即 息 束 測 足 速 俗 属 賊 族 続 卒 存 孫 尊 損 村 他 多 太 堕 妥 惰 打
53
+ 駄 体 対 耐 帯 待 怠 態 替 泰 滞 胎 袋 貸 退 逮 隊 代 台 大 第 題 滝 卓 宅
54
+ 択 拓 沢 濯 託 濁 諾 但 達 奪 脱 棚 谷 丹 単 嘆 担 探 淡 炭 短 端 胆 誕 鍛
55
+ 団 壇 弾 断 暖 段 男 談 値 知 地 恥 池 痴 稚 置 致 遅 築 畜 竹 蓄 逐 秩 窒
56
+ 茶 嫡 着 中 仲 宙 忠 抽 昼 柱 注 虫 衷 鋳 駐 著 貯 丁 兆 帳 庁 弔 張 彫 徴
57
+ 懲 挑 朝 潮 町 眺 聴 脹 腸 調 超 跳 長 頂 鳥 勅 直 朕 沈 珍 賃 鎮 陳 津 墜
58
+ 追 痛 通 塚 漬 坪 釣 亭 低 停 偵 貞 呈 堤 定 帝 底 庭 廷 弟 抵 提 程 締 艇
59
+ 訂 逓 邸 泥 摘 敵 滴 的 笛 適 哲 徹 撤 迭 鉄 典 天 展 店 添 転 点 伝 殿 田
60
+ 電 吐 塗 徒 斗 渡 登 途 都 努 度 土 奴 怒 倒 党 冬 凍 刀 唐 塔 島 悼 投 搭
61
+ 東 桃 棟 盗 湯 灯 当 痘 等 答 筒 糖 統 到 討 謄 豆 踏 逃 透 陶 頭 騰 闘 働
62
+ 動 同 堂 導 洞 童 胴 道 銅 峠 匿 得 徳 特 督 篤 毒 独 読 凸 突 届 屯 豚 曇
63
+ 鈍 内 縄 南 軟 難 二 尼 弐 肉 日 乳 入 如 尿 任 妊 忍 認 寧 猫 熱 年 念 燃
64
+ 粘 悩 濃 納 能 脳 農 把 覇 波 派 破 婆 馬 俳 廃 拝 排 敗 杯 背 肺 輩 配 倍
65
+ 培 媒 梅 買 売 賠 陪 伯 博 拍 泊 白 舶 薄 迫 漠 爆 縛 麦 箱 肌 畑 八 鉢 発
66
+ 髪 伐 罰 抜 閥 伴 判 半 反 帆 搬 板 版 犯 班 畔 繁 般 藩 販 範 煩 頒 飯 晩
67
+ 番 盤 蛮 卑 否 妃 彼 悲 扉 批 披 比 泌 疲 皮 碑 秘 罷 肥 被 費 避 非 飛 備
68
+ 尾 微 美 鼻 匹 必 筆 姫 百 俵 標 氷 漂 票 表 評 描 病 秒 苗 品 浜 貧 賓 頻
69
+ 敏 瓶 不 付 夫 婦 富 布 府 怖 扶 敷 普 浮 父 符 腐 膚 譜 負 賦 赴 附 侮 武
70
+ 舞 部 封 風 伏 副 復 幅 服 福 腹 複 覆 払 沸 仏 物 分 噴 墳 憤 奮 粉 紛 雰
71
+ 文 聞 丙 併 兵 塀 幣 平 弊 柄 並 閉 陛 米 壁 癖 別 偏 変 片 編 辺 返 遍 便
72
+ 勉 弁 保 舗 捕 歩 補 穂 募 墓 慕 暮 母 簿 倣 俸 包 報 奉 宝 峰 崩 抱 放 方
73
+ 法 泡 砲 縫 胞 芳 褒 訪 豊 邦 飽 乏 亡 傍 剖 坊 妨 帽 忘 忙 房 暴 望 某 棒
74
+ 冒 紡 肪 膨 謀 貿 防 北 僕 墨 撲 朴 牧 没 堀 奔 本 翻 凡 盆 摩 磨 魔 麻 埋
75
+ 妹 枚 毎 幕 膜 又 抹 末 繭 万 慢 満 漫 味 未 魅 岬 密 脈 妙 民 眠 務 夢 無
76
+ 矛 霧 婿 娘 名 命 明 盟 迷 銘 鳴 滅 免 綿 面 模 茂 妄 毛 猛 盲 網 耗 木 黙
77
+ 目 戻 問 紋 門 匁 夜 野 矢 厄 役 約 薬 訳 躍 柳 愉 油 癒 諭 輸 唯 優 勇 友
78
+ 幽 悠 憂 有 猶 由 裕 誘 遊 郵 雄 融 夕 予 余 与 誉 預 幼 容 庸 揚 揺 擁 曜
79
+ 様 洋 溶 用 窯 羊 葉 要 謡 踊 陽 養 抑 欲 浴 翌 翼 羅 裸 来 頼 雷 絡 落 酪
80
+ 乱 卵 欄 濫 覧 利 吏 履 理 痢 裏 里 離 陸 律 率 立 略 流 留 硫 粒 隆 竜 慮
81
+ 旅 虜 了 僚 両 寮 料 涼 猟 療 糧 良 量 陵 領 力 緑 倫 厘 林 臨 輪 隣 塁 涙
82
+ 累 類 令 例 冷 励 礼 鈴 隷 零 霊 麗 齢 暦 歴 列 劣 烈 裂 廉 恋 練 連 錬 炉
83
+ 路 露 労 廊 朗 楼 浪 漏 老 郎 六 録 論 和 話 賄 惑 枠 湾 腕
84
+ ].sort();
85
+
86
+ KANJI_JINMEI = %w[
87
+ 丑 丞 串 乃 之 乎 也 云 亘 亙 些 亦 亥 亨 亮 仔 伊 伎 伍 伽 佃 佑 伶 侃 侑
88
+ 俄 俠 俣 俐 侶 倭 俺 俱 倦 倖 偲 僅 傭 儲 允 兎 兜 其 冥 冴 冶 凄 凌 凜 凛
89
+ 凧 凪 凰 凱 函 刹 劉 劫 勁 勃 勾 匂 勿 匡 廿 卜 卯 卿 厨 厩 叉 叡 叢 叶 只
90
+ 吾 吞 吻 呂 哉 哨 啄 唄 哩 喬 喧 喰 喋 嘩 嘉 嘗 噌 噂 圃 圭 坐 尭 堯 坦 埼
91
+ 埴 堆 堰 堺 堵 塙 塞 塡 壕 壬 夷 奄 奈 奎 套 妖 娃 姪 姥 娩 媛 嬉 孟 宏 宋
92
+ 宛 宕 宥 寅 寓 寵 尖 尤 屑 岡 峨 峻 崖 崚 嵐 嵯 嵩 嶺 巌 巖 已 巳 巴 巷 巽
93
+ 巾 帖 幌 幡 庄 庇 庚 庵 廟 廻 弘 弛 弥 彌 彗 彦 彪 彬 徠 忽 怜 恢 恰 恕 悌
94
+ 惟 惚 悉 惇 惹 惺 惣 慧 憧 憐 戊 或 戚 戟 戴 托 按 拶 拭 挨 拳 捉 挺 挽 掬
95
+ 捲 捷 捺 捻 捧 掠 揃 摑 摺 撒 撰 撞 播 撫 擢 孜 敦 斑 斐 斡 斧 斯 於 旦 旭
96
+ 旺 昂 昊 昏 昌 昧 昴 晏 晃 晄 晒 晋 晟 晦 晨 智 暉 暢 曖 曙 曝 曳 曽 曾 朋
97
+ 朔 杏 杖 杜 李 杭 杵 枕 杷 枇 柑 柴 柵 柿 柘 柊 栃 柏 柾 柚 桧 檜 栞 桔 桂
98
+ 桁 栖 桐 栗 梧 梗 梓 梢 梛 梯 桶 梶 椛 梨 梁 椅 棲 椎 椋 椀 楯 楚 楕 椿 楠
99
+ 楓 椰 楢 楊 榎 樺 榊 榛 槙 槇 槍 槌 樫 槻 樟 樋 橘 樽 橙 檎 檀 櫂 櫛 櫓 欣
100
+ 欽 歎 此 殆 毅 毘 毬 汀 汝 汐 汎 汲 沙 汰 沌 沓 沫 洸 洲 洵 洛 浩 浬 淵 淳
101
+ 渚 渚 淀 淋 渥 湘 湊 湛 湧 溢 滉 溜 漱 漕 漣 澪 濡 瀕 灘 灸 灼 烏 焰 焚 煌
102
+ 煎 煤 煉 熙 熊 燕 燎 燦 燭 燿 爪 爽 爾 牒 牙 牟 牡 牽 犀 狼 猪 猪 獅 玖 玩
103
+ 珂 珈 珊 珀 玲 琢 琢 琉 瑛 琥 琶 琵 琳 瑚 瑞 瑶 瑳 瑠 璃 瓜 瓢 瓦 甥 甫 畏
104
+ 畠 畢 畿 疋 疏 瘦 皐 皓 眉 眸 睦 瞳 瞥 瞭 矩 砦 砥 砧 硯 碓 碗 碩 碧 磐 磯
105
+ 祇 祢 禰 祐 祐 祷 禱 禄 祿 禎 禎 禽 禾 秦 秤 稀 稔 稟 稜 稽 穣 穰 穹 穿 窄
106
+ 窟 窪 窺 竣 竪 竺 竿 笈 笹 笙 笠 筈 筑 箕 箔 箸 篇 篠 簞 簾 籾 粥 粟 糊 紘
107
+ 紗 紐 絃 紬 絆 絢 綺 綜 綴 緋 綾 綸 縞 徽 繫 繡 纂 纏 羚 羨 翔 翠 耀 而 耶
108
+ 耽 聡 肇 肋 肘 肴 胤 胡 脇 脩 腔 腎 膏 膳 臆 臥 臼 舜 舷 舵 艶 芥 芹 芯 芭
109
+ 芙 芦 苑 茄 苔 苺 茅 茉 茨 茸 茜 莞 荻 莫 莉 菅 菫 菖 萄 菩 萌 萠 萊 菱 葦
110
+ 葛 葵 萱 葺 萩 董 葡 蓋 蓑 蒔 蒐 蒼 蒲 蒙 蓉 蓮 蔭 蔣 蔦 蓬 蔓 蕎 蕨 蕉 蕃
111
+ 蕪 蔽 薙 蕾 蕗 藁 薩 藤 藍 蘇 蘭 虎 虹 蜂 蜜 蝦 蝶 螺 蟬 蟹 蠟 衿 袖 袈 袴
112
+ 裡 裾 裟 裳 襖 訊 訣 註 詣 詢 詮 詫 誼 諏 諄 誰 諒 謂 諺 諦 謎 讃 豹 貌 貰
113
+ 貼 賑 赳 跨 蹄 蹟 蹴 輔 輯 輿 轟 辰 辻 迂 迄 辿 迪 迦 這 逞 逗 逢 遥 遙 遁
114
+ 遡 遜 遼 邑 那 祁 郁 鄭 酉 酎 醇 醐 醒 醍 醬 采 釉 釘 釜 釧 鋒 鋸 錦 錐 錆
115
+ 錫 鍋 鍵 鍬 鎧 鎌 閃 閏 閤 闇 阜 阪 阿 陀 隈 隙 隼 雀 雁 雛 雫 霞 靖 鞄 鞍
116
+ 鞘 鞠 鞭 韓 頁 頃 須 頌 頓 頗 頰 顚 颯 餅 饗 馨 馴 馳 駕 駒 駿 驍 魁 魯 鮎
117
+ 鯉 鯛 鰯 鱒 鱗 鳩 鳶 鳳 鴨 鴻 鵜 鵬 鶴 鷗 鷲 鷺 鷹 鹿 麒 麓 麟 麿 黎 黛 鼎
118
+ 亀 亞 惡 爲 逸 榮 衞 謁 圓 緣 薗 應 櫻 奧 橫 溫 價 禍 悔 海 壞 懷 樂 渴 卷
119
+ 陷 寬 漢 氣 祈 器 僞 戲 虛 峽 狹 響 曉 勤 謹 駈 勳 薰 惠 揭 鷄 藝 擊 縣 儉
120
+ 劍 險 圈 檢 顯 驗 嚴 廣 恆 黃 國 黑 穀 碎 雜 祉 視 兒 濕 實 社 者 煮 壽 收
121
+ 臭 從 澁 獸 縱 祝 暑 署 緖 諸 敍 將 祥 涉 燒 奬 條 狀 乘 淨 剩 疊 孃 讓 釀
122
+ 神 眞 寢 愼 盡 粹 醉 穗 瀨 齊 靜 攝 節 專 戰 纖 禪 祖 壯 爭 莊 搜 巢 裝 僧
123
+ 層 騷 增 憎 藏 贈 臟 卽 帶 滯 瀧 單 嘆 團 彈 晝 鑄 著 廳 徵 聽 懲 鎭 轉 傳
124
+ 都 嶋 燈 盜 稻 德 突 難 拜 盃 賣 梅 髮 拔 繁 晚 卑 祕 碑 賓 敏 冨 侮 福 拂
125
+ 佛 勉 步 峯 墨 飜 每 萬 默 埜 藥 與 搖 樣 謠 來 賴 覽 欄 龍 虜 凉 綠 淚 壘
126
+ 類 禮 曆 歷 練 鍊 郞 朗 廊 錄
127
+ ].sort();
128
+
129
+ KANJI_HYOUGAI = %w[
130
+ 啞 唖 蛙 鴉 埃 挨 曖 靄 軋 斡 按 庵 鞍 闇 已 夷 畏 韋 帷 萎 椅 葦 彙 飴 謂
131
+ 閾 溢 鰯 尹 咽 殷 淫 隕 蔭 于 迂 盂 烏 鬱 云 暈 穢 曳 洩 裔 穎 頴 嬰 翳 腋
132
+ 曰 奄 宛 怨 俺 冤 袁 婉 焉 堰 淵 焰 筵 厭 鳶 燕 閻 嚥 嗚 凰 嘔 鴨 甕 襖 謳
133
+ 鶯 鷗 鴎 鸚 臆 俤 瓜 呵 苛 珂 迦 訛 訶 跏 嘩 瑕 榎 窩 蝦 蝸 鍋 顆 牙 瓦 臥
134
+ 俄 峨 訝 蛾 衙 駕 芥 乖 廻 徊 恢 晦 堺 潰 鞋 諧 檜 蟹 咳 崖 蓋 漑 骸 鎧 喀
135
+ 廓 摑 攪 撹 愕 萼 諤 顎 鰐 樫 絣 筈 葛 闊 鰹 萱 奸 串 旱 函 咸 姦 宦 柑 竿
136
+ 悍 桓 涵 菅 嵌 鉗 澗 翰 諫 瞰 韓 檻 灌 玩 雁 翫 頷 癌 贋 几 卉 其 祁 耆 埼
137
+ 悸 揆 毀 箕 畿 窺 諱 徽 櫃 妓 祇 魏 蟻 掬 麴 麹 吃 屹 拮 謔 仇 臼 汲 灸 咎
138
+ 邱 柩 笈 躬 厩 嗅 舅 炬 渠 裾 噓 墟 鋸 遽 欅 匈 怯 俠 脇 莢 竟 卿 僑 嬌 蕎
139
+ 鋏 頰 橿 疆 饗 棘 髷 巾 僅 禽 饉 狗 惧 軀 懼 俱 喰 寓 窟 粂 偈 荊 珪 畦 脛
140
+ 頃 痙 詣 禊 閨 稽 頸 髻 蹊 鮭 繫 睨 戟 隙 抉 頁 訣 蕨 姸 倦 虔 捲 牽 喧 硯
141
+ 腱 鍵 瞼 鹼 鹸 呟 眩 舷 諺 乎 姑 狐 股 涸 菰 袴 壺 跨 糊 醐 齬 亢 勾 叩 尻
142
+ 吼 肛 岡 庚 杭 肴 咬 垢 巷 恍 恰 狡 桁 胱 崗 梗 喉 腔 蛤 幌 煌 鉤 敲 睾 膏
143
+ 閤 膠 篝 縞 薨 糠 藁 鮫 壙 曠 劫 毫 傲 壕 濠 嚙 噛 轟 剋 哭 鵠 乞 忽 惚 昏
144
+ 痕 渾 褌 叉 些 嗟 蓑 磋 坐 挫 晒 柴 砦 犀 賽 鰓 榊 柵 炸 窄 簀 刹 拶 紮 撒
145
+ 薩 珊 餐 纂 霰 攢 讃 斬 懺 仔 弛 此 址 祀 屍 屎 柿 茨 恣 砥 祠 翅 舐 疵 趾
146
+ 斯 覗 嗜 滓 獅 幟 摯 嘴 熾 髭 贄 而 峙 痔 餌 竺 雫 𠮟 悉 蛭 嫉 膝 櫛 柘 洒
147
+ 娑 這 奢 闍 杓 灼 綽 錫 雀 惹 娶 腫 諏 鬚 呪 竪 綬 聚 濡 襦 帚 酋 袖 羞 葺
148
+ 蒐 箒 皺 輯 鍬 繡 繍 蹴 讐 鷲 廿 揉 絨 粥 戌 閏 楯 馴 杵 薯 藷 汝 抒 鋤 妾
149
+ 哨 秤 娼 逍 廂 椒 湘 竦 鈔 睫 蛸 鉦 摺 蔣 蒋 裳 誦 漿 蕭 踵 鞘 篠 聳 鍾 醬
150
+ 醤 囁 杖 茸 嘗 擾 攘 饒 拭 埴 蜀 蝕 燭 褥 沁 芯 呻 宸 疹 蜃 滲 賑 鍼 壬 訊
151
+ 腎 靱 塵 儘 笥 祟 膵 誰 錐 雖 隋 隧 芻 趨 鮨 丼 凄 栖 棲 甥 貰 蜻 醒 錆 臍
152
+ 瀞 鯖 脆 贅 脊 戚 晰 蹟 泄 屑 浙 啜 楔 截 尖 苫 穿 閃 陝 釧 揃 煎 羨 腺 詮
153
+ 煽 箋 撰 箭 賤 蟬 癬 喘 膳 狙 疽 疏 甦 楚 鼠 遡 蘇 齟 爪 宋 炒 叟 蚤 曾 曽
154
+ 湊 葱 搔 掻 槍 漕 箏 噌 瘡 瘦 痩 踪 艘 薔 甑 叢 藪 躁 囃 竈 鰺 仄 捉 塞 粟
155
+ 杣 遜 噂 樽 鱒 侘 咤 詫 陀 拿 荼 唾 舵 楕 驒 苔 殆 堆 碓 腿 頽 戴 醍 托 鐸
156
+ 凧 襷 燵 坦 疸 耽 啖 蛋 毯 湛 痰 綻 憚 歎 簞 譚 灘 雉 馳 蜘 緻 筑 膣 肘 冑
157
+ 紐 酎 厨 蛛 註 誅 疇 躊 佇 楮 箸 儲 瀦 躇 吊 帖 喋 貼 牒 趙 銚 嘲 諜 寵 捗
158
+ 枕 槌 鎚 辻 剃 挺 釘 掟 梯 逞 啼 碇 鼎 綴 鄭 薙 諦 蹄 鵜 荻 擢 溺 姪 轍 辿
159
+ 唸 塡 篆 顚 囀 纏 佃 淀 澱 臀 兎 妬 兜 堵 屠 賭 宕 沓 套 疼 桶 淘 萄 逗 棹
160
+ 樋 蕩 鄧 橙 濤 檮 櫂 禱 祷 撞 禿 瀆 栃 咄 沌 遁 頓 吞 貪 邇 匂 韮 涅 禰 捏
161
+ 捻 撚 膿 囊 杷 爬 琶 頗 播 芭 罵 蟇 胚 徘 牌 稗 狽 煤 帛 柏 剝 粕 箔 莫 駁
162
+ 瀑 曝 畠 捌 撥 潑 醱 筏 跋 噺 氾 汎 阪 叛 袢 絆 斑 槃 幡 攀 挽 磐 蕃 屁 庇
163
+ 砒 脾 痺 鄙 誹 臂 枇 毘 梶 媚 琵 薇 靡 疋 畢 逼 謬 豹 憑 瓢 屛 屏 廟 牝 瀕
164
+ 憫 鬢 斧 阜 訃 俯 釜 腑 孵 鮒 巫 葡 撫 蕪 諷 祓 吻 扮 焚 糞 幷 并 聘 蔽 餅
165
+ 斃 袂 僻 璧 襞 蔑 瞥 扁 篇 騙 娩 鞭 哺 圃 蒲 戊 牡 姥 菩 呆 彷 庖 苞 疱 捧
166
+ 逢 蜂 蓬 鞄 鋒 牟 芒 茫 虻 榜 膀 貌 鉾 謗 吠 卜 勃 梵 昧 邁 枡 桝 俣 沫 迄
167
+ 曼 蔓 瞞 饅 鬘 鰻 蜜 鵡 冥 瞑 謎 麵 麺 蒙 朦 勿 籾 悶 揶 爺 鑓 喩 揄 愈 楡
168
+ 尤 釉 楢 猷 飫 輿 孕 妖 拗 涌 痒 傭 熔 瘍 蠅 沃 螺 萊 蕾 洛 埒 拉 辣 瀾 爛
169
+ 鸞 狸 裡 罹 籬 戮 慄 掠 笠 溜 榴 劉 瘤 侶 梁 聊 菱 寥 蓼 淋 燐 鱗 屢 蛉 蠣
170
+ 櫟 礫 轢 煉 漣 憐 簾 鰊 攣 賂 魯 濾 沪 廬 櫓 蘆 芦 鷺 弄 牢 狼 榔 瘻 﨟 臘
171
+ 朧 蠟 蝋 籠 聾 肋 勒 漉 麓 窪 歪 猥 隈 或 罠 椀 碗 彎 弯 唖 啞 頴 穎 鴎 鷗
172
+ 撹 攪 麹 麴 鹸 鹼 噛 嚙 繍 繡 蒋 蔣 醤 醬 曽 曾 掻 搔 痩 瘦 祷 禱 屏 屛 并
173
+ 幷 桝 枡 麺 麵 沪 濾 芦 蘆 蝋 蠟 弯 彎
174
+ ].sort();
175
+
176
+ CHARACTERS_HIRAGANA = "\\p{Hiragana}";
177
+ CHARACTERS_KATAKANA = "\\p{Katakana}";
178
+ CHARACTERS_KANJI = "\\u{4E00}-\\u{9FFF}\\u{3400}-\\u{4DBF}\\u{20000}-\\u{2A6DF}\\u{2A700}-\\u{2B73F}\\u{F900}-\\u{FAFF}"
179
+ CHARACTERS_JYOUYOU = "#{KANJI_JYOUYOU.join('')}";
180
+ CHARACTERS_JINMEI = "#{KANJI_JINMEI.join('')}";
181
+ CHARACTERS_HYOUGAI = "#{KANJI_HYOUGAI.join('')}";
182
+ CHARACTERS_POPULAR_KANJI = "#{CHARACTERS_JYOUYOU}#{CHARACTERS_JINMEI}#{CHARACTERS_HYOUGAI}"
183
+
184
+ REGEX_HIRAGANA = /[#{CHARACTERS_HIRAGANA}]/;
185
+ REGEX_KATAKANA = /[#{CHARACTERS_KATAKANA}]/;
186
+ REGEX_KANJI = /[#{CHARACTERS_KANJI}]/;
187
+ REGEX_POPULAR_KANJI = /[#{CHARACTERS_POPULAR_KANJI}]/;
188
+
189
+ REGEX_NO_KANJI = /[^#{CHARACTERS_KANJI}]/;
190
+ REGEX_NO_POPULAR_KANJI = /[^#{CHARACTERS_POPULAR_KANJI}]/;
191
+
192
+ def self.include_hiragana?(text)
193
+ return !(REGEX_HIRAGANA.match(text).nil?);
194
+ end
195
+ def self.include_katakana?(text)
196
+ return !(REGEX_KATAKANA.match(text).nil?);
197
+ end
198
+ def self.include_kanji?(text)
199
+ return !(REGEX_KANJI.match(text).nil?);
200
+ end
201
+ def self.include_popular_kanji?(text)
202
+ return !(REGEX_POPULAR_KANJI.match(text).nil?);
203
+ end
204
+
205
+ # 簡易日本語判定
206
+ # ・ひらがな、カタカナを含む
207
+ # ・漢字を含むが、常用漢字・人名漢字・表外漢字以外の漢字を含まない
208
+ def self.japanese?(text)
209
+ return true if (self.include_hiragana?(text) || self.include_katakana?(text));
210
+ return true if (text.gsub(REGEX_NO_KANJI,"") =~ /^[#{CHARACTERS_POPULAR_KANJI}]+$/);
211
+ return false;
212
+ end
213
+ end
@@ -0,0 +1,7 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Jelegante" do
4
+ it "fails" do
5
+ fail "hey buddy, you should probably rename this file and start specing for real"
6
+ end
7
+ end
@@ -0,0 +1,12 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'rspec'
4
+ require 'jelegante'
5
+
6
+ # Requires supporting files with custom matchers and macros, etc,
7
+ # in ./support/ and its subdirectories.
8
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
+
10
+ RSpec.configure do |config|
11
+
12
+ end
metadata ADDED
@@ -0,0 +1,112 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jelegante
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 1.0.1
6
+ platform: ruby
7
+ authors:
8
+ - lpm11
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-10-03 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rspec
17
+ requirement: &id001 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: 2.3.0
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
27
+ name: bundler
28
+ requirement: &id002 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 1.0.0
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
38
+ name: jeweler
39
+ requirement: &id003 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ version: 1.6.4
45
+ type: :development
46
+ prerelease: false
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
49
+ name: rcov
50
+ requirement: &id004 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: "0"
56
+ type: :development
57
+ prerelease: false
58
+ version_requirements: *id004
59
+ description: Guess whether text is japanese or not heuristically.
60
+ email: lpm11r@gmail.com
61
+ executables: []
62
+
63
+ extensions: []
64
+
65
+ extra_rdoc_files:
66
+ - LICENSE.txt
67
+ - README.rdoc
68
+ files:
69
+ - .document
70
+ - .rspec
71
+ - Gemfile
72
+ - LICENSE.txt
73
+ - README.rdoc
74
+ - Rakefile
75
+ - VERSION
76
+ - example/sample1.rb
77
+ - jelegante.gemspec
78
+ - lib/jelegante.rb
79
+ - spec/jelegante_spec.rb
80
+ - spec/spec_helper.rb
81
+ homepage: http://github.com/lpm11/jelegante
82
+ licenses:
83
+ - MIT
84
+ post_install_message:
85
+ rdoc_options: []
86
+
87
+ require_paths:
88
+ - lib
89
+ required_ruby_version: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ hash: -2642319369464897638
95
+ segments:
96
+ - 0
97
+ version: "0"
98
+ required_rubygems_version: !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: "0"
104
+ requirements: []
105
+
106
+ rubyforge_project:
107
+ rubygems_version: 1.8.10
108
+ signing_key:
109
+ specification_version: 3
110
+ summary: Guess whether text is japanese or not heuristically.
111
+ test_files: []
112
+