Sha256: 3d3349cc3c26d6290a684399919bc0266e3937d26dbc58439c74589418d09e95
Contents?: true
Size: 1.78 KB
Versions: 2
Compression:
Stored size: 1.78 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) Maglev::PERSISTENT_ROOT[:debug_storage] ||= {} Maglev::PERSISTENT_ROOT[:debug_storage][obj.object_id] = obj end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
maglev-database-explorer-0.0.2 | app/controllers/maglev_database_explorer/object_controller.rb |
maglev-database-explorer-0.0.1 | app/controllers/maglev_database_explorer/object_controller.rb |