Class: MaglevDatabaseExplorer::CodeController

Inherits:
ApplicationController show all
Defined in:
app/controllers/maglev_database_explorer/code_controller.rb

Instance Method Summary collapse

Instance Method Details

#codeObject



18
19
20
21
22
23
24
25
26
27
# File 'app/controllers/maglev_database_explorer/code_controller.rb', line 18

def code
  id = Integer(params[:id])
  obj = ObjectSpace._id2ref(id)
  
  if obj == nil and id != 20
    render :json => {:success => false, :exception => "object with id #{id} not found"}
  else
    render :json => {:success => true, :result => obj.__source_for_selector(params[:selector], params[:language].to_sym)}
  end
end

#frameObject



29
30
31
32
33
34
35
36
37
38
39
# File 'app/controllers/maglev_database_explorer/code_controller.rb', line 29

def frame
  id = Integer(params[:id])
  index = Integer(params[:index])
  obj = ObjectSpace._id2ref(id)
  
  if obj == nil and id != 20
    render :json => {:success => false, :exception => "object with id #{id} not found"}
  else
    render :json => {:success => true, :result => obj.__stack_frame(index)}
  end
end

#framesObject



41
42
43
44
45
46
47
48
49
50
# File 'app/controllers/maglev_database_explorer/code_controller.rb', line 41

def frames
  id = Integer(params[:id])
  obj = ObjectSpace._id2ref(id)
  
  if obj == nil and id != 20
    render :json => {:success => false, :exception => "object with id #{id} not found"}
  else
    render :json => {:success => true, :result => obj.__stack_method_names}
  end
end

#indexObject



3
4
5
# File 'app/controllers/maglev_database_explorer/code_controller.rb', line 3

def index
      
end

#proceedObject



63
64
65
66
67
68
69
70
71
72
73
74
# File 'app/controllers/maglev_database_explorer/code_controller.rb', line 63

def proceed
  id = Integer(params[:id])
  obj = ObjectSpace._id2ref(id)
  
  if obj == nil and id != 20
    render :json => {:success => false, :exception => "object with id #{id} not found"}
  else
    result = obj.run
    sleep 0.1 until (obj.stop? and obj[:manual_stop]) or obj[:is_rails_thread]
    render :json => {:success => true, :result => result}
  end
end

#selectorsObject



7
8
9
10
11
12
13
14
15
16
# File 'app/controllers/maglev_database_explorer/code_controller.rb', line 7

def selectors
  id = Integer(params[:id])
  obj = ObjectSpace._id2ref(id)
  
  if obj == nil and id != 20
    render :json => {:success => false, :exception => "object with id #{id} not found"}
  else
    render :json => {:success => true, :result => obj.__selectors_by_category}
  end
end

#stepIntoObject



52
53
54
55
56
57
58
59
60
61
# File 'app/controllers/maglev_database_explorer/code_controller.rb', line 52

def stepInto
  id = Integer(params[:id])
  obj = ObjectSpace._id2ref(id)
  
  if obj == nil and id != 20
    render :json => {:success => false, :exception => "object with id #{id} not found"}
  else
    render :json => {:success => true, :result => obj.__step_into.to_database_view(1, {}, {})}
  end
end

#stepOverObject



89
90
91
92
93
94
95
96
97
98
99
# File 'app/controllers/maglev_database_explorer/code_controller.rb', line 89

def stepOver
  id = Integer(params[:id])
  index = Integer(params[:index])
  obj = ObjectSpace._id2ref(id)
  
  if obj == nil and id != 20
    render :json => {:success => false, :exception => "object with id #{id} not found"}
  else
    render :json => {:success => true, :result => obj.__step_over_at(index).to_database_view(1, {}, {})}
  end
end

#trimObject



76
77
78
79
80
81
82
83
84
85
86
87
# File 'app/controllers/maglev_database_explorer/code_controller.rb', line 76

def trim
  id = Integer(params[:id])
  obj = ObjectSpace._id2ref(id)
  index = Integer(params[:index])
  
  if obj == nil and id != 20
    render :json => {:success => false, :exception => "object with id #{id} not found"}
  else
    obj.__trim_stack_to_level(index)
    render :json => {:success => true, :result => true}
  end
end