inch 0.5.0.rc7 → 0.5.0.rc8

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 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