Sha256: b1dc4b38ec2e2e0099f17d4b55b4fe9bcee1a21122675b39bc56dee758ec7fb6
Contents?: true
Size: 1.71 KB
Versions: 3
Compression:
Stored size: 1.71 KB
Contents
module MaglevDatabaseExplorer class ObjectController < ApplicationController def index id = Integer(params[:id]) ranges = {} params.each_pair do |key, value| parts = key.split("_") if parts[0] == "range" ranges[parts[1].to_sym] = [params["range_#{parts[1]}_from"], params["range_#{parts[1]}_to"]] end end depth = params[:depth] ? Integer(params[:depth]) : 2 render :json => {:success => true, :result => ObjectSpace._id2ref(id).to_database_view(depth, ranges, params)} end def evaluate obj_id = Integer(params[:id]) obj = ObjectSpace._id2ref(obj_id) code = params[:code] language = params[:language] depth = params[:depth] ? Integer(params[:depth]) : 2 ranges = {} if obj == nil and obj_id != 20 render :json => {:success => false, :exception => "object not found"} else result = CodeEvaluation.wait_for_eval_thread do if language == "smalltalk" obj.__evaluate_smalltalk(code) elsif language == "ruby" obj.instance_eval(code) elsif language == "rubyClass" obj.module_eval(code) end end store_object(result) if result[0] # exception was catched render :json => {:success => true, :result => [true, result[1].to_database_view(1, ranges, params)]} else # no exception was catched render :json => {:success => true, :result => [false, result[1].to_database_view(depth, ranges, params)]} end end end private def store_object(obj) MaglevDatabaseExplorer.store_debug_object(obj) end end end
Version data entries
3 entries across 3 versions & 1 rubygems