on a177213 help sign in
prybar/languages/ruby/pry_ruby.c
49 lines 909 B history raw
1#include "pry_ruby.h"
3VALUE binding;
5void pry_open()
6{
7 ruby_init();
8 ruby_init_loadpath();
9 binding = rb_binding_new();
12const char *pry_ruby_version()
14 return ruby_description;
17char *pry_eval(const char *code)
20 int state;
21 VALUE result;
22 result = rb_eval_string_wrap(code, &state);
24 if (state)
25 {
26 VALUE exception = rb_errinfo();
27 rb_set_errinfo(Qnil);
28 if (RTEST(exception))
29 rb_warn("%" PRIsVALUE "", rb_funcall(exception, rb_intern("full_message"), 0));
30 return NULL;
31 }
32 else
33 {
34 VALUE str = rb_sprintf("%" PRIsVALUE "", result);
35 return StringValueCStr(str);
36 }
39void pry_eval_file(const char *file)
41 char *options[] = {"ruby", file};
42 void *node = ruby_options(2, options);
44 int state;
45 if (ruby_executable_node(node, &state))
46 {
47 state = ruby_exec_node(node);
48 }