ruby-lint 0.0.5 → 0.9.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.
Files changed (207) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.asc +14 -14
  3. data/.gitignore +1 -0
  4. data/.yardopts +1 -1
  5. data/Gemfile +3 -3
  6. data/MANIFEST +16 -3
  7. data/benchmark/virtual_machine.rb +17 -0
  8. data/checksum/ruby-lint-0.0.5.gem.sha512 +1 -0
  9. data/doc/changelog.md +42 -0
  10. data/doc/configuration.md +133 -13
  11. data/lib/ruby-lint/analysis/shadowing_variables.rb +8 -14
  12. data/lib/ruby-lint/analysis/unused_variables.rb +17 -0
  13. data/lib/ruby-lint/ast/node.rb +18 -3
  14. data/lib/ruby-lint/cache.rb +121 -0
  15. data/lib/ruby-lint/cache_entry.rb +44 -0
  16. data/lib/ruby-lint/cli/analyze.rb +37 -18
  17. data/lib/ruby-lint/cli/plot.rb +94 -0
  18. data/lib/ruby-lint/cli.rb +1 -0
  19. data/lib/ruby-lint/configuration.rb +48 -3
  20. data/lib/ruby-lint/definition/ruby_method.rb +28 -1
  21. data/lib/ruby-lint/definition/ruby_object.rb +37 -3
  22. data/lib/ruby-lint/definition_builder/ruby_method.rb +4 -1
  23. data/lib/ruby-lint/definition_builder/ruby_module.rb +4 -1
  24. data/lib/ruby-lint/definition_generator.rb +3 -2
  25. data/lib/ruby-lint/definitions/core/arg0.rb +3 -1
  26. data/lib/ruby-lint/definitions/core/argf.rb +3 -1
  27. data/lib/ruby-lint/definitions/core/argument_error.rb +3 -1
  28. data/lib/ruby-lint/definitions/core/argv.rb +3 -1
  29. data/lib/ruby-lint/definitions/core/array.rb +3 -1
  30. data/lib/ruby-lint/definitions/core/autoload.rb +3 -1
  31. data/lib/ruby-lint/definitions/core/basic_object.rb +2 -0
  32. data/lib/ruby-lint/definitions/core/bignum.rb +3 -1
  33. data/lib/ruby-lint/definitions/core/binding.rb +3 -1
  34. data/lib/ruby-lint/definitions/core/class.rb +2 -0
  35. data/lib/ruby-lint/definitions/core/comparable.rb +3 -1
  36. data/lib/ruby-lint/definitions/core/complex.rb +3 -1
  37. data/lib/ruby-lint/definitions/core/condition_variable.rb +3 -1
  38. data/lib/ruby-lint/definitions/core/continuation.rb +3 -1
  39. data/lib/ruby-lint/definitions/core/data.rb +3 -1
  40. data/lib/ruby-lint/definitions/core/date.rb +3 -1
  41. data/lib/ruby-lint/definitions/core/date_time.rb +3 -1
  42. data/lib/ruby-lint/definitions/core/default_record_separator.rb +3 -1
  43. data/lib/ruby-lint/definitions/core/digest.rb +3 -1
  44. data/lib/ruby-lint/definitions/core/dir.rb +3 -1
  45. data/lib/ruby-lint/definitions/core/encoding.rb +3 -1
  46. data/lib/ruby-lint/definitions/core/encoding_error.rb +3 -1
  47. data/lib/ruby-lint/definitions/core/enumerable.rb +3 -1
  48. data/lib/ruby-lint/definitions/core/enumerator.rb +3 -1
  49. data/lib/ruby-lint/definitions/core/env.rb +4 -1
  50. data/lib/ruby-lint/definitions/core/eoferror.rb +3 -1
  51. data/lib/ruby-lint/definitions/core/erb.rb +2 -0
  52. data/lib/ruby-lint/definitions/core/errno.rb +3 -1
  53. data/lib/ruby-lint/definitions/core/etc.rb +3 -1
  54. data/lib/ruby-lint/definitions/core/exception.rb +3 -1
  55. data/lib/ruby-lint/definitions/core/false.rb +3 -1
  56. data/lib/ruby-lint/definitions/core/false_class.rb +3 -1
  57. data/lib/ruby-lint/definitions/core/fatal_error.rb +3 -1
  58. data/lib/ruby-lint/definitions/core/fiber.rb +3 -1
  59. data/lib/ruby-lint/definitions/core/fiber_error.rb +3 -1
  60. data/lib/ruby-lint/definitions/core/file.rb +3 -1
  61. data/lib/ruby-lint/definitions/core/file_list.rb +3 -1
  62. data/lib/ruby-lint/definitions/core/file_test.rb +3 -1
  63. data/lib/ruby-lint/definitions/core/file_utils.rb +3 -1
  64. data/lib/ruby-lint/definitions/core/fixnum.rb +3 -1
  65. data/lib/ruby-lint/definitions/core/float.rb +3 -1
  66. data/lib/ruby-lint/definitions/core/float_domain_error.rb +3 -1
  67. data/lib/ruby-lint/definitions/core/gc.rb +3 -1
  68. data/lib/ruby-lint/definitions/core/gem.rb +3 -1
  69. data/lib/ruby-lint/definitions/core/hash.rb +3 -1
  70. data/lib/ruby-lint/definitions/core/immediate_value.rb +3 -1
  71. data/lib/ruby-lint/definitions/core/index_error.rb +3 -1
  72. data/lib/ruby-lint/definitions/core/integer.rb +3 -1
  73. data/lib/ruby-lint/definitions/core/interrupt.rb +3 -1
  74. data/lib/ruby-lint/definitions/core/io.rb +3 -1
  75. data/lib/ruby-lint/definitions/core/ioerror.rb +3 -1
  76. data/lib/ruby-lint/definitions/core/kernel.rb +2 -0
  77. data/lib/ruby-lint/definitions/core/key_error.rb +3 -1
  78. data/lib/ruby-lint/definitions/core/load_error.rb +3 -1
  79. data/lib/ruby-lint/definitions/core/local_jump_error.rb +3 -1
  80. data/lib/ruby-lint/definitions/core/marshal.rb +3 -1
  81. data/lib/ruby-lint/definitions/core/match_data.rb +3 -1
  82. data/lib/ruby-lint/definitions/core/math.rb +3 -1
  83. data/lib/ruby-lint/definitions/core/memory_segmention_error.rb +3 -1
  84. data/lib/ruby-lint/definitions/core/method.rb +3 -1
  85. data/lib/ruby-lint/definitions/core/module.rb +2 -0
  86. data/lib/ruby-lint/definitions/core/monitor.rb +3 -1
  87. data/lib/ruby-lint/definitions/core/monitor_mixin.rb +3 -1
  88. data/lib/ruby-lint/definitions/core/mutex.rb +3 -1
  89. data/lib/ruby-lint/definitions/core/name_error.rb +3 -1
  90. data/lib/ruby-lint/definitions/core/nil.rb +3 -1
  91. data/lib/ruby-lint/definitions/core/nil_class.rb +3 -1
  92. data/lib/ruby-lint/definitions/core/no_memory_error.rb +3 -1
  93. data/lib/ruby-lint/definitions/core/no_method_error.rb +3 -1
  94. data/lib/ruby-lint/definitions/core/not_implemented_error.rb +3 -1
  95. data/lib/ruby-lint/definitions/core/numeric.rb +3 -1
  96. data/lib/ruby-lint/definitions/core/object.rb +3 -1
  97. data/lib/ruby-lint/definitions/core/object_space.rb +3 -1
  98. data/lib/ruby-lint/definitions/core/open_struct.rb +3 -1
  99. data/lib/ruby-lint/definitions/core/option_parser.rb +3 -1
  100. data/lib/ruby-lint/definitions/core/precision.rb +3 -1
  101. data/lib/ruby-lint/definitions/core/primitive_failure.rb +3 -1
  102. data/lib/ruby-lint/definitions/core/proc.rb +3 -1
  103. data/lib/ruby-lint/definitions/core/process.rb +3 -1
  104. data/lib/ruby-lint/definitions/core/queue.rb +3 -1
  105. data/lib/ruby-lint/definitions/core/rake.rb +3 -1
  106. data/lib/ruby-lint/definitions/core/rake_file_utils.rb +3 -1
  107. data/lib/ruby-lint/definitions/core/rakeversion.rb +3 -1
  108. data/lib/ruby-lint/definitions/core/random.rb +3 -1
  109. data/lib/ruby-lint/definitions/core/range.rb +3 -1
  110. data/lib/ruby-lint/definitions/core/range_error.rb +3 -1
  111. data/lib/ruby-lint/definitions/core/rational.rb +3 -1
  112. data/lib/ruby-lint/definitions/core/rb_config.rb +3 -1
  113. data/lib/ruby-lint/definitions/core/regexp.rb +3 -1
  114. data/lib/ruby-lint/definitions/core/regexp_error.rb +3 -1
  115. data/lib/ruby-lint/definitions/core/ruby_copyright.rb +3 -1
  116. data/lib/ruby-lint/definitions/core/ruby_description.rb +3 -1
  117. data/lib/ruby-lint/definitions/core/ruby_engine.rb +3 -1
  118. data/lib/ruby-lint/definitions/core/ruby_patchlevel.rb +3 -1
  119. data/lib/ruby-lint/definitions/core/ruby_platform.rb +3 -1
  120. data/lib/ruby-lint/definitions/core/ruby_release_date.rb +3 -1
  121. data/lib/ruby-lint/definitions/core/ruby_version.rb +3 -1
  122. data/lib/ruby-lint/definitions/core/runtime_error.rb +3 -1
  123. data/lib/ruby-lint/definitions/core/scan_error.rb +3 -1
  124. data/lib/ruby-lint/definitions/core/script_error.rb +3 -1
  125. data/lib/ruby-lint/definitions/core/security_error.rb +3 -1
  126. data/lib/ruby-lint/definitions/core/shellwords.rb +3 -1
  127. data/lib/ruby-lint/definitions/core/signal.rb +3 -1
  128. data/lib/ruby-lint/definitions/core/signal_exception.rb +3 -1
  129. data/lib/ruby-lint/definitions/core/singleton.rb +3 -1
  130. data/lib/ruby-lint/definitions/core/sized_queue.rb +3 -1
  131. data/lib/ruby-lint/definitions/core/standard_error.rb +3 -1
  132. data/lib/ruby-lint/definitions/core/stderr.rb +2 -0
  133. data/lib/ruby-lint/definitions/core/stdin.rb +2 -0
  134. data/lib/ruby-lint/definitions/core/stdout.rb +2 -0
  135. data/lib/ruby-lint/definitions/core/stop_iteration.rb +3 -1
  136. data/lib/ruby-lint/definitions/core/string.rb +3 -1
  137. data/lib/ruby-lint/definitions/core/string_io.rb +3 -1
  138. data/lib/ruby-lint/definitions/core/string_scanner.rb +3 -1
  139. data/lib/ruby-lint/definitions/core/struct.rb +3 -1
  140. data/lib/ruby-lint/definitions/core/syck.rb +3 -1
  141. data/lib/ruby-lint/definitions/core/symbol.rb +3 -1
  142. data/lib/ruby-lint/definitions/core/syntax_error.rb +3 -1
  143. data/lib/ruby-lint/definitions/core/system_call_error.rb +3 -1
  144. data/lib/ruby-lint/definitions/core/system_exit.rb +3 -1
  145. data/lib/ruby-lint/definitions/core/system_stack_error.rb +3 -1
  146. data/lib/ruby-lint/definitions/core/thread.rb +3 -1
  147. data/lib/ruby-lint/definitions/core/thread_error.rb +3 -1
  148. data/lib/ruby-lint/definitions/core/thread_group.rb +3 -1
  149. data/lib/ruby-lint/definitions/core/time.rb +3 -1
  150. data/lib/ruby-lint/definitions/core/toplevel_binding.rb +3 -1
  151. data/lib/ruby-lint/definitions/core/true.rb +3 -1
  152. data/lib/ruby-lint/definitions/core/true_class.rb +3 -1
  153. data/lib/ruby-lint/definitions/core/type_error.rb +3 -1
  154. data/lib/ruby-lint/definitions/core/unbound_method.rb +3 -1
  155. data/lib/ruby-lint/definitions/core/unmarshalable.rb +3 -1
  156. data/lib/ruby-lint/definitions/core/unsupported_library_error.rb +3 -1
  157. data/lib/ruby-lint/definitions/core/weak_ref.rb +3 -1
  158. data/lib/ruby-lint/definitions/core/yaml.rb +1 -0
  159. data/lib/ruby-lint/definitions/core/zero_division_error.rb +3 -1
  160. data/lib/ruby-lint/definitions/core/zlib.rb +8840 -0
  161. data/lib/ruby-lint/definitions/rails/abstract_controller.rb +1 -0
  162. data/lib/ruby-lint/definitions/rails/action_controller.rb +1 -0
  163. data/lib/ruby-lint/definitions/rails/action_dispatch.rb +1 -0
  164. data/lib/ruby-lint/definitions/rails/action_mailer.rb +1 -0
  165. data/lib/ruby-lint/definitions/rails/action_pack.rb +1 -0
  166. data/lib/ruby-lint/definitions/rails/action_view.rb +1 -0
  167. data/lib/ruby-lint/definitions/rails/active_model.rb +1 -0
  168. data/lib/ruby-lint/definitions/rails/active_record.rb +1 -0
  169. data/lib/ruby-lint/definitions/rails/active_support.rb +1 -0
  170. data/lib/ruby-lint/definitions/rails/arel.rb +1 -0
  171. data/lib/ruby-lint/definitions/rails/rails.rb +1 -0
  172. data/lib/ruby-lint/definitions/rails/sprockets.rb +1 -0
  173. data/lib/ruby-lint/file_scanner.rb +2 -0
  174. data/lib/ruby-lint/iterator.rb +21 -12
  175. data/lib/ruby-lint/method_call_info.rb +31 -0
  176. data/lib/ruby-lint/node_hash.rb +105 -0
  177. data/lib/ruby-lint/parser.rb +4 -2
  178. data/lib/ruby-lint/runner.rb +62 -6
  179. data/lib/ruby-lint/template/definition.erb +2 -0
  180. data/lib/ruby-lint/version.rb +1 -1
  181. data/lib/ruby-lint/virtual_machine.rb +75 -43
  182. data/lib/ruby-lint.rb +20 -2
  183. data/profiling/virtual_machine.rb +20 -0
  184. data/ruby-lint.gemspec +2 -1
  185. data/spec/fixtures/complex/rcap.rb +29 -0
  186. data/spec/fixtures/complex/slop.rb +21 -0
  187. data/spec/fixtures/file_scanner/lib/ruby-lint/definition/constant_proxy.rb +6 -0
  188. data/spec/fixtures/file_scanner/lib/ruby-lint/global_scope.rb +6 -0
  189. data/spec/ruby-lint/analysis/unused_variables_spec.rb +114 -0
  190. data/spec/ruby-lint/cache_entry_spec.rb +25 -0
  191. data/spec/ruby-lint/cache_spec.rb +53 -0
  192. data/spec/ruby-lint/definition/ruby_method_spec.rb +4 -4
  193. data/spec/ruby-lint/definition/ruby_object_spec.rb +33 -0
  194. data/spec/ruby-lint/iterator_spec.rb +15 -0
  195. data/spec/ruby-lint/node_hash_spec.rb +56 -0
  196. data/spec/ruby-lint/runner_spec.rb +6 -1
  197. data/spec/ruby-lint/virtual_machine/assignments/variables_spec.rb +2 -2
  198. data/spec/ruby-lint/virtual_machine/location_spec.rb +64 -0
  199. data/spec/ruby-lint/virtual_machine/method_call_tracking_spec.rb +64 -0
  200. data/spec/spec_helper.rb +7 -0
  201. data/task/generate.rake +1 -1
  202. data.tar.gz.asc +14 -14
  203. metadata +34 -7
  204. metadata.gz.asc +14 -14
  205. data/debug/memory_usage.rb +0 -14
  206. data/debug/profile.rb +0 -18
  207. data/task/profile.rake +0 -27
@@ -0,0 +1,56 @@
1
+ require 'spec_helper'
2
+
3
+ describe RubyLint::NodeHash do
4
+ before do
5
+ @node_hash = RubyLint::NodeHash.new
6
+ @node = s(:integer, 10)
7
+ end
8
+
9
+ example 'set and get information associated with a node' do
10
+ @node_hash[@node] = 10
11
+
12
+ @node_hash[@node].should == 10
13
+ end
14
+
15
+ example 'check if a node has been added' do
16
+ @node_hash.key?(@node).should == false
17
+
18
+ @node_hash[@node] = 10
19
+
20
+ @node_hash.key?(@node).should == true
21
+ end
22
+
23
+ example 'return all keys' do
24
+ @node_hash[@node] = 10
25
+
26
+ @node_hash.keys.should == [@node.sha1]
27
+ end
28
+
29
+ example 'return all values' do
30
+ @node_hash[@node] = 10
31
+
32
+ @node_hash.values.should == [10]
33
+ end
34
+
35
+ example 'convert to an Array' do
36
+ @node_hash[@node] = 10
37
+
38
+ @node_hash.to_a.should == [[@node.sha1, 10]]
39
+ end
40
+
41
+ example 'merge with another node hash' do
42
+ other = RubyLint::NodeHash.new(@node.sha1 => 10)
43
+
44
+ @node_hash.merge!(other)
45
+
46
+ @node_hash.key?(@node).should == true
47
+ end
48
+
49
+ example 'merge with another hash' do
50
+ other = {@node => 10}
51
+
52
+ @node_hash.merge_hash!(other)
53
+
54
+ @node_hash.key?(@node).should == true
55
+ end
56
+ end
@@ -3,6 +3,11 @@ require 'spec_helper'
3
3
  describe RubyLint::Runner do
4
4
  before do
5
5
  @configuration = RubyLint::Configuration.new
6
+ @cache_dir = Dir.mktmpdir('ruby-lint')
7
+ end
8
+
9
+ after do
10
+ FileUtils.rm_rf(@cache_dir)
6
11
  end
7
12
 
8
13
  example 'run analysis on a single file' do
@@ -42,7 +47,7 @@ describe RubyLint::Runner do
42
47
 
43
48
  example 'associating nodes with external definitions' do
44
49
  files = [fixture_path('associating.rb')]
45
- dirs = [fixture_path('../../lib')]
50
+ dirs = [fixture_path('file_scanner/lib/ruby-lint')]
46
51
  config = RubyLint::Configuration.new(:directories => dirs)
47
52
  runner = RubyLint::Runner.new(config)
48
53
  output = runner.analyze(files)
@@ -36,8 +36,8 @@ describe RubyLint::VirtualMachine do
36
36
  end
37
37
 
38
38
  example 'assign a value to a constant path' do
39
- defs = build_definitions('Kernel::FOO = 10')
40
- foo = defs.lookup(:const, 'Kernel').lookup(:const, 'FOO')
39
+ defs = build_definitions('module Foo; end; Foo::FOO = 10')
40
+ foo = defs.lookup(:const, 'Foo').lookup(:const, 'FOO')
41
41
 
42
42
  foo.is_a?(ruby_object).should == true
43
43
 
@@ -0,0 +1,64 @@
1
+ require 'spec_helper'
2
+
3
+ describe RubyLint::VirtualMachine do
4
+ context 'definition location information' do
5
+ example 'store location information of a class' do
6
+ code = <<-CODE
7
+ # Example class.
8
+ class Example
9
+ end
10
+ CODE
11
+
12
+ defs = build_definitions(code)
13
+ obj = defs.lookup(:const, 'Example')
14
+
15
+ obj.line.should == 2
16
+ obj.column.should == 0
17
+ obj.file.should == '(ruby-lint)'
18
+ end
19
+
20
+ example 'store location information of a module' do
21
+ code = <<-CODE
22
+ # Example module.
23
+ module Example
24
+ end
25
+ CODE
26
+
27
+ defs = build_definitions(code)
28
+ obj = defs.lookup(:const, 'Example')
29
+
30
+ obj.line.should == 2
31
+ obj.column.should == 0
32
+ obj.file.should == '(ruby-lint)'
33
+ end
34
+
35
+ example 'store location information of a method' do
36
+ code = <<-CODE
37
+ # Example module.
38
+ def example
39
+ end
40
+ CODE
41
+
42
+ defs = build_definitions(code)
43
+ obj = defs.lookup(:instance_method, 'example')
44
+
45
+ obj.line.should == 2
46
+ obj.column.should == 0
47
+ obj.file.should == '(ruby-lint)'
48
+ end
49
+
50
+ example 'store location information of a variable' do
51
+ code = <<-CODE
52
+ # Example assignment
53
+ number = 10
54
+ CODE
55
+
56
+ defs = build_definitions(code)
57
+ obj = defs.lookup(:lvar, 'number')
58
+
59
+ obj.line.should == 2
60
+ obj.column.should == 0
61
+ obj.file.should == '(ruby-lint)'
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,64 @@
1
+ require 'spec_helper'
2
+
3
+ describe RubyLint::VirtualMachine do
4
+ context 'method call tracking' do
5
+ before :all do
6
+ code = <<-CODE
7
+ def first_method
8
+ end
9
+
10
+ def second_method
11
+ end
12
+
13
+ def third_method
14
+ first_method
15
+ second_method
16
+ String.new
17
+ end
18
+ CODE
19
+
20
+ definitions = build_definitions(code)
21
+ @first = definitions.lookup(:instance_method, 'first_method')
22
+ @second = definitions.lookup(:instance_method, 'second_method')
23
+ @third = definitions.lookup(:instance_method, 'third_method')
24
+ @string = definitions.lookup(:const, 'String')
25
+ end
26
+
27
+ example 'track the right amount of method calls' do
28
+ @third.calls.length.should == 3
29
+ end
30
+
31
+ example 'track call location information' do
32
+ @third.calls[0].line.should == 8
33
+ @third.calls[0].column.should == 2
34
+
35
+ @third.calls[1].line.should == 9
36
+ @third.calls[1].column.should == 2
37
+ end
38
+
39
+ example 'track the call definitions' do
40
+ @third.calls[0].definition.should == @first
41
+ @third.calls[1].definition.should == @second
42
+ end
43
+
44
+ example 'track call location information in inverse direction' do
45
+ @first.callers[0].line.should == 8
46
+ @first.callers[0].column.should == 2
47
+
48
+ @second.callers[0].line.should == 9
49
+ @second.callers[0].column.should == 2
50
+ end
51
+
52
+ example 'track method calls in inverse direction' do
53
+ @first.callers[0].definition.should == @third
54
+ @second.callers[0].definition.should == @third
55
+ end
56
+
57
+ example 'should not modify read-only definitions' do
58
+ method = @string.lookup(:method, 'new')
59
+
60
+ @third.calls[2].definition.should == method
61
+ method.callers.empty?.should == true
62
+ end
63
+ end
64
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,10 @@
1
1
  require 'rspec'
2
2
  require 'stringio'
3
3
  require 'redcard'
4
+ require 'tmpdir'
5
+ require 'fileutils'
6
+ require 'tempfile'
7
+ require 'benchmark'
4
8
 
5
9
  if ENV['COVERAGE']
6
10
  require_relative 'support/simplecov'
@@ -10,6 +14,9 @@ if ENV['COVERALLS']
10
14
  require_relative 'support/coveralls'
11
15
  end
12
16
 
17
+ # Disable caching of RubyLint::Runner for all tests.
18
+ ENV['RUBY_LINT_DISABLE_CACHE'] = '1'
19
+
13
20
  require_relative '../lib/ruby-lint'
14
21
  require_relative 'support/building'
15
22
  require_relative 'support/parsing'
data/task/generate.rake CHANGED
@@ -25,7 +25,7 @@ namespace :generate do
25
25
  generator = RubyLint::DefinitionGenerator.new(
26
26
  Object,
27
27
  directory,
28
- :ignore => %w{BasicObject Class GEMSPEC Module},
28
+ :ignore => %w{BasicObject Class GEMSPEC Module Kernel},
29
29
  :overwrite => !!args[:overwrite]
30
30
  )
31
31
 
data.tar.gz.asc CHANGED
@@ -1,17 +1,17 @@
1
1
  -----BEGIN PGP SIGNATURE-----
2
- Version: GnuPG v2.0.21 (GNU/Linux)
2
+ Version: GnuPG v2.0.22 (GNU/Linux)
3
3
 
4
- iQIcBAABAgAGBQJSI1ZdAAoJEPMbESk2SfREfKkP/izxfJRPVk8TzuiXs3lc6lmR
5
- siLgOCzBwLJK9Pm5iAENQ6D8jyOcWBjOK/NMLgccMyg6KbW54TGFWfZ2n2X3k0QI
6
- 38+HjeDGym92tE1LPOtIHslFKpojRJqUZxFNXhwMtmh1i8Ieqpwq/yA+hyeyFF5Y
7
- S8i2utYzuWs32bcCSs25wG9ke9rwtO2HiGoDLeIWysYcoAWdSWe0HyAcL9ip3KF+
8
- 1tnKkfRaiFflSWh2o8fmuhc73/yL7vNSTpZtaxDuE7Dsg3Dm/OrIyw/h3ud8LHsa
9
- uV0SJHMDBg2xJo7JqYJDnazzAqAja/N2IfvywGT1CJfE5qsDdrHyFBPXSuBYRAZy
10
- dphjD6whpUkuJLGS6vMm7WAFo2xFOaHM7r6ulO5LWZkaiJLEEIJ/34NijKbS7xsm
11
- L5XH6Zhwoli3rMVJBPjnhT+blOXYSP1+Lw84xbI8OpbQMoGtWtErIOJuHNPrP5YP
12
- B5x/OnE8KaT4gvyakSjRl/lTeAfTtvI+TFI5Atmye2+Q0eSOhnpxHQaqtNp/HFUl
13
- ECDmkkVH2lc8L/7H9EqjgNTJiNLtPfPWxDBAzBIVyT2i4WzKKQC4eJjEhZuzAvcX
14
- SZNcPoUIXf4P2mE4APGILziitM3k+azdiIvHZ2FzU2ruVA5g5nvD86VEPczw5zDL
15
- LQCMOKMtg15IP5HWWrWB
16
- =x7n/
4
+ iQIcBAABAgAGBQJSWugYAAoJEPMbESk2SfREyWwQAK79Sx6k+kT89iV25d17afIF
5
+ 8VwlL7+gqQV9NiSeK8hgWHpvy7A+sP1cYifsm5R1nxesN350m3QhdZO9HeJbr97e
6
+ MSWPToL23rwCNj/J0YMcKDJpRZgU4qQLbPG/ZXprv2mmkxeWziNZnPMdRD1eVXmE
7
+ rMAIlvCHgzyGpxrNrZ7BFGCrBSZp8jjIEvWoURSQJT7i8JcVE8Pi5KIHuiCIgbyM
8
+ qp3DPM/K5Gln/7uRyoFjphIz+pOT978kTJzKQwg1dEwttvrW0jAD5K3BxiIy5IF9
9
+ exO2Ngd+9e/2efDQ5rXK8JCJ7WtChplmuaj1pGn1J3YHfyzZecqV5ei7t2SfP5Pa
10
+ vMOr1z09V2/IAOi43hWsNm+AUZj+Bg8+AXUmW2bFNxmbPw1J96FJbmRaVJLUcxyf
11
+ TWibwq+z4q7d8wEcoOEPmzqdHQG9mHf+mvLlhDUKZrgcF0asKJwHNpHt6ppxFdpd
12
+ X9AXWGUFvKd4/LVxBJVTYNN4ynBzyMe23thVIbcxbaXj6oM1oV6Jz6y3CSnApQm9
13
+ 3hpzLLr4eCak35uHatTWmur4n8XQI8S7W5H6h7VfYTOKdVG5vRa4daYtRMyRSDcz
14
+ J7L7Y5DgL9GZMF59kuSo1gQFYWLQOxg1zt/t1V/YAubX6A3VU4bcll/CWB7D3eR0
15
+ o0VlVQPGIgrfvr4SXlBq
16
+ =ZCLE
17
17
  -----END PGP SIGNATURE-----
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-lint
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yorick Peterse
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-01 00:00:00.000000000 Z
11
+ date: 2013-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '>='
18
18
  - !ruby/object:Gem::Version
19
- version: 2.0.0.pre6
19
+ version: 2.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '>='
25
25
  - !ruby/object:Gem::Version
26
- version: 2.0.0.pre6
26
+ version: 2.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: slop
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -178,6 +178,20 @@ dependencies:
178
178
  - - '>='
179
179
  - !ruby/object:Gem::Version
180
180
  version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: gnuplot
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - '>='
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - '>='
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
181
195
  description: A linter and static code analysis tool for Ruby.
182
196
  email: yorickpeterse@gmail.com
183
197
  executables:
@@ -195,12 +209,12 @@ files:
195
209
  - MANIFEST
196
210
  - README.md
197
211
  - Rakefile
212
+ - benchmark/virtual_machine.rb
198
213
  - bin/ruby-lint
199
214
  - checksum/.gitkeep
200
215
  - checksum/ruby-lint-0.0.3.gem.sha512
201
216
  - checksum/ruby-lint-0.0.4.gem.sha512
202
- - debug/memory_usage.rb
203
- - debug/profile.rb
217
+ - checksum/ruby-lint-0.0.5.gem.sha512
204
218
  - doc/.gitkeep
205
219
  - doc/DCO.md
206
220
  - doc/architecture.md
@@ -222,10 +236,13 @@ files:
222
236
  - lib/ruby-lint/analysis/unused_variables.rb
223
237
  - lib/ruby-lint/ast/builder.rb
224
238
  - lib/ruby-lint/ast/node.rb
239
+ - lib/ruby-lint/cache.rb
240
+ - lib/ruby-lint/cache_entry.rb
225
241
  - lib/ruby-lint/cli.rb
226
242
  - lib/ruby-lint/cli/analyze.rb
227
243
  - lib/ruby-lint/cli/ast.rb
228
244
  - lib/ruby-lint/cli/base.rb
245
+ - lib/ruby-lint/cli/plot.rb
229
246
  - lib/ruby-lint/configuration.rb
230
247
  - lib/ruby-lint/constant_loader.rb
231
248
  - lib/ruby-lint/default_names.rb
@@ -377,6 +394,7 @@ files:
377
394
  - lib/ruby-lint/definitions/core/weak_ref.rb
378
395
  - lib/ruby-lint/definitions/core/yaml.rb
379
396
  - lib/ruby-lint/definitions/core/zero_division_error.rb
397
+ - lib/ruby-lint/definitions/core/zlib.rb
380
398
  - lib/ruby-lint/definitions/global_variables.rb
381
399
  - lib/ruby-lint/definitions/rails.rb
382
400
  - lib/ruby-lint/definitions/rails/abstract_controller.rb
@@ -409,7 +427,9 @@ files:
409
427
  - lib/ruby-lint/method_call/base.rb
410
428
  - lib/ruby-lint/method_call/define_method.rb
411
429
  - lib/ruby-lint/method_call/include.rb
430
+ - lib/ruby-lint/method_call_info.rb
412
431
  - lib/ruby-lint/nested_stack.rb
432
+ - lib/ruby-lint/node_hash.rb
413
433
  - lib/ruby-lint/parser.rb
414
434
  - lib/ruby-lint/presenter/json.rb
415
435
  - lib/ruby-lint/presenter/text.rb
@@ -421,6 +441,7 @@ files:
421
441
  - lib/ruby-lint/variable_predicates.rb
422
442
  - lib/ruby-lint/version.rb
423
443
  - lib/ruby-lint/virtual_machine.rb
444
+ - profiling/virtual_machine.rb
424
445
  - ruby-lint.gemspec
425
446
  - ruby-lint.yml
426
447
  - spec/fixtures/associating.rb
@@ -431,6 +452,8 @@ files:
431
452
  - spec/fixtures/file_scanner/lib/example/recursive/source.rb
432
453
  - spec/fixtures/file_scanner/lib/example/recursive/target.rb
433
454
  - spec/fixtures/file_scanner/lib/example/user.rb
455
+ - spec/fixtures/file_scanner/lib/ruby-lint/definition/constant_proxy.rb
456
+ - spec/fixtures/file_scanner/lib/ruby-lint/global_scope.rb
434
457
  - spec/fixtures/file_scanner/lib/test-dashes/foo.rb
435
458
  - spec/fixtures/file_scanner/rails/app/models/example/user.rb
436
459
  - spec/fixtures/file_scanner/rails/app/models/user.rb
@@ -449,6 +472,8 @@ files:
449
472
  - spec/ruby-lint/analysis/undefined_variables_spec.rb
450
473
  - spec/ruby-lint/analysis/unused_variables_spec.rb
451
474
  - spec/ruby-lint/ast/node_spec.rb
475
+ - spec/ruby-lint/cache_entry_spec.rb
476
+ - spec/ruby-lint/cache_spec.rb
452
477
  - spec/ruby-lint/cli/analyze_spec.rb
453
478
  - spec/ruby-lint/cli/ast_spec.rb
454
479
  - spec/ruby-lint/configuration_spec.rb
@@ -468,6 +493,7 @@ files:
468
493
  - spec/ruby-lint/inspector_spec.rb
469
494
  - spec/ruby-lint/iterator_spec.rb
470
495
  - spec/ruby-lint/nested_stack_spec.rb
496
+ - spec/ruby-lint/node_hash_spec.rb
471
497
  - spec/ruby-lint/parser_spec.rb
472
498
  - spec/ruby-lint/presenter/json_spec.rb
473
499
  - spec/ruby-lint/presenter/text_spec.rb
@@ -497,6 +523,8 @@ files:
497
523
  - spec/ruby-lint/virtual_machine/global_variables_spec.rb
498
524
  - spec/ruby-lint/virtual_machine/inherit_kernel_spec.rb
499
525
  - spec/ruby-lint/virtual_machine/interpolation_spec.rb
526
+ - spec/ruby-lint/virtual_machine/location_spec.rb
527
+ - spec/ruby-lint/virtual_machine/method_call_tracking_spec.rb
500
528
  - spec/ruby-lint/virtual_machine/methods/attr_spec.rb
501
529
  - spec/ruby-lint/virtual_machine/methods/define_method_spec.rb
502
530
  - spec/ruby-lint/virtual_machine/methods/defining_spec.rb
@@ -524,7 +552,6 @@ files:
524
552
  - task/generate.rake
525
553
  - task/graphviz.rake
526
554
  - task/manifest.rake
527
- - task/profile.rake
528
555
  - task/tag.rake
529
556
  - task/test.rake
530
557
  - task/todo.rake
metadata.gz.asc CHANGED
@@ -1,17 +1,17 @@
1
1
  -----BEGIN PGP SIGNATURE-----
2
- Version: GnuPG v2.0.21 (GNU/Linux)
2
+ Version: GnuPG v2.0.22 (GNU/Linux)
3
3
 
4
- iQIcBAABAgAGBQJSI1ZdAAoJEPMbESk2SfRED5gQAKyjQeBLhUlFdrBqItO2uQTt
5
- tlZoZWSrprz/yHDOI7uVAbPaE/LmwaRQgSy8lbdp0d8M/m9UAdEyOT3COB+LcTtt
6
- YwN0X4MZ6OckJfQnS+ZTIfgnj+R4tI430Ifq1U11D3uleJDLrjL7/6yvVz5Z6ZqB
7
- haeFIc0oNSQUxSg6c7So18BdTPDi1dEC4+xRBkFi4F0s+JTIyMrzvPQdPjYDFC3v
8
- c1smx7DqLIO58DLNVcvPivouFYIrfuX4hubu2TkS4HFCh4Swn6r1gNpFg8A5Z+qV
9
- t5hzX3PQoN1OK88GCJxVjcoJEtZ3lVAU1G61Pt29LrKZHkrpWXYFsU8LHkpatvFX
10
- f3q+HbvddrToaR8nTxZAor3Xf4rb9+RwVYAEeePRySXObcfEd+ZTL6ljQ6RsbWqS
11
- IR5zmKbMitEH/d1qfH8D3oKoe8FVhP6l8Cwi7SGmjlRJ/HrJInTn0sge1kw2jDet
12
- YXCBGj3jxizmD5nAPhPcDXeul704VmgBsoQF3pNOGD7Rd1sjxKiKpWMfTqZShSPu
13
- DHXJ2sBCOP3QoWxYuRyw6mMXMpt57RZ/e37KrRHIBsCEIh2Qpgvkv3x443rCSo+X
14
- zVKIW5hR7T2kkY9tziIe6SmOkPz3JXQCzVuk/o9F9pOnbSORS6kuJc1haQ6vnFXN
15
- lG3YOvdp/Bomj64R+wSP
16
- =73rz
4
+ iQIcBAABAgAGBQJSWugYAAoJEPMbESk2SfREyAwP/Rr9jTup5rlAjLVhAYYtXnjO
5
+ pUrPFcsUUwYS/5N/o3p2HlQK3bbXehfQVJ235N4faF7eyS8V07Ak4BDz3aYkYny3
6
+ vFwYbkbPOcptbNRbSyNo+tF6OzXuZ+dSRB9XXbZ/OadTAKDyGfcouGvMLcP01CeF
7
+ 1KaQOTzn/Mi2Jg6gXbEoGzoG1AjHLp7r2IVYZ97anGbQD2nprcMVKGZwXP4qTfZH
8
+ qB6Tm2DAogoziMDcqXRbOLFrEJe5LU88SAqR9Ks7x158D40dAbw/9WcoQBgdRZBQ
9
+ 97hxbOa5pgOPMI+TMojeDsT1PEASScVxO6OuNsMnZt/30roxv6Lb+G1MpeYk4HV0
10
+ 7oaYAvTwKF+WQeFSmPvnkJ3dWaJwq3danWlm4L51YNP4ulGZf86ApoSEura4Kjpa
11
+ BXVIPlzjNESrQ8Lo7wu+h+ZZKGJzFFbHliF3s6wkdRB5WInjSb5ajSkhZIOyLi8b
12
+ p4OxxR7aSiQfbSlrcdmhVCHpMAARG7rQbYvQTp01NbwJmzmmsx6PiYLzLQNrW+v+
13
+ pQMCqkmIlbIKrZfb/YyXkB70/nBiPMLOM3oz/X1t8EyuOJd2Tc6IO5n8n3ilvZdW
14
+ WhljFlEj11DGWeKhrRiWZcTOkU7SMHG9IVbPfhZrXBwsn2MzzBjSB78oFPbjHAFq
15
+ xNmx+U9HE3H7mMpce8r5
16
+ =Zjwg
17
17
  -----END PGP SIGNATURE-----