module RType::Helper::RObjDelegatable

Public Class Methods

included(klass) click to toggle source
# File lib/r_type/helper/robj_delegatable.rb, line 10
def self.included(klass)
  klass.extend ClassMethods
end

Public Instance Methods

==(obj) click to toggle source
Calls superclass method
# File lib/r_type/helper/robj_delegatable.rb, line 52
def == obj
  if obj.is_a?(RObjDelegatable)
    self.robj == obj.robj || !!R['identical'].call(self, obj)
  else
    super
  end
end
__getobj__() click to toggle source
# File lib/r_type/helper/robj_delegatable.rb, line 14
def __getobj__
  to_ruby
end
as_r() click to toggle source
# File lib/r_type/helper/robj_delegatable.rb, line 40
def as_r
  robj.as_r
end
inspect() click to toggle source
# File lib/r_type/helper/robj_delegatable.rb, line 48
def inspect
  "RType::#{(@robj || @ruby_obj).inspect}"
end
robj() click to toggle source
# File lib/r_type/helper/robj_delegatable.rb, line 18
def robj
  @robj ||= convert_ruby_to_robj.tap do |newobj|
    @ruby_obj = nil unless newobj.nil?
  end
end
robj=(obj) click to toggle source
# File lib/r_type/helper/robj_delegatable.rb, line 30
def robj= obj
  @ruby_obj = nil
  @robj = obj
end
ruby_obj() click to toggle source
# File lib/r_type/helper/robj_delegatable.rb, line 24
def ruby_obj
  @ruby_obj ||= convert_robj_to_ruby.tap do |newobj|
    @robj = nil unless newobj.nil?
  end
end
ruby_obj=(obj) click to toggle source
# File lib/r_type/helper/robj_delegatable.rb, line 35
def ruby_obj= obj
  @robj = nil
  @ruby_obj = obj
end
to_ruby(mode = nil) click to toggle source
# File lib/r_type/helper/robj_delegatable.rb, line 44
def to_ruby mode = nil
  ruby_obj
end

Private Instance Methods

can_delegate_to_R?(*args) click to toggle source
# File lib/r_type/helper/robj_delegatable.rb, line 73
def can_delegate_to_R? *args
  true
end
convert_robj_to_ruby() click to toggle source
# File lib/r_type/helper/robj_delegatable.rb, line 61
def convert_robj_to_ruby
  @robj.to_ruby(::RSRuby::BASIC_CONVERSION)
end
convert_ruby_to_robj() click to toggle source
# File lib/r_type/helper/robj_delegatable.rb, line 65
def convert_ruby_to_robj
  if @ruby_obj.respond_to?(:as_r)
    @ruby_obj.as_r.robj
  else
    R.assign('_tmp_var_for_rtype', @ruby_obj).robj
  end
end