Class: ModpackLocalizer::SNBT::Writer
- Inherits:
-
Object
- Object
- ModpackLocalizer::SNBT::Writer
- Includes:
- IndentHelper
- Defined in:
- lib/modpack_localizer/snbt/writer.rb
Overview
.snbtファイルの翻訳された内容を整形して出力するクラス
Instance Method Summary collapse
- #initialize(file_path) ⇒ ModpackLocalizer::SNBT::Writer constructor
-
#overwrites(translated_contents) ⇒ void
翻訳された内容でoutput_file_pathを上書きする.
Methods included from IndentHelper
#count_indent, #create_indent, #middle_indent
Constructor Details
#initialize(file_path) ⇒ ModpackLocalizer::SNBT::Writer
13 14 15 16 17 18 |
# File 'lib/modpack_localizer/snbt/writer.rb', line 13 def initialize(file_path) @input_file_path = file_path # questsとすると、quests.snbtも変換されてしまうので、quests/とする @output_file_path = file_path.gsub("quests/", "output/quests/") @formatter = ModpackLocalizer::SNBT::Formatter.new end |
Instance Method Details
#overwrites(translated_contents) ⇒ void
This method returns an undefined value.
翻訳された内容でoutput_file_pathを上書きする
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/modpack_localizer/snbt/writer.rb', line 24 def overwrites(translated_contents) # ディレクトリが存在しない場合は作成 FileUtils.mkdir_p(File.dirname(@output_file_path)) # 一度上書きしている場合は上書き後のファイルを読み込む # 常に上書き前のファイルを読み込むと、前回の上書きが消えてしまう lines = File.readlines(first_overwrite? ? @input_file_path : @output_file_path) formatted_lines = overwrite_lines(lines, translated_contents) File.open(@output_file_path, "w") do |file| file.puts formatted_lines end handle_line_count_error(@output_file_path, lines.length) end |