Class: LibBin::DataConverter::Scalar

Inherits:
Object
  • Object
show all
Defined in:
lib/libbin/data_types.rb

Direct Known Subclasses

Str

Class Method Summary collapse

Class Method Details

.convert(input, output, input_big = LibBin::default_big?, output_big = !input_big,, _ = nil, _ = nil, length = nil) ⇒ Object



379
380
381
382
383
384
385
386
# File 'lib/libbin/data_types.rb', line 379

def self.convert(input, output, input_big = LibBin::default_big?, output_big = !input_big, _ = nil, _ = nil, length = nil)
  l = (length ? length : 1)
  str = input.read(@size*l)
  value = (input_big ? @rl_be[str, length] : @rl_le[str, length])
  str = (output_big ? @sl_be[value, length] : @sl_le[value, length])
  output.write(str)
  value
end

.dump(value, output, output_big = LibBin::default_big?, _ = nil, _ = nil, length = nil) ⇒ Object



374
375
376
377
# File 'lib/libbin/data_types.rb', line 374

def self.dump(value, output, output_big = LibBin::default_big?, _ = nil, _ = nil, length = nil)
  str = (output_big ? @sl_be[value, length] : @sl_le[value, length])
  output.write(str)
end

.init(symbol) ⇒ Object



361
362
363
364
365
366
# File 'lib/libbin/data_types.rb', line 361

def self.init(symbol)
  @symbol = symbol
  @size = DATA_SIZES[symbol]
  @rl_be, @sl_be = DATA_ENDIAN[true][symbol]
  @rl_le, @sl_le = DATA_ENDIAN[false][symbol]
end

.load(input, input_big = LibBin::default_big?, _ = nil, _ = nil, length = nil) ⇒ Object



368
369
370
371
372
# File 'lib/libbin/data_types.rb', line 368

def self.load(input, input_big = LibBin::default_big?, _ = nil, _ = nil, length = nil)
  l = (length ? length : 1)
  str = input.read(@size*l)
  input_big ? @rl_be[str, length] : @rl_le[str, length]
end

.shape(value, previous_offset = 0, _ = nil, _ = nil, kind = DataShape, length = nil) ⇒ Object



356
357
358
359
# File 'lib/libbin/data_types.rb', line 356

def self.shape(value, previous_offset = 0, _ = nil, _ = nil, kind = DataShape, length = nil)
  length = 1 unless length
  kind::new(previous_offset, previous_offset - 1 + length * @size)
end

.size(*args) ⇒ Object



352
353
354
# File 'lib/libbin/data_types.rb', line 352

def self.size(*args)
  @size
end