inch 0.5.0.rc7 → 0.5.0.rc8

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: 620c88bdb4d9e94f8c7817cec4580194e55327bd
4
- data.tar.gz: 6a9049c75c8cac2306c65e66df1fb261ee770422
3
+ metadata.gz: cf685167eb90266f1ade2a603f466791804dcee0
4
+ data.tar.gz: fba628a914b7dc892d6e8fedfb8875348995961f
5
5
  SHA512:
6
- metadata.gz: 4e457d9da5e65a821f9ef828edadfe9331dc78e46898da9e79fefb11f4f03acfc21b66339412824ff6a44559dc6dc4275df9ac7311af0c65b5812d437e8932a3
7
- data.tar.gz: 89970a8472e840eddc2f9c5c63f5f8d3dca6354e2486c2edd2495f08715b994fb14e3a9e4b6a4b8333edd55604a026fa60828a6e640c3cc438d6428b6d8cdc1f
6
+ metadata.gz: 13fca201ad1cd8a476dbff2f3161c6afe02cfda60086da40f9eed0edaf20db143b6fa435d1dc983371eef80a0b457baa4a6f92999ad10863d0f54009d1e24bb5
7
+ data.tar.gz: 59da30a14fb8c646a517c9aec2886e36769fc37d285e474eb52f973445c799dba31bc15d552c05da88438030e048ae863516f1e7a696ac3f20715391702af20a
@@ -28,7 +28,13 @@ module Inch
28
28
  Role::Object::TaggedAsPrivate => nil,
29
29
  Role::Object::Alias =>
30
30
  if object.alias?
31
- object.aliased_object.score
31
+ aliased_object = object.aliased_object
32
+ if aliased_object.alias? && aliased_object.aliased_object.alias?
33
+ # warn "Possible alias cycle: #{object.fullname} -> #{aliased_object.fullname}"
34
+ nil
35
+ else
36
+ aliased_object.score
37
+ end
32
38
  else
33
39
  nil
34
40
  end
@@ -1,3 +1,3 @@
1
1
  module Inch
2
- VERSION = '0.5.0.rc7'
2
+ VERSION = '0.5.0.rc8'
3
3
  end
@@ -0,0 +1,8 @@
1
+ class ViciousAliasCycle < Hash #:nodoc:
2
+ # horrible hack to restore Hash#delete
3
+ alias :__delete__ :delete
4
+ include BaseApi
5
+ alias :api_delete :delete
6
+ alias :delete :__delete__
7
+ remove_method :__delete__
8
+ end
@@ -0,0 +1,16 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../../../test_helper')
2
+
3
+ describe ::Inch::Language::Ruby::CodeObject::MethodObject do
4
+ before do
5
+ @codebase = test_codebase(:ruby, :alias_cycle)
6
+ @objects = @codebase.objects
7
+ end
8
+
9
+ describe 'Parser' do
10
+ #
11
+ it 'should not raise stack level too deep' do
12
+ m = @objects.find('ViciousAliasCycle')
13
+ m.score
14
+ end
15
+ end
16
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0.rc7
4
+ version: 0.5.0.rc8
5
5
  platform: ruby
6
6
  authors:
7
7
  - René Föhring
@@ -302,6 +302,7 @@ files:
302
302
  - lib/inch/utils/weighted_list.rb
303
303
  - lib/inch/version.rb
304
304
  - test/fixtures/elixir/simple/all.json
305
+ - test/fixtures/ruby/alias_cycle/lib/alias.rb
305
306
  - test/fixtures/ruby/code_examples/lib/foo.rb
306
307
  - test/fixtures/ruby/diff1/lib/diff1.rb
307
308
  - test/fixtures/ruby/diff2/lib/diff2.rb
@@ -358,6 +359,7 @@ files:
358
359
  - test/unit/config_test.rb
359
360
  - test/unit/evaluation/role_test.rb
360
361
  - test/unit/language/elixir/code_object/function_object_test.rb
362
+ - test/unit/language/ruby/code_object/alias_test.rb
361
363
  - test/unit/language/ruby/code_object/method_object_test.rb
362
364
  - test/unit/language/ruby/provider/yard/docstring_test.rb
363
365
  - test/unit/language/ruby/provider/yard/nodoc_helper_test.rb
@@ -386,12 +388,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
386
388
  version: 1.3.1
387
389
  requirements: []
388
390
  rubyforge_project:
389
- rubygems_version: 2.2.0
391
+ rubygems_version: 2.2.2
390
392
  signing_key:
391
393
  specification_version: 4
392
394
  summary: Documentation measurement tool for Ruby
393
395
  test_files:
394
396
  - test/fixtures/elixir/simple/all.json
397
+ - test/fixtures/ruby/alias_cycle/lib/alias.rb
395
398
  - test/fixtures/ruby/code_examples/lib/foo.rb
396
399
  - test/fixtures/ruby/diff1/lib/diff1.rb
397
400
  - test/fixtures/ruby/diff2/lib/diff2.rb
@@ -448,6 +451,7 @@ test_files:
448
451
  - test/unit/config_test.rb
449
452
  - test/unit/evaluation/role_test.rb
450
453
  - test/unit/language/elixir/code_object/function_object_test.rb
454
+ - test/unit/language/ruby/code_object/alias_test.rb
451
455
  - test/unit/language/ruby/code_object/method_object_test.rb
452
456
  - test/unit/language/ruby/provider/yard/docstring_test.rb
453
457
  - test/unit/language/ruby/provider/yard/nodoc_helper_test.rb