MCPcopy Create free account
hub / github.com/existentialmutt/lt-ruby / eval_ruby

Method eval_ruby

rb-src/lt_client.rb:112–140  ·  view source on GitHub ↗
(id, args)

Source from the content-addressed store, hash-verified

110 end
111
112 def eval_ruby(id, args)
113 eval_candidate = self.eval_queue + "\n" + args["code"]
114 logger.debug "Eval Candidate #{eval_candidate}"
115 if complete_expression?(eval_candidate)
116 eval_args = [eval_candidate]
117 if args["path"]
118 eval_args << args["path"]
119 if args["meta"] && args["meta"]["start"]
120 eval_args << args["meta"]["start"] + 1
121 end
122 end
123
124 result = TOPLEVEL_BINDING.eval(*eval_args)
125 if result.nil?
126 send_response(id, "editor.eval.ruby.success", {"meta" => response_meta(args["meta"])})
127 else
128 send_response(id, "editor.eval.ruby.result", {"result" => result.inspect, "meta" => response_meta(args["meta"])})
129 end
130 self.eval_queue = ""
131 else
132 self.eval_queue = eval_candidate
133 logger.debug("Queued Code: #{self.eval_queue}")
134 send_response(id, "editor.eval.ruby.incomplete", {"meta" => response_meta(args["meta"])})
135 end
136
137 rescue Exception => e
138 exception_and_backtrace = [e.inspect, e.backtrace].flatten.join("\n")
139 send_response(id, "editor.eval.ruby.exception", {"ex" => exception_and_backtrace, "meta" => response_meta(args["meta"])})
140 end
141
142 def run_shell(cmd)
143 `#{cmd} 2>&1`

Callers 1

eval_codeFunction · 0.80

Calls

no outgoing calls

Tested by 1

eval_codeFunction · 0.64