Sha256: 8608a9bef5baded41bd8d880a7bec974fad61c537447b0610fbe3b6e97525061
Contents?: true
Size: 881 Bytes
Versions: 9
Compression:
Stored size: 881 Bytes
Contents
# frozen-string-literal: true module Bioshogi module Parser extend self # 担当するクラス def accepted_class(source) source = Source.wrap(source) support_parsers.find { |e| e.accept?(source) } end # 棋譜ファイルのコンテンツを読み込む def parse(source, options = {}) source = Source.wrap(source) parser = accepted_class(source) unless parser raise FileFormatError, "棋譜のフォーマットが不明です : #{source}" end parser.parse(source, options) end # 棋譜ファイル自体を読み込む def file_parse(file, options = {}) parse(Pathname(file).expand_path.read, options) end private def support_parsers [ SfenParser, KifParser, CsaParser, Ki2Parser, BodParser, ] end end end
Version data entries
9 entries across 9 versions & 1 rubygems