Class: TaskJuggler::TextParser::Scanner::FileStreamHandle
- Inherits:
-
StreamHandle
- Object
- StreamHandle
- TaskJuggler::TextParser::Scanner::FileStreamHandle
- Defined in:
- lib/taskjuggler/TextParser/Scanner.rb
Overview
Specialized version of StreamHandle for operations on files.
Instance Attribute Summary collapse
-
#fileName ⇒ Object
readonly
Returns the value of attribute fileName.
Attributes inherited from StreamHandle
Instance Method Summary collapse
- #close ⇒ Object
-
#initialize(fileName, log, textScanner) ⇒ FileStreamHandle
constructor
A new instance of FileStreamHandle.
Methods inherited from StreamHandle
#cleanupMacroStack, #dirname, #eof?, #error, #injectMacro, #injectText, #line, #lineNo, #peek, #readyNextLine, #scan
Constructor Details
#initialize(fileName, log, textScanner) ⇒ FileStreamHandle
Returns a new instance of FileStreamHandle.
170 171 172 173 174 175 176 177 178 179 180 181 |
# File 'lib/taskjuggler/TextParser/Scanner.rb', line 170 def initialize(fileName, log, textScanner) super(log, textScanner) @fileName = fileName.dup.untaint data = (fileName == '.' ? $stdin : File.new(@fileName, 'r')).read begin @stream = StringIO.new(data.forceUTF8Encoding) rescue error('fileEncoding', $!.) end @log.msg { "Parsing file #{@fileName} ..." } @log.startProgressMeter("Reading file #{fileName}") end |
Instance Attribute Details
#fileName ⇒ Object (readonly)
Returns the value of attribute fileName.
168 169 170 |
# File 'lib/taskjuggler/TextParser/Scanner.rb', line 168 def fileName @fileName end |
Instance Method Details
#close ⇒ Object
183 184 185 186 |
# File 'lib/taskjuggler/TextParser/Scanner.rb', line 183 def close @stream.close unless @stream == $stdin super end |