Class: OCI8::NamedType

Inherits:
Object show all
Defined in:
lib/oci8/object.rb

Instance Method Summary collapse

Instance Method Details

#attributesObject



506
507
508
509
510
511
512
513
514
# File 'lib/oci8/object.rb', line 506

def attributes
  attrs = {}
  tdo.attributes.each do |attr|
    attr_val = get_attribute(attr.datatype, attr.typeinfo, attr.val_offset, attr.ind_offset)
    attr_val = attr.get_proc.call(attr_val) if attr.get_proc
    attrs[attr.name] = attr_val
  end
  attrs
end

#attributes=(obj) ⇒ Object



516
517
518
519
520
521
522
523
524
525
526
527
528
# File 'lib/oci8/object.rb', line 516

def attributes=(obj)
  if obj.nil?
    self.null = true
  else
    obj = obj.instance_variable_get(:@attributes) unless obj.is_a? Hash
    tdo.attributes.each do |attr|
      attr_val = obj[attr.name]
      attr_val = attr.set_proc.call(attr_val) if attr.set_proc
      set_attribute(attr.datatype, attr.typeinfo, attr.val_offset, attr.ind_offset, attr_val)
    end
    self.null = false
  end
end

#to_valueObject



499
500
501
502
503
504
# File 'lib/oci8/object.rb', line 499

def to_value
  return nil if self.null?
  obj = tdo.ruby_class.new
  obj.instance_variable_set(:@attributes, self.attributes)
  obj
end