police-vminfo 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.3
1
+ 0.0.4
@@ -155,6 +155,7 @@ module VmInfo
155
155
  methods = []
156
156
  output.split("\n").each do |name|
157
157
  method = module_or_class.instance_method name.to_sym
158
+ next unless method.owner == module_or_class
158
159
  # TODO(pwnall): consider checking for re-defined core methods
159
160
  methods << method
160
161
  end
@@ -178,6 +179,7 @@ module VmInfo
178
179
  singleton_class = module_or_class.singleton_class
179
180
  output.split("\n").each do |name|
180
181
  method = singleton_class.instance_method name.to_sym
182
+ next unless method.owner == singleton_class
181
183
  # TODO(pwnall): consider checking for re-defined core methods
182
184
  methods << method
183
185
  end
@@ -94,7 +94,7 @@ describe Police::VmInfo do
94
94
  end
95
95
 
96
96
  it 'does not contain Bundler' do
97
- result.wont_include Bundler
97
+ result.map(&:to_s).wont_include 'Bundler'
98
98
  end
99
99
  end
100
100
 
@@ -343,40 +343,53 @@ describe Police::VmInfo do
343
343
  must_include :not_a_core_method
344
344
  end
345
345
  end
346
+
347
+ describe 'on IndexError' do
348
+ let(:methods) { Police::VmInfo.core_class_methods(IndexError) }
349
+ let(:method_names) { methods.map(&:name) }
350
+
351
+ it 'does not contain inherited class method exception' do
352
+ method_names.wont_include :exception
353
+ end
354
+ end
346
355
  end
347
356
 
348
357
  describe "#core_instance_methods" do
349
- describe 'on Object' do
358
+ describe 'on String' do
350
359
  before do
351
- class Object
360
+ class String
352
361
  def not_a_core_method
353
362
  end
354
363
  end
355
364
  end
356
365
  after do
357
- class Object
366
+ class String
358
367
  remove_method :not_a_core_method
359
368
  end
360
369
  end
361
370
 
362
- let(:methods) { Police::VmInfo.core_instance_methods(Object) }
371
+ let(:methods) { Police::VmInfo.core_instance_methods(String) }
363
372
  let(:method_names) { methods.map(&:name) }
364
373
 
365
374
  it 'returns UnboundMethods' do
366
375
  methods.each { |method| method.must_be_instance_of UnboundMethod }
367
376
  end
368
377
 
369
- it 'contains ==' do
370
- method_names.must_include :==
378
+ it 'contains scan' do
379
+ method_names.must_include :scan
371
380
  end
372
381
 
373
382
  it 'does not contain not_a_core_method' do
374
383
  method_names.wont_include :not_a_core_method
375
384
 
376
385
  # Ensure that the test setup is correct.
377
- Police::VmInfo.instance_methods(Object).map(&:name).
386
+ Police::VmInfo.instance_methods(String).map(&:name).
378
387
  must_include :not_a_core_method
379
388
  end
389
+
390
+ it 'does not contain inherited instance method class' do
391
+ methods.wont_include :class
392
+ end
380
393
  end
381
394
  end
382
395
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: police-vminfo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -51,7 +51,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
51
51
  version: '0'
52
52
  segments:
53
53
  - 0
54
- hash: 4595345354086175528
54
+ hash: 3373141853385569443
55
55
  required_rubygems_version: !ruby/object:Gem::Requirement
56
56
  none: false
57
57
  requirements: