Class: FortranSequentialWriter

Inherits:
FortranSequential show all
Defined in:
ext/fortio/lib/fortio/fortran_sequential.rb

Constant Summary

Constants inherited from FortranSequential

FortranSequential::ENDIAN, FortranSequential::FMT_NET, FortranSequential::FMT_VAX

Instance Method Summary collapse

Methods inherited from FortranSequential

#eof?, #get_pack_fmt, open

Constructor Details

#initialize(io, opt = {:endian=>nil}) ⇒ FortranSequentialWriter

Returns a new instance of FortranSequentialWriter.



310
311
312
313
314
# File 'ext/fortio/lib/fortio/fortran_sequential.rb', line 310

def initialize (io, opt={:endian=>nil})
  @io = io
  @endian = opt[:endian] || ENDIAN
  @fmt = get_pack_fmt(@endian)
end

Instance Method Details

#closeObject



337
338
339
# File 'ext/fortio/lib/fortio/fortran_sequential.rb', line 337

def close
  @io.close
end

#recordObject



316
317
318
319
320
321
322
323
# File 'ext/fortio/lib/fortio/fortran_sequential.rb', line 316

def record
  rec = FortranSequential::Record.new("", @endian, @fmt)
  if block_given?
    return yield(rec)
  else
    return rec
  end
end

#write(data) ⇒ Object



325
326
327
328
329
330
331
332
333
334
335
# File 'ext/fortio/lib/fortio/fortran_sequential.rb', line 325

def write (data)
  if data.respond_to?(:to_s)
    data = data.to_s
  end
  if RUBY_VERSION.to_f >= 1.9
    data = data.force_encoding("ASCII-8BIT")
  end
  @io.write [data.length].pack(@fmt["l"])
  @io.write data
  @io.write [data.length].pack(@fmt["l"])
end