module Jkf

JSON Kifu Format

Constants

VERSION

Gem version

Public Class Methods

parse(str) click to toggle source

文字列からパースします。各パーサでパースに試みて成功した場合結果を返します。

@param [String] str

@return [Hash] JKF

# 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
      next
    end
    break
  end
  raise FileTypeError if result.nil?
  result
end
parse_file(filename, encoding: "Shift_JIS") click to toggle source

ファイルからパースします。拡張子でフォーマットの判定をします。

@param [String] filename

@return [String] KIF, KI2, CSA, JKF(JSON)

# 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.expand_path(filename), encoding: encoding).toutf8
  parser.parse(str)
end