class Rookout::Processor::Namespaces::RubyObjectNamespace

Attributes

dump_config[R]
obj[R]

Public Class Methods

new(obj, dump_config = OBJECT_DUMP_CONFIG_DEFAULT) click to toggle source
# File lib/rookout/processor/namespaces/ruby_object_namespace.rb, line 40
def initialize obj, dump_config = OBJECT_DUMP_CONFIG_DEFAULT
  @obj = obj
  @dump_config = dump_config
end

Public Instance Methods

call_method(name, args) click to toggle source
# File lib/rookout/processor/namespaces/ruby_object_namespace.rb, line 82
def call_method name, args
  case name
  when "type"
    RubyObjectNamespace.new @obj.class.to_s
  when "size"
    RubyObjectNamespace.new @obj.length
  else
    super
  end
end
dump(log_object_errors) click to toggle source
# File lib/rookout/processor/namespaces/ruby_object_namespace.rb, line 93
def dump log_object_errors
  dump_raw_object @obj, 0, @dump_config, log_object_errors
end
read_attribute(name) click to toggle source
# File lib/rookout/processor/namespaces/ruby_object_namespace.rb, line 58
def read_attribute name
  attributes = @obj.instance_variables
  raise RookAttributeNotFound, name unless attributes.include? name.to_sym
  RubyObjectNamespace.new @obj.instance_variable_get(name)
end
read_key(key) click to toggle source
# File lib/rookout/processor/namespaces/ruby_object_namespace.rb, line 64
def read_key key
  if @obj.is_a? Array
    key_int = key.to_i
    return RubyObjectNamespace.new @obj[key_int] if key_int >= 0 && key_int < @obj.length
    raise Exceptions::RookKeyNotFound, key

  elsif @obj.is_a? Hash
    return RubyObjectNamespace.new @obj[key] if @obj.key? key
    return RubyObjectNamespace.new @obj[key.to_sym] if key.is_a?(String) && @obj.key?(key.to_sym)

    @obj.each { |it, value| return RubyObjectNamespace.new value if it.to_s == key }

    raise Exceptions::RookKeyNotFound, key
  else
    raise Exceptions::RookInvalidObjectForAccess.new(obj.class.to_s, "ReadKey")
  end
end
tailor_limits!() click to toggle source
# File lib/rookout/processor/namespaces/ruby_object_namespace.rb, line 47
def tailor_limits!
  if @obj.is_a? String
    @dump_config = OBJECT_DUMP_CONFIG_STRING
  elsif @obj.is_a?(Hash) || @obj.is_a?(Array)
    @dump_config = OBJECT_DUMP_CONFIG_COLLECTION
  else
    @dump_config = OBJECT_DUMP_CONFIG_TOLERANT
  end
  self
end