looksee 4.4.0 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +16 -0
- data/README.markdown +97 -73
- data/Rakefile +27 -0
- data/ext/extconf.rb +5 -8
- data/ext/mri/3.2.0/id_table.h +36 -0
- data/ext/mri/3.2.0/internal/array.h +162 -0
- data/ext/mri/3.2.0/internal/class.h +212 -0
- data/ext/mri/3.2.0/internal/compilers.h +107 -0
- data/ext/mri/3.2.0/internal/gc.h +188 -0
- data/ext/mri/3.2.0/internal/imemo.h +242 -0
- data/ext/mri/3.2.0/internal/serial.h +23 -0
- data/ext/mri/3.2.0/internal/static_assert.h +16 -0
- data/ext/mri/3.2.0/internal/warnings.h +16 -0
- data/ext/mri/3.2.0/internal.h +113 -0
- data/ext/mri/{2.3.0 → 3.2.0}/method.h +95 -55
- data/ext/mri/mri.c +11 -37
- data/lib/looksee/adapter/base.rb +17 -3
- data/lib/looksee/adapter.rb +0 -1
- data/lib/looksee/clean.rb +2 -3
- data/lib/looksee/core_ext.rb +21 -9
- data/lib/looksee/help.rb +4 -2
- data/lib/looksee/inspector.rb +2 -0
- data/lib/looksee/lookup_path.rb +1 -1
- data/lib/looksee/pretty_print_hack.rb +14 -0
- data/lib/looksee/version.rb +1 -1
- data/spec/looksee/adapter_spec.rb +51 -45
- data/spec/looksee/core_ext_spec.rb +2 -2
- data/spec/looksee/inspector_spec.rb +42 -0
- data/spec/looksee/lookup_path_spec.rb +1 -1
- metadata +16 -13
- data/ext/mri/2.1.0/internal.h +0 -889
- data/ext/mri/2.1.0/method.h +0 -142
- data/ext/mri/2.2.0/internal.h +0 -1182
- data/ext/mri/2.2.0/method.h +0 -141
- data/ext/mri/2.3.0/internal.h +0 -1404
- data/ext/rbx/rbx.c +0 -4
- data/lib/looksee/adapter/rubinius.rb +0 -25
- data/lib/looksee/mri.bundle +0 -0
data/ext/mri/mri.c
CHANGED
@@ -1,56 +1,28 @@
|
|
1
1
|
#include "ruby.h"
|
2
2
|
|
3
|
-
#if RUBY_VERSION
|
4
|
-
# define VM_ASSERT(expr) ((void)0)
|
5
|
-
#endif
|
6
|
-
|
7
|
-
#include "method.h"
|
8
|
-
#include "internal.h"
|
9
|
-
|
10
|
-
#ifndef Looksee_method_table_foreach
|
11
|
-
# define Looksee_method_table_foreach st_foreach
|
12
|
-
# define Looksee_method_table_lookup st_lookup
|
13
|
-
#endif
|
14
|
-
|
15
|
-
#if RUBY_VERSION < 230
|
16
|
-
static int add_method_if_undefined(ID method_name, rb_method_entry_t *me, VALUE *names) {
|
17
|
-
# ifdef ID_ALLOCATOR
|
18
|
-
/* The allocator can be undefined with rb_undef_alloc_func, e.g. Struct. */
|
19
|
-
if (method_name == ID_ALLOCATOR)
|
20
|
-
return ST_CONTINUE;
|
21
|
-
# endif
|
22
|
-
|
23
|
-
if (UNDEFINED_METHOD_ENTRY_P(me))
|
24
|
-
rb_ary_push(*names, ID2SYM(method_name));
|
25
|
-
return ST_CONTINUE;
|
26
|
-
}
|
27
|
-
#endif
|
28
|
-
|
3
|
+
#if RUBY_VERSION < 320
|
29
4
|
/*
|
30
5
|
* Return the list of undefined instance methods (as Symbols) of the
|
31
6
|
* given internal class.
|
32
7
|
*/
|
33
8
|
VALUE Looksee_internal_undefined_instance_methods(VALUE self, VALUE klass) {
|
34
|
-
#if RUBY_VERSION >= 230
|
35
9
|
static int warned = 0;
|
36
10
|
if (!warned) {
|
37
|
-
rb_warn("Looksee cannot display undef-ed methods on MRI 2
|
11
|
+
rb_warn("Looksee cannot display undef-ed methods on MRI < 3.2");
|
38
12
|
warned = 1;
|
39
13
|
}
|
40
14
|
return rb_ary_new();
|
41
|
-
#else
|
42
|
-
VALUE names = rb_ary_new();
|
43
|
-
if (RCLASS_ORIGIN(klass) != klass)
|
44
|
-
klass = RCLASS_ORIGIN(klass);
|
45
|
-
Looksee_method_table_foreach(RCLASS_M_TBL(klass), add_method_if_undefined, (st_data_t)&names);
|
46
|
-
return names;
|
47
|
-
#endif
|
48
15
|
}
|
16
|
+
#endif
|
49
17
|
|
50
18
|
VALUE Looksee_singleton_instance(VALUE self, VALUE klass) {
|
51
19
|
if (!SPECIAL_CONST_P(klass) && BUILTIN_TYPE(klass) == T_CLASS && FL_TEST(klass, FL_SINGLETON)) {
|
52
|
-
|
53
|
-
|
20
|
+
#if RUBY_VERSION < 330
|
21
|
+
VALUE object = rb_ivar_get(klass, rb_intern("__attached__"));
|
22
|
+
#else
|
23
|
+
VALUE object = rb_class_attached_object(klass);
|
24
|
+
#endif
|
25
|
+
if (object == Qnil)
|
54
26
|
rb_raise(rb_eRuntimeError, "[looksee bug] can't find singleton object");
|
55
27
|
return object;
|
56
28
|
} else {
|
@@ -63,6 +35,8 @@ void Init_mri(void) {
|
|
63
35
|
VALUE mAdapter = rb_const_get(mLooksee, rb_intern("Adapter"));
|
64
36
|
VALUE mBase = rb_const_get(mAdapter, rb_intern("Base"));
|
65
37
|
VALUE mMRI = rb_define_class_under(mAdapter, "MRI", mBase);
|
38
|
+
#if RUBY_VERSION < 320
|
66
39
|
rb_define_method(mMRI, "internal_undefined_instance_methods", Looksee_internal_undefined_instance_methods, 1);
|
40
|
+
#endif
|
67
41
|
rb_define_method(mMRI, "singleton_instance", Looksee_singleton_instance, 1);
|
68
42
|
}
|
data/lib/looksee/adapter/base.rb
CHANGED
@@ -9,11 +9,11 @@ module Looksee
|
|
9
9
|
start =
|
10
10
|
begin
|
11
11
|
singleton_class = (class << object; self; end)
|
12
|
-
singleton_class unless has_no_methods?(singleton_class) && !(Class === object)
|
12
|
+
singleton_class unless has_no_methods?(singleton_class) && includes_no_modules?(singleton_class) && !(Class === object)
|
13
13
|
rescue TypeError # immediate object
|
14
14
|
end
|
15
15
|
start ||= Looksee.safe_call(Object, :class, object)
|
16
|
-
|
16
|
+
Looksee.safe_call(Module, :ancestors, start)
|
17
17
|
end
|
18
18
|
|
19
19
|
#
|
@@ -48,6 +48,14 @@ module Looksee
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
|
+
def undefined_instance_methods(mod)
|
52
|
+
if Module.method_defined?(:undefined_instance_methods)
|
53
|
+
mod.undefined_instance_methods
|
54
|
+
else
|
55
|
+
internal_undefined_instance_methods(mod)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
51
59
|
def internal_undefined_instance_methods(mod)
|
52
60
|
raise NotImplementedError, "abstract"
|
53
61
|
end
|
@@ -55,7 +63,13 @@ module Looksee
|
|
55
63
|
def has_no_methods?(mod)
|
56
64
|
[:public, :protected, :private].all? do |visibility|
|
57
65
|
Looksee.safe_call(Module, "#{visibility}_instance_methods", mod, false).empty?
|
58
|
-
end &&
|
66
|
+
end && undefined_instance_methods(mod).empty?
|
67
|
+
end
|
68
|
+
|
69
|
+
def includes_no_modules?(klass)
|
70
|
+
ancestors = Looksee.safe_call(Module, :ancestors, klass)
|
71
|
+
ancestors.size == 1 ||
|
72
|
+
klass.included_modules == klass.ancestors[1].included_modules
|
59
73
|
end
|
60
74
|
|
61
75
|
def singleton_instance(singleton_class)
|
data/lib/looksee/adapter.rb
CHANGED
data/lib/looksee/clean.rb
CHANGED
@@ -15,10 +15,11 @@ module Looksee
|
|
15
15
|
autoload :Help, 'looksee/help'
|
16
16
|
autoload :Inspector, 'looksee/inspector'
|
17
17
|
autoload :LookupPath, 'looksee/lookup_path'
|
18
|
+
autoload :PrettyPrintHack, 'looksee/pretty_print_hack'
|
18
19
|
|
19
20
|
class << self
|
20
21
|
#
|
21
|
-
# The default options passed to #
|
22
|
+
# The default options passed to #look.
|
22
23
|
#
|
23
24
|
# Default: <tt>[:public, :protected, :private, :undefined,
|
24
25
|
# :overridden]</tt>
|
@@ -165,8 +166,6 @@ module Looksee
|
|
165
166
|
case ruby_engine
|
166
167
|
when 'jruby'
|
167
168
|
self.adapter = Adapter::JRuby.new
|
168
|
-
when 'rbx'
|
169
|
-
self.adapter = Adapter::Rubinius.new
|
170
169
|
else
|
171
170
|
self.adapter = Adapter::MRI.new
|
172
171
|
end
|
data/lib/looksee/core_ext.rb
CHANGED
@@ -3,28 +3,40 @@ module Looksee
|
|
3
3
|
#
|
4
4
|
# Shortcut for Looksee[self, *args].
|
5
5
|
#
|
6
|
-
def
|
6
|
+
def look(*args)
|
7
7
|
Looksee[self, *args]
|
8
8
|
end
|
9
9
|
|
10
10
|
def self.rename(name) # :nodoc:
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
if name.is_a?(Hash)
|
12
|
+
warning = "You have renamed Looksee's method with Looksee.rename(#{name.inspect}).\n\n" +
|
13
|
+
"Looksee now uses #look instead of #ls."
|
14
|
+
if name[:ls].to_s == 'look'
|
15
|
+
warn warning << " You can remove this customization."
|
16
|
+
elsif name[:ls]
|
17
|
+
warn warning << " Please rename with Looksee.rename(#{name[:ls].inspect}), or remove this customization."
|
18
|
+
end
|
19
|
+
elsif name.to_s == 'look'
|
20
|
+
warn warning << " You can remove this customization."
|
21
|
+
end
|
22
|
+
|
23
|
+
name = name[:look] || name[:ls] if name.is_a?(Hash)
|
24
|
+
alias_method name, :look
|
25
|
+
remove_method :look
|
14
26
|
end
|
15
27
|
end
|
16
28
|
|
17
29
|
#
|
18
|
-
# Rename the #
|
30
|
+
# Rename the #look method, added to every object. Example:
|
19
31
|
#
|
20
|
-
# rename :
|
32
|
+
# rename :_look
|
21
33
|
#
|
22
|
-
# This renames Looksee's #
|
34
|
+
# This renames Looksee's #look method to #_look.
|
23
35
|
#
|
24
36
|
# For backward compatibility, the old-style invocation is also
|
25
|
-
# supported.
|
37
|
+
# supported. This is deprecated, and will shortly be removed.
|
26
38
|
#
|
27
|
-
# rename :
|
39
|
+
# rename :look => :_look
|
28
40
|
#
|
29
41
|
def self.rename(name)
|
30
42
|
ObjectMixin.rename(name)
|
data/lib/looksee/help.rb
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
module Looksee
|
2
2
|
class Help
|
3
|
+
include PrettyPrintHack
|
4
|
+
|
3
5
|
def inspect
|
4
6
|
<<-EOS.gsub(/^ *\|/, '')
|
5
7
|
|== Looksee Quick Reference
|
6
8
|
|
|
7
|
-
| \e[1mobject.
|
9
|
+
| \e[1mobject.look(*specifiers)\e[0m or \e[1mLooksee[object, *specifiers]\e[0m
|
8
10
|
|
|
9
11
|
| Print the methods of \`object\'.
|
10
12
|
|
|
@@ -41,7 +43,7 @@ module Looksee
|
|
41
43
|
| ...
|
42
44
|
| }
|
43
45
|
|
|
44
|
-
| \e[1mobject.
|
46
|
+
| \e[1mobject.look.edit(method)\e[0m
|
45
47
|
|
|
46
48
|
| Jump to the source of the given method. Set your editor
|
47
49
|
| with Looksee.editor or the LOOKSEE_EDITOR environment
|
data/lib/looksee/inspector.rb
CHANGED
data/lib/looksee/lookup_path.rb
CHANGED
@@ -89,7 +89,7 @@ module Looksee
|
|
89
89
|
methods[method.to_s] = visibility
|
90
90
|
end
|
91
91
|
end
|
92
|
-
Looksee.adapter.
|
92
|
+
Looksee.adapter.undefined_instance_methods(@module).each do |method|
|
93
93
|
methods[method.to_s] = :undefined
|
94
94
|
end
|
95
95
|
methods
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Looksee
|
2
|
+
module PrettyPrintHack
|
3
|
+
def pretty_print(pp)
|
4
|
+
# In the default IRB inspect mode (pp), IRB assumes that an inspect string
|
5
|
+
# that doesn't look like a bunch of known patterns is a code blob, and
|
6
|
+
# formats accordingly. That messes up our color escapes.
|
7
|
+
if Object.const_defined?(:IRB) && IRB.const_defined?(:ColorPrinter) && pp.is_a?(IRB::ColorPrinter)
|
8
|
+
PP.instance_method(:text).bind(pp).call(inspect)
|
9
|
+
else
|
10
|
+
pp.text(inspect)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/looksee/version.rb
CHANGED
@@ -67,6 +67,14 @@ describe "Looksee.adapter" do
|
|
67
67
|
['[C]', '[Object]', '[BasicObject]', 'Class', 'Module', 'Object', 'Kernel', 'BasicObject']
|
68
68
|
end
|
69
69
|
|
70
|
+
it "should contain entries for modules included in the singleton class" do
|
71
|
+
temporary_module :M
|
72
|
+
c = Object.new
|
73
|
+
c.extend(M)
|
74
|
+
filtered_lookup_modules(c).should ==
|
75
|
+
['[Object instance]', 'M', 'Object', 'Kernel', 'BasicObject']
|
76
|
+
end
|
77
|
+
|
70
78
|
it "should work for immediate objects" do
|
71
79
|
if RUBY_VERSION >= "2.4.0"
|
72
80
|
filtered_lookup_modules(1).first.should == 'Integer'
|
@@ -76,61 +84,59 @@ describe "Looksee.adapter" do
|
|
76
84
|
end
|
77
85
|
end
|
78
86
|
|
79
|
-
describe "
|
87
|
+
describe ".undefined_instance_methods" do
|
80
88
|
def self.target_method(name)
|
81
89
|
define_method(:target_method){name}
|
82
90
|
end
|
83
91
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
end
|
92
|
+
if Looksee.ruby_engine == 'ruby' && RUBY_VERSION >= '2.3' && RUBY_VERSION < '3.2'
|
93
|
+
it "just returns an empty array" do
|
94
|
+
temporary_class :C
|
95
|
+
add_methods C, undefined: [:f]
|
96
|
+
@adapter.undefined_instance_methods(C).should == []
|
97
|
+
end
|
98
|
+
else
|
99
|
+
it "should return the list of undefined instance methods directly on a class" do
|
100
|
+
temporary_class :C
|
101
|
+
add_methods(C, undefined: [:f])
|
102
|
+
@adapter.undefined_instance_methods(C).should == [:f]
|
103
|
+
end
|
97
104
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
105
|
+
it "should return the list of undefined instance methods directly on a module" do
|
106
|
+
temporary_module :M
|
107
|
+
add_methods(M, undefined: [:f])
|
108
|
+
@adapter.undefined_instance_methods(M).should == [:f]
|
109
|
+
end
|
103
110
|
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
111
|
+
it "should return the list of undefined instance methods directly on a singleton class" do
|
112
|
+
temporary_class :C
|
113
|
+
c = C.new
|
114
|
+
add_methods(c.singleton_class, undefined: [:f])
|
115
|
+
@adapter.undefined_instance_methods(c.singleton_class).should == [:f]
|
116
|
+
end
|
110
117
|
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
118
|
+
it "should return the list of undefined instance methods directly on a class' singleton class" do
|
119
|
+
temporary_class :C
|
120
|
+
add_methods(C.singleton_class, undefined: [:f])
|
121
|
+
@adapter.undefined_instance_methods(C.singleton_class).should == [:f]
|
122
|
+
end
|
116
123
|
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
124
|
+
it "should not return defined methods" do
|
125
|
+
temporary_class :C
|
126
|
+
C.send(:define_method, :f){}
|
127
|
+
@adapter.undefined_instance_methods(C).should == []
|
128
|
+
end
|
122
129
|
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
130
|
+
it "should not return removed methods" do
|
131
|
+
temporary_class :C
|
132
|
+
C.send(:define_method, :f){}
|
133
|
+
C.send(:remove_method, :f)
|
134
|
+
@adapter.undefined_instance_methods(C).should == []
|
135
|
+
end
|
129
136
|
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
end
|
137
|
+
it "should handle the MRI allocator being undefined (e.g. Struct)" do
|
138
|
+
struct_singleton_class = (class << Struct; self; end)
|
139
|
+
@adapter.undefined_instance_methods(struct_singleton_class).should == []
|
134
140
|
end
|
135
141
|
end
|
136
142
|
end
|
@@ -1,14 +1,14 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Looksee::ObjectMixin do
|
4
|
-
describe "#
|
4
|
+
describe "#look" do
|
5
5
|
before do
|
6
6
|
@object = Object.new
|
7
7
|
Looksee.stub(:default_specifiers).and_return([])
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should return an Inspector for the object's lookup path using the given arguments" do
|
11
|
-
result = @object.
|
11
|
+
result = @object.look(:private)
|
12
12
|
result.should be_a(Looksee::Inspector)
|
13
13
|
result.lookup_path.object.should.equal?(@object)
|
14
14
|
result.visibilities.should == Set[:private]
|
@@ -150,6 +150,48 @@ describe Looksee::Inspector do
|
|
150
150
|
end
|
151
151
|
end
|
152
152
|
|
153
|
+
describe "#pretty_print" do
|
154
|
+
before do
|
155
|
+
Looksee.stub(:default_lookup_path_options).and_return({})
|
156
|
+
Looksee.stub(:styles).and_return(Hash.new{"\e[1;31m%s\e[0m"})
|
157
|
+
|
158
|
+
@object = Object.new
|
159
|
+
temporary_class :C
|
160
|
+
Looksee.adapter.ancestors[@object] = [C]
|
161
|
+
|
162
|
+
add_methods C, public: ['aa']
|
163
|
+
@lookup_path = Looksee::LookupPath.new(@object)
|
164
|
+
@inspector = Looksee::Inspector.new(@lookup_path, :visibilities => [:public])
|
165
|
+
end
|
166
|
+
|
167
|
+
it "should produce the same output as #inspect" do
|
168
|
+
pp = PP.new
|
169
|
+
@inspector.pretty_print(pp)
|
170
|
+
pp.output.should == <<-EOS.demargin.chomp
|
171
|
+
|\e[1;31mC\e[0m
|
172
|
+
| \e[1;31maa\e[0m
|
173
|
+
EOS
|
174
|
+
end
|
175
|
+
|
176
|
+
it "should not get messed up by IRB::ColorPrinter" do
|
177
|
+
begin
|
178
|
+
require 'irb/color_printer'
|
179
|
+
has_irb_color_printer = true
|
180
|
+
rescue LoadError
|
181
|
+
has_irb_color_printer = false
|
182
|
+
end
|
183
|
+
|
184
|
+
if has_irb_color_printer
|
185
|
+
pp = IRB::ColorPrinter.new
|
186
|
+
@inspector.pretty_print(pp)
|
187
|
+
pp.output.should == <<-EOS.demargin.chomp
|
188
|
+
|\e[1;31mC\e[0m
|
189
|
+
| \e[1;31maa\e[0m
|
190
|
+
EOS
|
191
|
+
end
|
192
|
+
end
|
193
|
+
end
|
194
|
+
|
153
195
|
describe ".styles" do
|
154
196
|
before do
|
155
197
|
styles = {
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: looksee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- George Ogata
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-03-28 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email:
|
@@ -26,12 +26,6 @@ files:
|
|
26
26
|
- README.markdown
|
27
27
|
- Rakefile
|
28
28
|
- ext/extconf.rb
|
29
|
-
- ext/mri/2.1.0/internal.h
|
30
|
-
- ext/mri/2.1.0/method.h
|
31
|
-
- ext/mri/2.2.0/internal.h
|
32
|
-
- ext/mri/2.2.0/method.h
|
33
|
-
- ext/mri/2.3.0/internal.h
|
34
|
-
- ext/mri/2.3.0/method.h
|
35
29
|
- ext/mri/2.7.0/internal.h
|
36
30
|
- ext/mri/2.7.0/method.h
|
37
31
|
- ext/mri/3.0.0/id_table.h
|
@@ -45,12 +39,21 @@ files:
|
|
45
39
|
- ext/mri/3.0.0/internal/static_assert.h
|
46
40
|
- ext/mri/3.0.0/internal/warnings.h
|
47
41
|
- ext/mri/3.0.0/method.h
|
42
|
+
- ext/mri/3.2.0/id_table.h
|
43
|
+
- ext/mri/3.2.0/internal.h
|
44
|
+
- ext/mri/3.2.0/internal/array.h
|
45
|
+
- ext/mri/3.2.0/internal/class.h
|
46
|
+
- ext/mri/3.2.0/internal/compilers.h
|
47
|
+
- ext/mri/3.2.0/internal/gc.h
|
48
|
+
- ext/mri/3.2.0/internal/imemo.h
|
49
|
+
- ext/mri/3.2.0/internal/serial.h
|
50
|
+
- ext/mri/3.2.0/internal/static_assert.h
|
51
|
+
- ext/mri/3.2.0/internal/warnings.h
|
52
|
+
- ext/mri/3.2.0/method.h
|
48
53
|
- ext/mri/mri.c
|
49
|
-
- ext/rbx/rbx.c
|
50
54
|
- lib/looksee.rb
|
51
55
|
- lib/looksee/adapter.rb
|
52
56
|
- lib/looksee/adapter/base.rb
|
53
|
-
- lib/looksee/adapter/rubinius.rb
|
54
57
|
- lib/looksee/clean.rb
|
55
58
|
- lib/looksee/columnizer.rb
|
56
59
|
- lib/looksee/core_ext.rb
|
@@ -58,7 +61,7 @@ files:
|
|
58
61
|
- lib/looksee/help.rb
|
59
62
|
- lib/looksee/inspector.rb
|
60
63
|
- lib/looksee/lookup_path.rb
|
61
|
-
- lib/looksee/
|
64
|
+
- lib/looksee/pretty_print_hack.rb
|
62
65
|
- lib/looksee/version.rb
|
63
66
|
- spec/looksee/adapter_spec.rb
|
64
67
|
- spec/looksee/clean_spec.rb
|
@@ -83,14 +86,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
83
86
|
requirements:
|
84
87
|
- - ">="
|
85
88
|
- !ruby/object:Gem::Version
|
86
|
-
version: '2.
|
89
|
+
version: '2.7'
|
87
90
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
91
|
requirements:
|
89
92
|
- - ">="
|
90
93
|
- !ruby/object:Gem::Version
|
91
94
|
version: '0'
|
92
95
|
requirements: []
|
93
|
-
rubygems_version: 3.
|
96
|
+
rubygems_version: 3.5.9
|
94
97
|
signing_key:
|
95
98
|
specification_version: 3
|
96
99
|
summary: Supercharged method introspection in IRB.
|