looksee 2.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 043c93dbfb3a9b3265c16bad31a24a55d44347dc
4
- data.tar.gz: 7bf0c2ddc5754750249f294558b745735cd6df5c
3
+ metadata.gz: 9d5b5cb3860af73f5d3800d9f580eecafa4c4f6f
4
+ data.tar.gz: eafb21b450e03a9a1620937aa646013aa3684516
5
5
  SHA512:
6
- metadata.gz: 3c4b7518aa4038be29936338144dec78cd168d79ff0aafefa5f9a6b952ef17e493e3bdf1b651b756a1693adcd5b8d53ab6954cc3fe86439e3e4c680204bbf6b5
7
- data.tar.gz: dade1e434a9b715cac40ffc689bfe1d5ba2da064a7f33bcad870b693c4dbc93772e769af422161edb0eb1713e8ad02f41b75b5b697e422bd8f98d39c68389c38
6
+ metadata.gz: 9be481e1b3359c05ec6be675284bf370dc9fecab2c9f42a6c6b81ecf454ed238b243111f48d5d17c1549afaf05cc06c44be4745bb0f64be31bd2de13526762c5
7
+ data.tar.gz: c146b1c1b04970ae648d561eea58ef80e9cc9b309c8740a2696592284d360ac6ec60a45f7aa342c92dd14a057b0365ba79488b65d3e0c810a6c2d96e9a7a1cb7
data/CHANGELOG CHANGED
@@ -1,3 +1,9 @@
1
+ == 2.1.0 2014-03-05
2
+
3
+ * Add alternative syntax: Looksee[object, *args]. Useful for BasicObject
4
+ instances, and proxies which delegate #ls via method_missing.
5
+ * Fix display of origin classes (used when modules are prepended).
6
+
1
7
  == 2.0.0 2014-01-01
2
8
 
3
9
  * Support for MRI 2.1, JRuby 1.7, Rubinius 2.2.
data/README.markdown CHANGED
@@ -115,19 +115,35 @@ Or filter the list by Regexp:
115
115
  Array
116
116
  to_a to_ary to_s to_yaml
117
117
 
118
- And if you want to know more about any of those methods, Looksee can
118
+ ## Proxy objects
119
+
120
+ Objects that delegate everything via `method_missing` to some other object can
121
+ be tricky, because they will delegate `ls` itself. To view such objects, you can
122
+ always do:
123
+
124
+ Looksee[object]
125
+
126
+ This method inspects the object via interpreter extensions, so it works for the
127
+ most Byzantine object. It will also work for `BasicObject` instances that don't
128
+ have an `ls` method. `Object#ls` is simply a wrapper around `Looksee.[]`.
129
+
130
+ ## To the source!
131
+
132
+ If you want to know more about any of those methods, Looksee can
119
133
  take you straight to the source in your editor:
120
134
 
121
- > [].ls.edit :to_set
135
+ [].ls.edit :to_set
122
136
 
123
137
  By default, this uses `vi`; customize it like this:
124
138
 
125
139
  # %f = file, %l = line number
126
140
  Looksee.editor = "mate -l%l %f"
127
141
 
128
- See more in the quick reference:
142
+ ## Quick Reference
143
+
144
+ We've got one:
129
145
 
130
- irb> Looksee.help
146
+ Looksee.help
131
147
 
132
148
  Enjoy!
133
149
 
data/ext/mri/mri.c CHANGED
@@ -62,25 +62,6 @@ VALUE Looksee_internal_class(VALUE self, VALUE object) {
62
62
  return CLASS_OF(object);
63
63
  }
64
64
 
65
- /*
66
- * Return the class or module that the given internal class
67
- * represents.
68
- *
69
- * If a class is given, this is the class. If an iclass is given,
70
- * this is the module it represents in the lookup chain.
71
- */
72
- VALUE Looksee_internal_class_to_module(VALUE self, VALUE internal_class) {
73
- if (!SPECIAL_CONST_P(internal_class)) {
74
- switch (BUILTIN_TYPE(internal_class)) {
75
- case T_ICLASS:
76
- return RBASIC(internal_class)->klass;
77
- case T_CLASS:
78
- return internal_class;
79
- }
80
- }
81
- rb_raise(rb_eArgError, "not an internal class: %s", RSTRING_PTR(rb_inspect(internal_class)));
82
- }
83
-
84
65
  #if RUBY_VERSION >= 192
85
66
 
86
67
  # define VISIBILITY_TYPE rb_method_flag_t
@@ -208,6 +189,15 @@ VALUE Looksee_internal_undefined_instance_methods(VALUE self, VALUE klass) {
208
189
  return names;
209
190
  }
210
191
 
192
+ /*
193
+ * Return true if the given object is an included class or origin class, false
194
+ * otherwise.
195
+ */
196
+ VALUE Looksee_included_class_p(VALUE self, VALUE object) {
197
+ return !SPECIAL_CONST_P(object) && BUILTIN_TYPE(object) == T_ICLASS ?
198
+ Qtrue : Qfalse;
199
+ }
200
+
211
201
  VALUE Looksee_singleton_class_p(VALUE self, VALUE object) {
212
202
  return BUILTIN_TYPE(object) == T_CLASS && FL_TEST(object, FL_SINGLETON) ? Qtrue : Qfalse;
213
203
  }
@@ -227,6 +217,12 @@ VALUE Looksee_module_name(VALUE self, VALUE module) {
227
217
  if (BUILTIN_TYPE(module) == T_CLASS || BUILTIN_TYPE(module) == T_MODULE) {
228
218
  VALUE name = rb_mod_name(module);
229
219
  return name == Qnil ? rb_str_new2("") : name;
220
+ } else if (BUILTIN_TYPE(module) == T_ICLASS) {
221
+ VALUE wrapped = RBASIC(module)->klass;
222
+ VALUE name = Looksee_module_name(self, wrapped);
223
+ if (BUILTIN_TYPE(wrapped) == T_CLASS)
224
+ name = rb_str_cat2(name, " (origin)");
225
+ return name;
230
226
  } else {
231
227
  rb_raise(rb_eTypeError, "expected module, got %s", rb_obj_classname(module));
232
228
  }
@@ -291,11 +287,11 @@ void Init_mri(void) {
291
287
  VALUE mMRI = rb_define_class_under(mAdapter, "MRI", mBase);
292
288
  rb_define_method(mMRI, "internal_superclass", Looksee_internal_superclass, 1);
293
289
  rb_define_method(mMRI, "internal_class", Looksee_internal_class, 1);
294
- rb_define_method(mMRI, "internal_class_to_module", Looksee_internal_class_to_module, 1);
295
290
  rb_define_method(mMRI, "internal_public_instance_methods", Looksee_internal_public_instance_methods, 1);
296
291
  rb_define_method(mMRI, "internal_protected_instance_methods", Looksee_internal_protected_instance_methods, 1);
297
292
  rb_define_method(mMRI, "internal_private_instance_methods", Looksee_internal_private_instance_methods, 1);
298
293
  rb_define_method(mMRI, "internal_undefined_instance_methods", Looksee_internal_undefined_instance_methods, 1);
294
+ rb_define_method(mMRI, "included_class?", Looksee_included_class_p, 1);
299
295
  rb_define_method(mMRI, "singleton_class?", Looksee_singleton_class_p, 1);
300
296
  rb_define_method(mMRI, "singleton_instance", Looksee_singleton_instance, 1);
301
297
  rb_define_method(mMRI, "module_name", Looksee_module_name, 1);
Binary file
@@ -9,7 +9,7 @@ module Looksee
9
9
  modules = []
10
10
  klass = internal_class(object)
11
11
  while klass
12
- modules << internal_class_to_module(klass)
12
+ modules << klass
13
13
  klass = internal_superclass(klass)
14
14
  end
15
15
  modules
@@ -28,7 +28,7 @@ module Looksee
28
28
  object = singleton_instance(object)
29
29
  end
30
30
 
31
- if object.is_a?(Module)
31
+ if included_class?(mod) || object.is_a?(Module)
32
32
  description = module_name(object)
33
33
  if description.empty?
34
34
  description = "unnamed #{object.is_a?(Class) ? 'Class' : 'Module'}"
@@ -52,7 +52,7 @@ module Looksee
52
52
  raise NotImplementedError, "abstract"
53
53
  end
54
54
 
55
- def internal_class_to_module(internal_class)
55
+ def included_class?(object)
56
56
  raise NotImplementedError, "abstract"
57
57
  end
58
58
 
@@ -8,27 +8,23 @@ module Looksee
8
8
  klass.direct_superclass
9
9
  end
10
10
 
11
- def internal_class_to_module(internal_class)
12
- if internal_class.is_a?(::Rubinius::IncludedModule)
13
- internal_class.module
14
- else
15
- internal_class
16
- end
17
- end
18
-
19
11
  def internal_public_instance_methods(mod)
12
+ return [] if !mod.origin.equal?(mod)
20
13
  mod.method_table.public_names
21
14
  end
22
15
 
23
16
  def internal_protected_instance_methods(mod)
17
+ return [] if !mod.origin.equal?(mod)
24
18
  mod.method_table.protected_names
25
19
  end
26
20
 
27
21
  def internal_private_instance_methods(mod)
22
+ return [] if !mod.origin.equal?(mod)
28
23
  mod.method_table.private_names
29
24
  end
30
25
 
31
26
  def internal_undefined_instance_methods(mod)
27
+ return [] if !mod.origin.equal?(mod)
32
28
  names = []
33
29
  mod.method_table.entries.each do |(name, method, visibility)|
34
30
  names << name if visibility.equal?(:undef)
@@ -36,6 +32,10 @@ module Looksee
36
32
  names
37
33
  end
38
34
 
35
+ def included_class?(object)
36
+ object.is_a?(::Rubinius::IncludedModule)
37
+ end
38
+
39
39
  def singleton_class?(object)
40
40
  object.is_a?(Class) && !!::Rubinius::Type.singleton_class_object(object)
41
41
  end
@@ -50,7 +50,13 @@ module Looksee
50
50
  mod.is_a?(Module) or
51
51
  raise TypeError, "expected module, got #{mod.class}"
52
52
 
53
- if ::Rubinius::Type.respond_to?(:module_name)
53
+ if ::Rubinius::IncludedModule === mod
54
+ if Class === mod.module
55
+ "#{module_name(mod.module)} (origin)"
56
+ else
57
+ module_name(mod.module)
58
+ end
59
+ elsif ::Rubinius::Type.respond_to?(:module_name)
54
60
  ::Rubinius::Type.module_name(mod) || ''
55
61
  else
56
62
  mod.__name__
data/lib/looksee/clean.rb CHANGED
@@ -90,6 +90,48 @@ module Looksee
90
90
  #
91
91
  attr_accessor :ruby_engine
92
92
 
93
+ #
94
+ # Return a Looksee::Inspector for the given +object+.
95
+ #
96
+ # +args+ is an optional list of specifiers.
97
+ #
98
+ # * +:public+ - include public methods
99
+ # * +:protected+ - include public methods
100
+ # * +:private+ - include public methods
101
+ # * +:undefined+ - include public methods (see Module#undef_method)
102
+ # * +:overridden+ - include public methods
103
+ # * +:nopublic+ - include public methods
104
+ # * +:noprotected+ - include public methods
105
+ # * +:noprivate+ - include public methods
106
+ # * +:noundefined+ - include public methods (see Module#undef_method)
107
+ # * +:nooverridden+ - include public methods
108
+ # * a string - only include methods containing this string (may
109
+ # be used multiple times)
110
+ # * a regexp - only include methods matching this regexp (may
111
+ # be used multiple times)
112
+ #
113
+ # The default (if options is nil or omitted) is given by
114
+ # #default_lookup_path_options.
115
+ #
116
+ def [](object, *args)
117
+ options = {:visibilities => Set[], :filters => Set[]}
118
+ (Looksee.default_specifiers + args).each do |arg|
119
+ case arg
120
+ when String, Regexp
121
+ options[:filters] << arg
122
+ when :public, :protected, :private, :undefined, :overridden
123
+ options[:visibilities].add(arg)
124
+ when :nopublic, :noprotected, :noprivate, :noundefined, :nooverridden
125
+ visibility = arg.to_s.sub(/\Ano/, '').to_sym
126
+ options[:visibilities].delete(visibility)
127
+ else
128
+ raise ArgumentError, "invalid specifier: #{arg.inspect}"
129
+ end
130
+ end
131
+ lookup_path = LookupPath.new(object)
132
+ Inspector.new(lookup_path, options)
133
+ end
134
+
93
135
  #
94
136
  # Show a quick reference.
95
137
  #
@@ -1,45 +1,10 @@
1
1
  module Looksee
2
2
  module ObjectMixin
3
3
  #
4
- # Return a Looksee::Inspector for this object.
5
- #
6
- # +args+ is an optional list of specifiers.
7
- #
8
- # * +:public+ - include public methods
9
- # * +:protected+ - include public methods
10
- # * +:private+ - include public methods
11
- # * +:undefined+ - include public methods (see Module#undef_method)
12
- # * +:overridden+ - include public methods
13
- # * +:nopublic+ - include public methods
14
- # * +:noprotected+ - include public methods
15
- # * +:noprivate+ - include public methods
16
- # * +:noundefined+ - include public methods (see Module#undef_method)
17
- # * +:nooverridden+ - include public methods
18
- # * a string - only include methods containing this string (may
19
- # be used multiple times)
20
- # * a regexp - only include methods matching this regexp (may
21
- # be used multiple times)
22
- #
23
- # The default (if options is nil or omitted) is given by
24
- # #default_lookup_path_options.
4
+ # Shortcut for Looksee[self, *args].
25
5
  #
26
6
  def ls(*args)
27
- options = {:visibilities => Set[], :filters => Set[]}
28
- (Looksee.default_specifiers + args).each do |arg|
29
- case arg
30
- when String, Regexp
31
- options[:filters] << arg
32
- when :public, :protected, :private, :undefined, :overridden
33
- options[:visibilities].add(arg)
34
- when :nopublic, :noprotected, :noprivate, :noundefined, :nooverridden
35
- visibility = arg.to_s.sub(/\Ano/, '').to_sym
36
- options[:visibilities].delete(visibility)
37
- else
38
- raise ArgumentError, "invalid specifier: #{arg.inspect}"
39
- end
40
- end
41
- lookup_path = LookupPath.new(self)
42
- Inspector.new(lookup_path, options)
7
+ Looksee[self, *args]
43
8
  end
44
9
 
45
10
  def self.rename(name) # :nodoc:
data/lib/looksee/help.rb CHANGED
@@ -4,7 +4,7 @@ module Looksee
4
4
  <<-EOS.gsub(/^ *\|/, '')
5
5
  |== Looksee Quick Reference
6
6
  |
7
- | object.ls(*specifiers)
7
+ | object.ls(*specifiers) or Looksee[object, *specifiers]
8
8
  | Print the methods of \`object\'.
9
9
  |
10
10
  | Available specifiers:
Binary file
@@ -1,5 +1,5 @@
1
1
  module Looksee
2
- VERSION = [2, 0, 0]
2
+ VERSION = [2, 1, 0]
3
3
 
4
4
  class << VERSION
5
5
  include Comparable
@@ -14,8 +14,9 @@ describe "Looksee.adapter" do
14
14
  # of singleton classes, since they have no name.
15
15
  #
16
16
  def filtered_lookup_modules(object)
17
- result = @adapter.lookup_modules(object)
18
- result.select{ |mod| deterministic_module?(mod) }
17
+ result = @adapter.lookup_modules(object).
18
+ map { |mod| @adapter.describe_module(mod) }.
19
+ select{ |description| deterministic_module?(description) }
19
20
  end
20
21
 
21
22
  #
@@ -25,7 +26,7 @@ describe "Looksee.adapter" do
25
26
  # This excludes ruby version dependent modules, and modules tossed
26
27
  # into the hierarchy by testing frameworks.
27
28
  #
28
- def deterministic_module?(mod)
29
+ def deterministic_module?(description)
29
30
  junk_patterns = [
30
31
  # pollution from testing libraries
31
32
  'Mocha', 'Spec',
@@ -38,25 +39,10 @@ describe "Looksee.adapter" do
38
39
  # something pulls this in under ruby 1.9
39
40
  'PP',
40
41
  # our own pollution,
41
- 'Looksee::Object',
42
+ 'Looksee::ObjectMixin',
42
43
  ]
43
- pattern = /\A(#{junk_patterns.join('|')})/
44
-
45
- # Singleton classes of junk are junk.
46
- if Looksee.ruby_engine == 'rbx'
47
- # Rubinius singleton class #inspect strings aren't formatted
48
- # like the others.
49
- while mod.respond_to?(:__metaclass_object__) && (object = mod.__metaclass_object__).is_a?(Class)
50
- mod = object
51
- end
52
- mod.name !~ pattern
53
- else
54
- name = mod.to_s
55
- while name =~ /\A#<Class:(.*)>\z/
56
- name = $1
57
- end
58
- name !~ pattern
59
- end
44
+ pattern = /\b(#{junk_patterns.join('|')})\b/
45
+ description !~ pattern
60
46
  end
61
47
 
62
48
  it "should contain an entry for each module in the object's lookup path" do
@@ -67,23 +53,26 @@ describe "Looksee.adapter" do
67
53
  include Mod1
68
54
  include Mod2
69
55
  end
70
- filtered_lookup_modules(Derived.new) == [Derived, Mod2, Mod1, Base, Object, Kernel]
56
+ filtered_lookup_modules(Derived.new) ==
57
+ ['Derived', 'Mod2', 'Mod1', 'Base', 'Object', 'Kernel']
71
58
  end
72
59
 
73
60
  it "should contain an entry for the object's singleton class if it exists" do
74
61
  object = Object.new
75
62
  object.singleton_class
76
63
 
77
- filtered_lookup_modules(object).should == [object.singleton_class, Object, Kernel]
64
+ filtered_lookup_modules(object).should ==
65
+ ['[Object instance]', 'Object', 'Kernel']
78
66
  end
79
67
 
80
68
  it "should contain entries for singleton classes of all ancestors for class objects" do
81
69
  temporary_class :C
82
- filtered_lookup_modules(C).should == [C.singleton_class, Object.singleton_class, Class, Module, Object, Kernel]
70
+ filtered_lookup_modules(C).should ==
71
+ ['[C]', '[Object]', 'Class', 'Module', 'Object', 'Kernel']
83
72
  end
84
73
 
85
74
  it "should work for immediate objects" do
86
- filtered_lookup_modules(1).first.should == Fixnum
75
+ filtered_lookup_modules(1).first.should == 'Fixnum'
87
76
  end
88
77
  end
89
78
 
@@ -118,13 +107,27 @@ describe "Looksee.adapter" do
118
107
  @adapter.send(target_method, C.singleton_class).to_set.should == Set[:one, :two]
119
108
  end
120
109
 
121
- # Worth checking as ruby keeps undef'd methods in method tables.
122
110
  it "should not return undefined methods" do
123
111
  temporary_class :C
124
112
  add_methods C, visibility => [:removed]
125
113
  C.send(:undef_method, :removed)
126
114
  @adapter.send(target_method, C).to_set.should == Set[]
127
115
  end
116
+
117
+ if RUBY_VERSION >= '2'
118
+ it "should return methods only for origin classes" do
119
+ temporary_class :C
120
+ add_methods C, visibility => :one
121
+ temporary_module :M
122
+ add_methods M, visibility => :one
123
+ C.send(:prepend, M)
124
+ @adapter.send(target_method, C).should be_empty
125
+
126
+ origin = @adapter.lookup_modules(C.new).
127
+ find { |mod| @adapter.describe_module(mod) == 'C (origin)' }
128
+ @adapter.send(target_method, origin).should_not be_empty
129
+ end
130
+ end
128
131
  end
129
132
 
130
133
  def self.it_should_not_list_methods_with_visibility(visibility1, visibility2)
@@ -200,6 +203,24 @@ describe "Looksee.adapter" do
200
203
  struct_singleton_class = (class << Struct; self; end)
201
204
  @adapter.internal_undefined_instance_methods(struct_singleton_class).should == []
202
205
  end
206
+
207
+ if RUBY_VERSION >= '2'
208
+ it "should return an empty list for non-origin classes" do
209
+ temporary_class :C
210
+ C.send(:define_method, :f){}
211
+ C.send(:undef_method, :f)
212
+ temporary_module :M
213
+ M.send(:define_method, :f){}
214
+ M.send(:undef_method, :f)
215
+ C.send(:prepend, M)
216
+
217
+ @adapter.internal_undefined_instance_methods(C).should be_empty
218
+
219
+ origin = @adapter.lookup_modules(C.new).
220
+ find { |mod| @adapter.describe_module(mod) == 'C (origin)' }
221
+ @adapter.internal_undefined_instance_methods(origin).should_not be_empty
222
+ end
223
+ end
203
224
  end
204
225
  end
205
226
 
@@ -1,40 +1,40 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Looksee::ObjectMixin do
4
- describe "#ls" do
3
+ describe Looksee do
4
+ describe ".[]" do
5
5
  before do
6
6
  @object = Object.new
7
7
  Looksee.stub(:default_specifiers).and_return([:public, :overridden])
8
8
  end
9
9
 
10
10
  it "should return an Inspector for the object's lookup path" do
11
- result = @object.ls
11
+ result = Looksee[@object]
12
12
  result.should be_a(Looksee::Inspector)
13
13
  result.lookup_path.object.should.equal?(@object)
14
14
  end
15
15
 
16
16
  it "should use Looksee.default_specifiers if no args are given" do
17
- @object.ls.visibilities.should == Set[:public, :overridden]
17
+ Looksee[@object].visibilities.should == Set[:public, :overridden]
18
18
  end
19
19
 
20
20
  it "should set visibilities from the given symbols" do
21
- inspector = @object.ls(:private)
21
+ inspector = Looksee[@object, :private]
22
22
  inspector.visibilities.should == Set[:public, :overridden, :private]
23
23
  end
24
24
 
25
25
  it "should unset visibilities from the given 'no' symbols" do
26
- inspector = @object.ls(:nooverridden)
26
+ inspector = Looksee[@object, :nooverridden]
27
27
  inspector.visibilities.should == Set[:public]
28
28
  end
29
29
 
30
30
  it "should set filters from the given strings and regexp" do
31
- inspector = @object.ls('aa', /bb/)
31
+ inspector = Looksee[@object, 'aa', /bb/]
32
32
  inspector.filters.should == Set['aa', /bb/]
33
33
  end
34
34
 
35
35
  it "should raise an ArgumentError if an invalid argument is given" do
36
36
  lambda do
37
- @object.ls(Object.new)
37
+ Looksee[@object, Object.new]
38
38
  end.should raise_error(ArgumentError)
39
39
  end
40
40
  end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe Looksee::ObjectMixin do
4
+ describe "#ls" do
5
+ before do
6
+ @object = Object.new
7
+ Looksee.stub(:default_specifiers).and_return([])
8
+ end
9
+
10
+ it "should return an Inspector for the object's lookup path using the given arguments" do
11
+ result = @object.ls(:private)
12
+ result.should be_a(Looksee::Inspector)
13
+ result.lookup_path.object.should.equal?(@object)
14
+ result.visibilities.should == Set[:private]
15
+ end
16
+ end
17
+ end
File without changes
@@ -19,6 +19,10 @@ class TestAdapter < Looksee::Adapter::Base
19
19
  undefined_methods[mod]
20
20
  end
21
21
 
22
+ def included_class?(object)
23
+ NATIVE_ADAPTER.included_class?(object)
24
+ end
25
+
22
26
  def singleton_class?(object)
23
27
  NATIVE_ADAPTER.singleton_class?(object)
24
28
  end
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: 2.0.0
4
+ version: 2.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: 2014-01-01 00:00:00.000000000 Z
11
+ date: 2014-03-05 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
@@ -64,20 +64,21 @@ files:
64
64
  - lib/looksee/help.rb
65
65
  - lib/looksee/inspector.rb
66
66
  - lib/looksee/lookup_path.rb
67
- - lib/looksee/shortcuts.rb
67
+ - lib/looksee/rbx.bundle
68
68
  - lib/looksee/version.rb
69
69
  - lib/looksee/wirble_compatibility.rb
70
- - spec/adapter_spec.rb
71
- - spec/columnizer_spec.rb
72
- - spec/core_ext_spec.rb
73
- - spec/editor_spec.rb
74
- - spec/inspector_spec.rb
75
- - spec/lookup_path_spec.rb
70
+ - spec/looksee/adapter_spec.rb
71
+ - spec/looksee/clean_spec.rb
72
+ - spec/looksee/columnizer_spec.rb
73
+ - spec/looksee/core_ext_spec.rb
74
+ - spec/looksee/editor_spec.rb
75
+ - spec/looksee/inspector_spec.rb
76
+ - spec/looksee/lookup_path_spec.rb
77
+ - spec/looksee/wirble_compatibility_spec.rb
76
78
  - spec/spec_helper.rb
77
79
  - spec/support/core_ext.rb
78
80
  - spec/support/temporary_classes.rb
79
81
  - spec/support/test_adapter.rb
80
- - spec/wirble_compatibility_spec.rb
81
82
  homepage: http://github.com/oggy/looksee
82
83
  licenses:
83
84
  - MIT
@@ -98,19 +99,20 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
99
  version: '0'
99
100
  requirements: []
100
101
  rubyforge_project:
101
- rubygems_version: 2.2.0
102
+ rubygems_version: 2.2.2
102
103
  signing_key:
103
104
  specification_version: 3
104
105
  summary: Supercharged method introspection in IRB.
105
106
  test_files:
106
- - spec/adapter_spec.rb
107
- - spec/columnizer_spec.rb
108
- - spec/core_ext_spec.rb
109
- - spec/editor_spec.rb
110
- - spec/inspector_spec.rb
111
- - spec/lookup_path_spec.rb
107
+ - spec/looksee/adapter_spec.rb
108
+ - spec/looksee/clean_spec.rb
109
+ - spec/looksee/columnizer_spec.rb
110
+ - spec/looksee/core_ext_spec.rb
111
+ - spec/looksee/editor_spec.rb
112
+ - spec/looksee/inspector_spec.rb
113
+ - spec/looksee/lookup_path_spec.rb
114
+ - spec/looksee/wirble_compatibility_spec.rb
112
115
  - spec/spec_helper.rb
113
116
  - spec/support/core_ext.rb
114
117
  - spec/support/temporary_classes.rb
115
118
  - spec/support/test_adapter.rb
116
- - spec/wirble_compatibility_spec.rb
@@ -1,3 +0,0 @@
1
- require 'looksee'
2
-
3
- warn "'looksee/shortcuts' is deprecated; please require 'looksee' instead."