lib/template.rb in narou-1.7.0 vs lib/template.rb in narou-1.7.1
- old
+ new
@@ -1,74 +1,74 @@
-# -*- coding: utf-8 -*-
-#
-# Copyright 2013 whiteleaf. All rights reserved.
-#
-
-require "erb"
-require_relative "narou"
-
-class Template
- TEMPLATE_DIR = "template/"
-
- class LoadError < StandardError; end
-
- #
- # テンプレートを元にファイルを作成
- #
- # src_filename 読み込みたいテンプレートファイル名(.erb は省略する)
- # dest_filepath 保存先ファイルパス。ディレクトリならファイル名はsrcと同じ名前で保存する
- # _binding 変数とか設定したいスコープの binding 変数を渡す
- # overwrite 上書きするか
- #
- def self.write(src_filename, dest_filepath, _binding, overwrite = false)
- if File.directory?(dest_filepath)
- dest_filepath = File.join(dest_filepath, src_filename)
- end
- unless overwrite
- return if File.exist?(dest_filepath)
- end
- result = get(src_filename, _binding) or return nil
- if Helper.os_windows?
- File.write(dest_filepath, result)
- else
- File.binwrite(dest_filepath, result.lstrip)
- end
- end
-
- #
- # テンプレートを元にデータを作成
- #
- # テンプレートファイルの検索順位
- # 1. root_dir/template
- # 2. script_dir/template
- #
- def self.get(src_filename, _binding, binary_version = 1.0)
- @@binary_version = binary_version
- @@src_filename = src_filename
- [Narou.get_root_dir, Narou.get_script_dir].each do |dir|
- path = File.join(dir, TEMPLATE_DIR, src_filename + ".erb")
- next unless File.exist?(path)
- src = open(path, "r:BOM|UTF-8") { |fp| fp.read }
- result = ERB.new(src, nil, "-").result(_binding)
- return result
- end
- raise LoadError, "テンプレートファイルが見つかりません。(#{src_filename}.erb)"
- end
-
- def self.invalid_templace_version?
- @@src_version < @@binary_version
- end
-
- #
- # 書かれているテンプレートがどのバージョンのテンプレートかを設定
- #
- # テンプレート内部で使われる変数の変更があった場合に binary_version が上がる
- # (変数の追加ではバージョンは上がらない。現在使われている変数の中身が変わった場合は上る)
- #
- def self.target_binary_version(version)
- @@src_version = version
- if invalid_templace_version?
- error "テンプレートのバージョンが古いので意図しない動作をする可能性があります\n" +
- "(#{@@src_filename}.erb ver #{version.to_f} < #{@@binary_version.to_f})"
- end
- end
-end
+# -*- coding: utf-8 -*-
+#
+# Copyright 2013 whiteleaf. All rights reserved.
+#
+
+require "erb"
+require_relative "narou"
+
+class Template
+ TEMPLATE_DIR = "template/"
+
+ class LoadError < StandardError; end
+
+ #
+ # テンプレートを元にファイルを作成
+ #
+ # src_filename 読み込みたいテンプレートファイル名(.erb は省略する)
+ # dest_filepath 保存先ファイルパス。ディレクトリならファイル名はsrcと同じ名前で保存する
+ # _binding 変数とか設定したいスコープの binding 変数を渡す
+ # overwrite 上書きするか
+ #
+ def self.write(src_filename, dest_filepath, _binding, overwrite = false)
+ if File.directory?(dest_filepath)
+ dest_filepath = File.join(dest_filepath, src_filename)
+ end
+ unless overwrite
+ return if File.exist?(dest_filepath)
+ end
+ result = get(src_filename, _binding) or return nil
+ if Helper.os_windows?
+ File.write(dest_filepath, result)
+ else
+ File.binwrite(dest_filepath, result.lstrip)
+ end
+ end
+
+ #
+ # テンプレートを元にデータを作成
+ #
+ # テンプレートファイルの検索順位
+ # 1. root_dir/template
+ # 2. script_dir/template
+ #
+ def self.get(src_filename, _binding, binary_version = 1.0)
+ @@binary_version = binary_version
+ @@src_filename = src_filename
+ [Narou.get_root_dir, Narou.get_script_dir].each do |dir|
+ path = File.join(dir, TEMPLATE_DIR, src_filename + ".erb")
+ next unless File.exist?(path)
+ src = open(path, "r:BOM|UTF-8") { |fp| fp.read }
+ result = ERB.new(src, nil, "-").result(_binding)
+ return result
+ end
+ raise LoadError, "テンプレートファイルが見つかりません。(#{src_filename}.erb)"
+ end
+
+ def self.invalid_templace_version?
+ @@src_version < @@binary_version
+ end
+
+ #
+ # 書かれているテンプレートがどのバージョンのテンプレートかを設定
+ #
+ # テンプレート内部で使われる変数の変更があった場合に binary_version が上がる
+ # (変数の追加ではバージョンは上がらない。現在使われている変数の中身が変わった場合は上る)
+ #
+ def self.target_binary_version(version)
+ @@src_version = version
+ if invalid_templace_version?
+ error "テンプレートのバージョンが古いので意図しない動作をする可能性があります\n" +
+ "(#{@@src_filename}.erb ver #{version.to_f} < #{@@binary_version.to_f})"
+ end
+ end
+end