source: EcnlProtoTool/trunk/asp3_dcre/cfg/GenFile.rb@ 270

Last change on this file since 270 was 270, checked in by coas-nagasima, 7 years ago

mruby版ECNLプロトタイピング・ツールを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-ruby
File size: 4.3 KB
Line 
1# -*- coding: utf-8 -*-
2#
3# TOPPERS Configurator by Ruby
4#
5# Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
6# Graduate School of Information Science, Nagoya Univ., JAPAN
7# Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
8# Copyright (C) 2016 by APTJ Co., Ltd., JAPAN
9#
10# 上記著作権者
11は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
12# ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
13# 変・再é…
14å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
15# (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
16# 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
17# スコード中に含まれていること.
18# (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
19# 用できる形で再é…
20å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
21å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
22# 者
23マニュアルなど)に,上記の著作権表示,この利用条件および下記
24# の無保証規定を掲載すること.
25# (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
26# 用できない形で再é…
27å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
28# と.
29# (a) 再é…
30å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
31マニュアルなど)に,上記の著
32# 作権表示,この利用条件および下記の無保証規定を掲載すること.
33# (b) 再é…
34å¸ƒã®å½¢æ…
35‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
36# 報告すること.
37# (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
38# 害からも,上記著作権者
39およびTOPPERSプロジェクトをå…
40è²¬ã™ã‚‹ã“と.
41# また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
42# 由に基づく請求からも,上記著作権者
43およびTOPPERSプロジェクトを
44# å…
45è²¬ã™ã‚‹ã“と.
46#
47# 本ソフトウェアは,無保証で提供されているものである.上記著作権者
48お
49# よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
50# に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
51# アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
52# の責任を負わない.
53#
54# $Id: GenFile.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
55#
56
57#
58# ファイル作成クラス
59#
60
61#
62# ファイルに書こうとした内
63容を変数に蓄積し,プログラムの終了時(output
64# メソッドが呼ばれた時)にファイルに出力する.既にファイルが存在し,差
65# 分がない場合は出力しない(タイムスタンプを更新しない).
66#
67class GenFile
68 @@fileDataHash = {}
69
70 def initialize(fileName)
71 @selfFileName = fileName
72 if !@@fileDataHash.has_key?(fileName)
73 @@fileDataHash[@selfFileName] = ""
74 end
75 end
76
77 # ファイルデータの末尾に文字列を追加する
78 def append(code = "")
79 @@fileDataHash[@selfFileName] << code
80 end
81
82 # ファイルデータに1行追加する
83 def add(code = "")
84 @@fileDataHash[@selfFileName] << code << "\n"
85 end
86
87 # ファイルデータに1行追加する(改行2回)
88 def add2(code = "")
89 add(code + "\n")
90 end
91
92 # コメントヘッダを追加する
93 def comment_header(comment)
94 add("/*")
95 comment.split("\n").each do |sLine|
96 add(" * " + sLine)
97 end
98 add2(" */")
99 end
100
101 # ファイルデータを表示する
102 def print()
103 puts(@@fileDataHash[@selfFileName])
104 end
105
106 # å…
107¨ãƒ•ã‚¡ã‚¤ãƒ«ã‚’出力する
108 def self.output()
109 @@fileDataHash.each do |fileName, fileData|
110 # 既にファイルが存在し,差分がない場合は出力しない
111 #(タイムスタンプを更新しない)
112 if File.exist?(fileName)
113 if fileData == File.read(fileName)
114 next
115 end
116 end
117 File.open(fileName, "w") do |file|
118 puts("[#{File.basename($0)}] Generated #{fileName}")
119 file.puts(fileData)
120 end
121 end
122 end
123end
Note: See TracBrowser for help on using the repository browser.