rbtrace 0.4.12 → 0.4.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/ext/rbtrace.c +20 -8
  3. data/lib/rbtrace/version.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 90ef44223d9a9594cd447443fff128884825d19b5bb553ba3d4c2924df6c2da0
4
- data.tar.gz: a09e1b41bca4f998e47b7de04a711915440deb4bbc81007cbf27264dac9bfcbb
3
+ metadata.gz: 942f750987d2faf32e6d104d097bb8dfa68dda43644750259a1bc0d3a23a47d6
4
+ data.tar.gz: 1fb44c1bbf4936871cef319331d27f9743debe12d28ca05235fc1750e70aa261
5
5
  SHA512:
6
- metadata.gz: 828eead6b86f3b21b743b6391e69ae854bb19ba0b1a6e84258a9b67f2675036dd46a91b6178a622d7568466e480e858b519fa7aa9d099e3030470422a3fa706e
7
- data.tar.gz: b735bf29d7fb23d56a36a008df77d8ea23325fc0f1c9d0f16826941077000c11a25fa4e7b9b637cd7157e988bd2db5e0f5017ca53218a6b1b23bab8b7df4d46e
6
+ metadata.gz: df57be716aff5cc91cd2ce54e3bb55015b76a4390fe86b7f68b91a63794364387cd9edae630f6f83584c5288f8d2fcdd3a191c6c43e75a1cdabfb064ae5cd0be
7
+ data.tar.gz: 60cf530a8271c124dd1cd8df54761812e951aa9a722df89da12c5be163a87838b7fcce03b12244699df732424a5eeaf26e6ac80270f4afaa79f756875654521a
@@ -862,13 +862,11 @@ msgq_setup()
862
862
  #endif
863
863
  }
864
864
 
865
+ static VALUE rbtrace_module;
866
+
865
867
  static VALUE
866
868
  eval_inspect(VALUE rb_code) {
867
- VALUE binding, result;
868
-
869
- binding = rb_eval_string("$rbtrace_binding ||= binding");
870
- result = rb_funcall(binding, rb_intern("eval"), 1, rb_code);
871
- return rb_funcall(result, rb_intern("inspect"), 0);
869
+ return rb_funcall(rbtrace_module, rb_intern("eval_and_inspect"), 1, rb_code);
872
870
  }
873
871
 
874
872
  static VALUE
@@ -1028,7 +1026,7 @@ rbtrace__process_event(msgpack_object cmd)
1028
1026
  strncpy(query, str.ptr, str.size);
1029
1027
  query[str.size] = 0;
1030
1028
 
1031
- VALUE rb_code, binding;
1029
+ VALUE rb_code;
1032
1030
  rb_code = rb_str_new2(query);
1033
1031
 
1034
1032
  val = rb_rescue(eval_inspect, rb_code, rescue_inspect, Qnil);
@@ -1134,11 +1132,25 @@ send_write(VALUE klass, VALUE val) {
1134
1132
  void
1135
1133
  Init_rbtrace()
1136
1134
  {
1137
- VALUE mod = rb_define_module("RBTrace");
1138
- VALUE output = rb_define_module_under(mod, "OUT");
1135
+ rbtrace_module = rb_define_module("RBTrace");
1136
+ VALUE output = rb_define_module_under(rbtrace_module, "OUT");
1139
1137
 
1140
1138
  rb_define_singleton_method(output, "write", send_write, 1);
1141
1139
 
1140
+ rb_eval_string(
1141
+ "module RBTrace\n"
1142
+ " def self.eval_context\n"
1143
+ " @eval_context ||= binding\n"
1144
+ " end\n"
1145
+
1146
+ " def self.eval_and_inspect(code)\n"
1147
+ " t = Thread.new { Thread.current[:output] = eval_context.eval(code).inspect }\n"
1148
+ " t.join\n"
1149
+ " t[:output]\n"
1150
+ " end\n"
1151
+ "end\n"
1152
+ );
1153
+
1142
1154
  // hook into the gc
1143
1155
  gc_hook = Data_Wrap_Struct(rb_cObject, rbtrace_gc_mark, NULL, NULL);
1144
1156
  rb_global_variable(&gc_hook);
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class RBTracer
4
- VERSION = '0.4.12'
4
+ VERSION = '0.4.13'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbtrace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.12
4
+ version: 0.4.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aman Gupta
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-17 00:00:00.000000000 Z
11
+ date: 2020-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi