bindex 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (165) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +16 -0
  3. data/.travis.yml +48 -0
  4. data/CONTRIBUTING.md +15 -0
  5. data/Gemfile +10 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +38 -0
  8. data/Rakefile +48 -0
  9. data/bindex.gemspec +27 -0
  10. data/ext/bindex/bindex.h +11 -0
  11. data/ext/bindex/bindings.c +106 -0
  12. data/ext/bindex/com/gsamokovarov/bindex/BindingBuilder.java.erb +17 -0
  13. data/ext/bindex/com/gsamokovarov/bindex/CurrentBindingsIterator.java +54 -0
  14. data/ext/bindex/com/gsamokovarov/bindex/RubyBindingsCollector.java +34 -0
  15. data/ext/bindex/com/gsamokovarov/bindex/SetExceptionBindingsEventHook.java +21 -0
  16. data/ext/bindex/com/gsamokovarov/bindex/ThreadContextInterfaceException.java +14 -0
  17. data/ext/bindex/com/gsamokovarov/bindex/ThreadContextInternals.java +54 -0
  18. data/ext/bindex/cruby.c +34 -0
  19. data/ext/bindex/extconf.rb +29 -0
  20. data/ext/bindex/ruby_193.h +101 -0
  21. data/ext/bindex/ruby_193/addr2line.h +21 -0
  22. data/ext/bindex/ruby_193/constant.h +34 -0
  23. data/ext/bindex/ruby_193/debug.h +41 -0
  24. data/ext/bindex/ruby_193/dln.h +50 -0
  25. data/ext/bindex/ruby_193/encdb.h +167 -0
  26. data/ext/bindex/ruby_193/eval_intern.h +234 -0
  27. data/ext/bindex/ruby_193/gc.h +99 -0
  28. data/ext/bindex/ruby_193/id.h +177 -0
  29. data/ext/bindex/ruby_193/internal.h +242 -0
  30. data/ext/bindex/ruby_193/iseq.h +126 -0
  31. data/ext/bindex/ruby_193/method.h +105 -0
  32. data/ext/bindex/ruby_193/node.h +504 -0
  33. data/ext/bindex/ruby_193/parse.h +302 -0
  34. data/ext/bindex/ruby_193/probes.h +369 -0
  35. data/ext/bindex/ruby_193/regenc.h +219 -0
  36. data/ext/bindex/ruby_193/regint.h +850 -0
  37. data/ext/bindex/ruby_193/regparse.h +362 -0
  38. data/ext/bindex/ruby_193/revision.h +1 -0
  39. data/ext/bindex/ruby_193/ruby_atomic.h +175 -0
  40. data/ext/bindex/ruby_193/siphash.h +48 -0
  41. data/ext/bindex/ruby_193/thread_pthread.h +51 -0
  42. data/ext/bindex/ruby_193/thread_win32.h +40 -0
  43. data/ext/bindex/ruby_193/timev.h +21 -0
  44. data/ext/bindex/ruby_193/transcode_data.h +117 -0
  45. data/ext/bindex/ruby_193/transdb.h +186 -0
  46. data/ext/bindex/ruby_193/verconf.h +12 -0
  47. data/ext/bindex/ruby_193/version.h +52 -0
  48. data/ext/bindex/ruby_193/vm_core.h +763 -0
  49. data/ext/bindex/ruby_193/vm_exec.h +184 -0
  50. data/ext/bindex/ruby_193/vm_insnhelper.h +220 -0
  51. data/ext/bindex/ruby_193/vm_opts.h +51 -0
  52. data/ext/bindex/ruby_20.h +142 -0
  53. data/ext/bindex/ruby_20/addr2line.h +21 -0
  54. data/ext/bindex/ruby_20/constant.h +36 -0
  55. data/ext/bindex/ruby_20/dln.h +50 -0
  56. data/ext/bindex/ruby_20/encdb.h +169 -0
  57. data/ext/bindex/ruby_20/eval_intern.h +241 -0
  58. data/ext/bindex/ruby_20/gc.h +104 -0
  59. data/ext/bindex/ruby_20/id.h +135 -0
  60. data/ext/bindex/ruby_20/internal.h +395 -0
  61. data/ext/bindex/ruby_20/iseq.h +140 -0
  62. data/ext/bindex/ruby_20/method.h +138 -0
  63. data/ext/bindex/ruby_20/node.h +541 -0
  64. data/ext/bindex/ruby_20/parse.h +292 -0
  65. data/ext/bindex/ruby_20/probes.h +369 -0
  66. data/ext/bindex/ruby_20/probes_helper.h +67 -0
  67. data/ext/bindex/ruby_20/regenc.h +227 -0
  68. data/ext/bindex/ruby_20/regint.h +915 -0
  69. data/ext/bindex/ruby_20/regparse.h +367 -0
  70. data/ext/bindex/ruby_20/revision.h +1 -0
  71. data/ext/bindex/ruby_20/ruby_atomic.h +170 -0
  72. data/ext/bindex/ruby_20/siphash.h +48 -0
  73. data/ext/bindex/ruby_20/thread_pthread.h +56 -0
  74. data/ext/bindex/ruby_20/thread_win32.h +45 -0
  75. data/ext/bindex/ruby_20/timev.h +21 -0
  76. data/ext/bindex/ruby_20/transcode_data.h +127 -0
  77. data/ext/bindex/ruby_20/transdb.h +190 -0
  78. data/ext/bindex/ruby_20/verconf.h +12 -0
  79. data/ext/bindex/ruby_20/version.h +52 -0
  80. data/ext/bindex/ruby_20/vm_core.h +1018 -0
  81. data/ext/bindex/ruby_20/vm_debug.h +41 -0
  82. data/ext/bindex/ruby_20/vm_exec.h +173 -0
  83. data/ext/bindex/ruby_20/vm_insnhelper.h +274 -0
  84. data/ext/bindex/ruby_20/vm_opts.h +56 -0
  85. data/ext/bindex/ruby_21.h +142 -0
  86. data/ext/bindex/ruby_21/addr2line.h +21 -0
  87. data/ext/bindex/ruby_21/constant.h +36 -0
  88. data/ext/bindex/ruby_21/dln.h +51 -0
  89. data/ext/bindex/ruby_21/encdb.h +170 -0
  90. data/ext/bindex/ruby_21/eval_intern.h +260 -0
  91. data/ext/bindex/ruby_21/gc.h +101 -0
  92. data/ext/bindex/ruby_21/id.h +210 -0
  93. data/ext/bindex/ruby_21/internal.h +889 -0
  94. data/ext/bindex/ruby_21/iseq.h +136 -0
  95. data/ext/bindex/ruby_21/method.h +142 -0
  96. data/ext/bindex/ruby_21/node.h +543 -0
  97. data/ext/bindex/ruby_21/parse.h +298 -0
  98. data/ext/bindex/ruby_21/probes.h +401 -0
  99. data/ext/bindex/ruby_21/probes_helper.h +67 -0
  100. data/ext/bindex/ruby_21/regenc.h +223 -0
  101. data/ext/bindex/ruby_21/regint.h +911 -0
  102. data/ext/bindex/ruby_21/regparse.h +363 -0
  103. data/ext/bindex/ruby_21/revision.h +1 -0
  104. data/ext/bindex/ruby_21/ruby_atomic.h +170 -0
  105. data/ext/bindex/ruby_21/siphash.h +48 -0
  106. data/ext/bindex/ruby_21/thread_native.h +23 -0
  107. data/ext/bindex/ruby_21/thread_pthread.h +56 -0
  108. data/ext/bindex/ruby_21/thread_win32.h +45 -0
  109. data/ext/bindex/ruby_21/timev.h +42 -0
  110. data/ext/bindex/ruby_21/transcode_data.h +123 -0
  111. data/ext/bindex/ruby_21/transdb.h +190 -0
  112. data/ext/bindex/ruby_21/verconf.h +13 -0
  113. data/ext/bindex/ruby_21/version.h +52 -0
  114. data/ext/bindex/ruby_21/vm_core.h +1043 -0
  115. data/ext/bindex/ruby_21/vm_debug.h +37 -0
  116. data/ext/bindex/ruby_21/vm_exec.h +182 -0
  117. data/ext/bindex/ruby_21/vm_insnhelper.h +273 -0
  118. data/ext/bindex/ruby_21/vm_opts.h +56 -0
  119. data/ext/bindex/ruby_21preview.h +146 -0
  120. data/ext/bindex/ruby_21preview/addr2line.h +21 -0
  121. data/ext/bindex/ruby_21preview/constant.h +36 -0
  122. data/ext/bindex/ruby_21preview/dln.h +51 -0
  123. data/ext/bindex/ruby_21preview/encdb.h +270 -0
  124. data/ext/bindex/ruby_21preview/eval_intern.h +217 -0
  125. data/ext/bindex/ruby_21preview/gc.h +100 -0
  126. data/ext/bindex/ruby_21preview/id.h +169 -0
  127. data/ext/bindex/ruby_21preview/internal.h +765 -0
  128. data/ext/bindex/ruby_21preview/iseq.h +136 -0
  129. data/ext/bindex/ruby_21preview/method.h +141 -0
  130. data/ext/bindex/ruby_21preview/node.h +543 -0
  131. data/ext/bindex/ruby_21preview/parse.h +298 -0
  132. data/ext/bindex/ruby_21preview/probes.h +385 -0
  133. data/ext/bindex/ruby_21preview/probes_helper.h +67 -0
  134. data/ext/bindex/ruby_21preview/regenc.h +223 -0
  135. data/ext/bindex/ruby_21preview/regint.h +911 -0
  136. data/ext/bindex/ruby_21preview/regparse.h +363 -0
  137. data/ext/bindex/ruby_21preview/revision.h +1 -0
  138. data/ext/bindex/ruby_21preview/ruby_atomic.h +130 -0
  139. data/ext/bindex/ruby_21preview/siphash.h +48 -0
  140. data/ext/bindex/ruby_21preview/thread_native.h +23 -0
  141. data/ext/bindex/ruby_21preview/thread_pthread.h +56 -0
  142. data/ext/bindex/ruby_21preview/thread_win32.h +45 -0
  143. data/ext/bindex/ruby_21preview/timev.h +42 -0
  144. data/ext/bindex/ruby_21preview/transcode_data.h +123 -0
  145. data/ext/bindex/ruby_21preview/transdb.h +190 -0
  146. data/ext/bindex/ruby_21preview/verconf.h +13 -0
  147. data/ext/bindex/ruby_21preview/version.h +53 -0
  148. data/ext/bindex/ruby_21preview/vm_core.h +1017 -0
  149. data/ext/bindex/ruby_21preview/vm_debug.h +37 -0
  150. data/ext/bindex/ruby_21preview/vm_exec.h +180 -0
  151. data/ext/bindex/ruby_21preview/vm_insnhelper.h +272 -0
  152. data/ext/bindex/ruby_21preview/vm_opts.h +56 -0
  153. data/lib/bindex.rb +10 -0
  154. data/lib/bindex/jruby.rb +20 -0
  155. data/lib/bindex/jruby_internals.jar +0 -0
  156. data/lib/bindex/jruby_internals_9k.jar +0 -0
  157. data/lib/bindex/rubinius.rb +56 -0
  158. data/lib/bindex/version.rb +3 -0
  159. data/test/exception_test.rb +45 -0
  160. data/test/fixtures/basic_nested_fixture.rb +13 -0
  161. data/test/fixtures/custom_error_fixture.rb +9 -0
  162. data/test/fixtures/eval_nested_fixture.rb +13 -0
  163. data/test/fixtures/flat_fixture.rb +7 -0
  164. data/test/test_helper.rb +17 -0
  165. metadata +270 -0
@@ -0,0 +1,56 @@
1
+ /*-*-c-*-*/
2
+ /**********************************************************************
3
+
4
+ vm_opts.h - VM optimize option
5
+
6
+ $Author$
7
+
8
+ Copyright (C) 2004-2007 Koichi Sasada
9
+
10
+ **********************************************************************/
11
+
12
+
13
+ #ifndef RUBY_VM_OPTS_H
14
+ #define RUBY_VM_OPTS_H
15
+
16
+ /* Compile options.
17
+ * You can change these options at runtime by VM::CompileOption.
18
+ * Following definitions are default values.
19
+ */
20
+
21
+ #define OPT_TRACE_INSTRUCTION 1
22
+ #define OPT_TAILCALL_OPTIMIZATION 0
23
+ #define OPT_PEEPHOLE_OPTIMIZATION 1
24
+ #define OPT_SPECIALISED_INSTRUCTION 1
25
+ #define OPT_INLINE_CONST_CACHE 1
26
+
27
+
28
+ /* Build Options.
29
+ * You can't change these options at runtime.
30
+ */
31
+
32
+ /* C compiler dependent */
33
+ #define OPT_DIRECT_THREADED_CODE 1
34
+ #define OPT_TOKEN_THREADED_CODE 0
35
+ #define OPT_CALL_THREADED_CODE 0
36
+
37
+ /* VM running option */
38
+ #define OPT_CHECKED_RUN 1
39
+ #define OPT_INLINE_METHOD_CACHE 1
40
+ #define OPT_GLOBAL_METHOD_CACHE 1
41
+ #define OPT_BLOCKINLINING 0
42
+
43
+ /* architecture independent, affects generated code */
44
+ #define OPT_OPERANDS_UNIFICATION 1
45
+ #define OPT_INSTRUCTIONS_UNIFICATION 0
46
+ #define OPT_UNIFY_ALL_COMBINATION 0
47
+ #define OPT_STACK_CACHING 0
48
+
49
+ /* misc */
50
+ #define SUPPORT_JOKE 0
51
+
52
+ #ifndef VM_COLLECT_USAGE_DETAILS
53
+ #define VM_COLLECT_USAGE_DETAILS 0
54
+ #endif
55
+
56
+ #endif /* RUBY_VM_OPTS_H */
@@ -0,0 +1,10 @@
1
+ case RUBY_ENGINE
2
+ when 'rbx'
3
+ require 'bindex/rubinius'
4
+ when 'jruby'
5
+ require 'bindex/jruby'
6
+ when 'ruby'
7
+ require 'bindex/cruby'
8
+ end
9
+
10
+ require "bindex/version"
@@ -0,0 +1,20 @@
1
+ if JRUBY_VERSION.start_with?('9')
2
+ require 'bindex/jruby_internals_9k'
3
+ else
4
+ require 'bindex/jruby_internals'
5
+ end
6
+
7
+ java_import com.gsamokovarov.bindex.SetExceptionBindingsEventHook
8
+
9
+ begin
10
+ previous_verbose, $VERBOSE = $VERBOSE, nil
11
+ JRuby.runtime.add_event_hook(SetExceptionBindingsEventHook.new)
12
+ ensure
13
+ $VERBOSE = previous_verbose
14
+ end
15
+
16
+ ::Exception.class_eval do
17
+ def bindings
18
+ @bindings || []
19
+ end
20
+ end
@@ -0,0 +1,56 @@
1
+ module Bindex
2
+ class Rubinius
3
+ # Gets the current bindings for all available Ruby frames.
4
+ #
5
+ # Filters the internal Rubinius frames.
6
+ def self.current_bindings
7
+ locations = ::Rubinius::VM.backtrace(1, true)
8
+
9
+ InternalLocationFilter.new(locations).filter.map do |location|
10
+ Binding.setup(
11
+ location.variables,
12
+ location.variables.method,
13
+ location.constant_scope,
14
+ location.variables.self,
15
+ location
16
+ )
17
+ end
18
+ end
19
+
20
+ # Filters internal Rubinius locations.
21
+ #
22
+ # The reason for this is that some methods, like ::Kernel.raise, are
23
+ # implemented in Ruby for Rubinius. Therefore, we will get a binding for
24
+ # them as well.
25
+ #
26
+ # To align the current_bindings implementation with the CRuby one, where
27
+ # the first binding will usually be binding of caller, we can use this
28
+ # object to clean bindings for internal Rubinius methods.
29
+ class InternalLocationFilter
30
+ def initialize(locations)
31
+ @locations = locations
32
+ end
33
+
34
+ def filter
35
+ @locations.reject do |location|
36
+ location.file.start_with?('kernel/') || location.file == __FILE__
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+ ::Exception.class_eval do
44
+ def bindings
45
+ @bindings || []
46
+ end
47
+ end
48
+
49
+ ::Rubinius.singleton_class.class_eval do
50
+ raise_exception = instance_method(:raise_exception)
51
+
52
+ define_method(:raise_exception) do |exc|
53
+ exc.instance_variable_set(:@bindings, Bindex::Rubinius.current_bindings)
54
+ raise_exception.bind(self).call(exc)
55
+ end
56
+ end
@@ -0,0 +1,3 @@
1
+ module Bindex
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,45 @@
1
+ require 'test_helper'
2
+
3
+ class ExceptionTest < BaseTest
4
+ test 'bindings returns all the bindings of where the error originated' do
5
+ exc = FlatFixture.new.call
6
+
7
+ assert_equal 3, exc.bindings.first.eval('__LINE__')
8
+ end
9
+
10
+ test 'bindings returns all the bindings of where a custom error originate' do
11
+ exc = CustomErrorFixture.new.call
12
+
13
+ assert_equal 5, exc.bindings.first.eval('__LINE__')
14
+ end
15
+
16
+ test 'bindings goes down the_stack' do
17
+ exc = BasicNestedFixture.new.call
18
+
19
+ assert_equal 11, exc.bindings.first.eval('__LINE__')
20
+ end
21
+
22
+ test 'bindings inside_of_an_eval' do
23
+ exc = EvalNestedFixture.new.call
24
+
25
+ assert_equal 11, exc.bindings.first.eval('__LINE__')
26
+ end
27
+
28
+ test 'bindings is_empty_when_exception_is_still_not_raised' do
29
+ exc = RuntimeError.new
30
+
31
+ assert_equal [], exc.bindings
32
+ end
33
+
34
+ test 'bindings is_empty_when_set_backtrace_is_badly_called' do
35
+ exc = RuntimeError.new
36
+
37
+ # Exception#set_backtrace expects a string or array of strings. If the
38
+ # input isn't like this it will raise a TypeError.
39
+ assert_raises(TypeError) do
40
+ exc.set_backtrace([nil])
41
+ end
42
+
43
+ assert_equal [], exc.bindings
44
+ end
45
+ end
@@ -0,0 +1,13 @@
1
+ class BasicNestedFixture
2
+ def call
3
+ raise_an_error
4
+ rescue => exc
5
+ exc
6
+ end
7
+
8
+ private
9
+
10
+ def raise_an_error
11
+ raise
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ class CustomErrorFixture
2
+ Error = Class.new(StandardError)
3
+
4
+ def call
5
+ raise Error
6
+ rescue => exc
7
+ exc
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ class EvalNestedFixture
2
+ def call
3
+ tap { raise_an_error_in_eval }
4
+ rescue => exc
5
+ exc
6
+ end
7
+
8
+ private
9
+
10
+ def raise_an_error_in_eval
11
+ eval 'raise', binding, __FILE__, __LINE__
12
+ end
13
+ end
@@ -0,0 +1,7 @@
1
+ class FlatFixture
2
+ def call
3
+ raise
4
+ rescue => exc
5
+ exc
6
+ end
7
+ end
@@ -0,0 +1,17 @@
1
+ $LOAD_PATH << File.expand_path('../lib', __FILE__)
2
+
3
+ require 'minitest/autorun'
4
+ require 'bindex'
5
+
6
+ current_directory = File.dirname(File.expand_path(__FILE__))
7
+
8
+ # Fixtures are plain classes that respond to #call.
9
+ Dir["#{current_directory}/fixtures/**/*.rb"].each do |fixture|
10
+ require fixture
11
+ end
12
+
13
+ class BaseTest < MiniTest::Test
14
+ def self.test(name, &block)
15
+ define_method("test_#{name}", &block)
16
+ end
17
+ end
metadata ADDED
@@ -0,0 +1,270 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bindex
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Genadi Samokovarov
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: minitest
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '5.4'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '5.4'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake-compiler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description:
70
+ email:
71
+ - gsamokovarov@gmail.com
72
+ executables: []
73
+ extensions:
74
+ - ext/bindex/extconf.rb
75
+ extra_rdoc_files: []
76
+ files:
77
+ - ".gitignore"
78
+ - ".travis.yml"
79
+ - CONTRIBUTING.md
80
+ - Gemfile
81
+ - LICENSE.txt
82
+ - README.md
83
+ - Rakefile
84
+ - bindex.gemspec
85
+ - ext/bindex/bindex.h
86
+ - ext/bindex/bindings.c
87
+ - ext/bindex/com/gsamokovarov/bindex/BindingBuilder.java.erb
88
+ - ext/bindex/com/gsamokovarov/bindex/CurrentBindingsIterator.java
89
+ - ext/bindex/com/gsamokovarov/bindex/RubyBindingsCollector.java
90
+ - ext/bindex/com/gsamokovarov/bindex/SetExceptionBindingsEventHook.java
91
+ - ext/bindex/com/gsamokovarov/bindex/ThreadContextInterfaceException.java
92
+ - ext/bindex/com/gsamokovarov/bindex/ThreadContextInternals.java
93
+ - ext/bindex/cruby.c
94
+ - ext/bindex/extconf.rb
95
+ - ext/bindex/ruby_193.h
96
+ - ext/bindex/ruby_193/addr2line.h
97
+ - ext/bindex/ruby_193/constant.h
98
+ - ext/bindex/ruby_193/debug.h
99
+ - ext/bindex/ruby_193/dln.h
100
+ - ext/bindex/ruby_193/encdb.h
101
+ - ext/bindex/ruby_193/eval_intern.h
102
+ - ext/bindex/ruby_193/gc.h
103
+ - ext/bindex/ruby_193/id.h
104
+ - ext/bindex/ruby_193/internal.h
105
+ - ext/bindex/ruby_193/iseq.h
106
+ - ext/bindex/ruby_193/method.h
107
+ - ext/bindex/ruby_193/node.h
108
+ - ext/bindex/ruby_193/parse.h
109
+ - ext/bindex/ruby_193/probes.h
110
+ - ext/bindex/ruby_193/regenc.h
111
+ - ext/bindex/ruby_193/regint.h
112
+ - ext/bindex/ruby_193/regparse.h
113
+ - ext/bindex/ruby_193/revision.h
114
+ - ext/bindex/ruby_193/ruby_atomic.h
115
+ - ext/bindex/ruby_193/siphash.h
116
+ - ext/bindex/ruby_193/thread_pthread.h
117
+ - ext/bindex/ruby_193/thread_win32.h
118
+ - ext/bindex/ruby_193/timev.h
119
+ - ext/bindex/ruby_193/transcode_data.h
120
+ - ext/bindex/ruby_193/transdb.h
121
+ - ext/bindex/ruby_193/verconf.h
122
+ - ext/bindex/ruby_193/version.h
123
+ - ext/bindex/ruby_193/vm_core.h
124
+ - ext/bindex/ruby_193/vm_exec.h
125
+ - ext/bindex/ruby_193/vm_insnhelper.h
126
+ - ext/bindex/ruby_193/vm_opts.h
127
+ - ext/bindex/ruby_20.h
128
+ - ext/bindex/ruby_20/addr2line.h
129
+ - ext/bindex/ruby_20/constant.h
130
+ - ext/bindex/ruby_20/dln.h
131
+ - ext/bindex/ruby_20/encdb.h
132
+ - ext/bindex/ruby_20/eval_intern.h
133
+ - ext/bindex/ruby_20/gc.h
134
+ - ext/bindex/ruby_20/id.h
135
+ - ext/bindex/ruby_20/internal.h
136
+ - ext/bindex/ruby_20/iseq.h
137
+ - ext/bindex/ruby_20/method.h
138
+ - ext/bindex/ruby_20/node.h
139
+ - ext/bindex/ruby_20/parse.h
140
+ - ext/bindex/ruby_20/probes.h
141
+ - ext/bindex/ruby_20/probes_helper.h
142
+ - ext/bindex/ruby_20/regenc.h
143
+ - ext/bindex/ruby_20/regint.h
144
+ - ext/bindex/ruby_20/regparse.h
145
+ - ext/bindex/ruby_20/revision.h
146
+ - ext/bindex/ruby_20/ruby_atomic.h
147
+ - ext/bindex/ruby_20/siphash.h
148
+ - ext/bindex/ruby_20/thread_pthread.h
149
+ - ext/bindex/ruby_20/thread_win32.h
150
+ - ext/bindex/ruby_20/timev.h
151
+ - ext/bindex/ruby_20/transcode_data.h
152
+ - ext/bindex/ruby_20/transdb.h
153
+ - ext/bindex/ruby_20/verconf.h
154
+ - ext/bindex/ruby_20/version.h
155
+ - ext/bindex/ruby_20/vm_core.h
156
+ - ext/bindex/ruby_20/vm_debug.h
157
+ - ext/bindex/ruby_20/vm_exec.h
158
+ - ext/bindex/ruby_20/vm_insnhelper.h
159
+ - ext/bindex/ruby_20/vm_opts.h
160
+ - ext/bindex/ruby_21.h
161
+ - ext/bindex/ruby_21/addr2line.h
162
+ - ext/bindex/ruby_21/constant.h
163
+ - ext/bindex/ruby_21/dln.h
164
+ - ext/bindex/ruby_21/encdb.h
165
+ - ext/bindex/ruby_21/eval_intern.h
166
+ - ext/bindex/ruby_21/gc.h
167
+ - ext/bindex/ruby_21/id.h
168
+ - ext/bindex/ruby_21/internal.h
169
+ - ext/bindex/ruby_21/iseq.h
170
+ - ext/bindex/ruby_21/method.h
171
+ - ext/bindex/ruby_21/node.h
172
+ - ext/bindex/ruby_21/parse.h
173
+ - ext/bindex/ruby_21/probes.h
174
+ - ext/bindex/ruby_21/probes_helper.h
175
+ - ext/bindex/ruby_21/regenc.h
176
+ - ext/bindex/ruby_21/regint.h
177
+ - ext/bindex/ruby_21/regparse.h
178
+ - ext/bindex/ruby_21/revision.h
179
+ - ext/bindex/ruby_21/ruby_atomic.h
180
+ - ext/bindex/ruby_21/siphash.h
181
+ - ext/bindex/ruby_21/thread_native.h
182
+ - ext/bindex/ruby_21/thread_pthread.h
183
+ - ext/bindex/ruby_21/thread_win32.h
184
+ - ext/bindex/ruby_21/timev.h
185
+ - ext/bindex/ruby_21/transcode_data.h
186
+ - ext/bindex/ruby_21/transdb.h
187
+ - ext/bindex/ruby_21/verconf.h
188
+ - ext/bindex/ruby_21/version.h
189
+ - ext/bindex/ruby_21/vm_core.h
190
+ - ext/bindex/ruby_21/vm_debug.h
191
+ - ext/bindex/ruby_21/vm_exec.h
192
+ - ext/bindex/ruby_21/vm_insnhelper.h
193
+ - ext/bindex/ruby_21/vm_opts.h
194
+ - ext/bindex/ruby_21preview.h
195
+ - ext/bindex/ruby_21preview/addr2line.h
196
+ - ext/bindex/ruby_21preview/constant.h
197
+ - ext/bindex/ruby_21preview/dln.h
198
+ - ext/bindex/ruby_21preview/encdb.h
199
+ - ext/bindex/ruby_21preview/eval_intern.h
200
+ - ext/bindex/ruby_21preview/gc.h
201
+ - ext/bindex/ruby_21preview/id.h
202
+ - ext/bindex/ruby_21preview/internal.h
203
+ - ext/bindex/ruby_21preview/iseq.h
204
+ - ext/bindex/ruby_21preview/method.h
205
+ - ext/bindex/ruby_21preview/node.h
206
+ - ext/bindex/ruby_21preview/parse.h
207
+ - ext/bindex/ruby_21preview/probes.h
208
+ - ext/bindex/ruby_21preview/probes_helper.h
209
+ - ext/bindex/ruby_21preview/regenc.h
210
+ - ext/bindex/ruby_21preview/regint.h
211
+ - ext/bindex/ruby_21preview/regparse.h
212
+ - ext/bindex/ruby_21preview/revision.h
213
+ - ext/bindex/ruby_21preview/ruby_atomic.h
214
+ - ext/bindex/ruby_21preview/siphash.h
215
+ - ext/bindex/ruby_21preview/thread_native.h
216
+ - ext/bindex/ruby_21preview/thread_pthread.h
217
+ - ext/bindex/ruby_21preview/thread_win32.h
218
+ - ext/bindex/ruby_21preview/timev.h
219
+ - ext/bindex/ruby_21preview/transcode_data.h
220
+ - ext/bindex/ruby_21preview/transdb.h
221
+ - ext/bindex/ruby_21preview/verconf.h
222
+ - ext/bindex/ruby_21preview/version.h
223
+ - ext/bindex/ruby_21preview/vm_core.h
224
+ - ext/bindex/ruby_21preview/vm_debug.h
225
+ - ext/bindex/ruby_21preview/vm_exec.h
226
+ - ext/bindex/ruby_21preview/vm_insnhelper.h
227
+ - ext/bindex/ruby_21preview/vm_opts.h
228
+ - lib/bindex.rb
229
+ - lib/bindex/jruby.rb
230
+ - lib/bindex/jruby_internals.jar
231
+ - lib/bindex/jruby_internals_9k.jar
232
+ - lib/bindex/rubinius.rb
233
+ - lib/bindex/version.rb
234
+ - test/exception_test.rb
235
+ - test/fixtures/basic_nested_fixture.rb
236
+ - test/fixtures/custom_error_fixture.rb
237
+ - test/fixtures/eval_nested_fixture.rb
238
+ - test/fixtures/flat_fixture.rb
239
+ - test/test_helper.rb
240
+ homepage: https://github.com/gsamokovarov/bindex
241
+ licenses:
242
+ - MIT
243
+ metadata: {}
244
+ post_install_message:
245
+ rdoc_options: []
246
+ require_paths:
247
+ - lib
248
+ required_ruby_version: !ruby/object:Gem::Requirement
249
+ requirements:
250
+ - - ">="
251
+ - !ruby/object:Gem::Version
252
+ version: 1.9.3
253
+ required_rubygems_version: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ requirements: []
259
+ rubyforge_project:
260
+ rubygems_version: 2.2.2
261
+ signing_key:
262
+ specification_version: 4
263
+ summary: Bindings for your Ruby exceptions
264
+ test_files:
265
+ - test/exception_test.rb
266
+ - test/fixtures/basic_nested_fixture.rb
267
+ - test/fixtures/custom_error_fixture.rb
268
+ - test/fixtures/eval_nested_fixture.rb
269
+ - test/fixtures/flat_fixture.rb
270
+ - test/test_helper.rb