Module: Jkf
- Defined in:
- lib/jkf.rb,
lib/jkf/parser.rb,
lib/jkf/version.rb,
lib/jkf/converter.rb,
lib/jkf/parser/csa.rb,
lib/jkf/parser/ki2.rb,
lib/jkf/parser/kif.rb,
lib/jkf/parser/base.rb,
lib/jkf/converter/csa.rb,
lib/jkf/converter/ki2.rb,
lib/jkf/converter/kif.rb,
lib/jkf/converter/base.rb,
lib/jkf/parser/kifuable.rb,
lib/jkf/converter/kifuable.rb
Overview
JSON Kifu Format
Defined Under Namespace
Modules: Converter, Parser Classes: FileTypeError
Constant Summary collapse
- VERSION =
'0.5.3'
Class Method Summary collapse
-
.parse(str) ⇒ Hash
文字列からパースします。各パーサでパースに試みて成功した場合結果を返します。.
-
.parse_file(filename, encoding: 'Shift_JIS') ⇒ String
ファイルからパースします。拡張子でフォーマットの判定をします。.
Class Method Details
.parse(str) ⇒ Hash
文字列からパースします。各パーサでパースに試みて成功した場合結果を返します。
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/jkf.rb', line 39 def parse(str) parsers = [::Jkf::Parser::Kif.new, ::Jkf::Parser::Ki2.new, ::Jkf::Parser::Csa.new, JSON] result = nil parsers.each do |parser| begin result = parser.parse(str) rescue StandardError next end break end raise FileTypeError if result.nil? result end |
.parse_file(filename, encoding: 'Shift_JIS') ⇒ String
ファイルからパースします。拡張子でフォーマットの判定をします。
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/jkf.rb', line 17 def parse_file(filename, encoding: 'Shift_JIS') parser = case ::File.extname(filename) when /kif/ ::Jkf::Parser::Kif.new when /ki2/ ::Jkf::Parser::Ki2.new when /csa/ ::Jkf::Parser::Csa.new when /jkf|json/ JSON else raise FileTypeError end str = File.read(File.(filename), encoding: encoding).toutf8 parser.parse(str) end |