ruby-lint 1.1.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CONTRIBUTING.md +43 -29
- data/LICENSE +1 -1
- data/README.md +0 -1
- data/bin/ruby-lint +91 -3
- data/checksum/ruby-lint-1.1.0.gem.sha512 +1 -0
- data/doc/changelog.md +30 -0
- data/doc/code_analysis.md +13 -0
- data/doc/configuration.md +5 -24
- data/lib/ruby-lint.rb +7 -10
- data/lib/ruby-lint/analysis/argument_amount.rb +2 -0
- data/lib/ruby-lint/analysis/base.rb +12 -0
- data/lib/ruby-lint/analysis/pedantics.rb +2 -0
- data/lib/ruby-lint/analysis/shadowing_variables.rb +2 -0
- data/lib/ruby-lint/analysis/undefined_methods.rb +5 -2
- data/lib/ruby-lint/analysis/undefined_variables.rb +2 -0
- data/lib/ruby-lint/analysis/unused_variables.rb +2 -0
- data/lib/ruby-lint/analysis/useless_equality_checks.rb +2 -0
- data/lib/ruby-lint/ast/node.rb +0 -15
- data/lib/ruby-lint/command.rb +100 -0
- data/lib/ruby-lint/configuration.rb +35 -66
- data/lib/ruby-lint/constant_path.rb +7 -2
- data/lib/ruby-lint/definition/ruby_object.rb +20 -6
- data/lib/ruby-lint/definitions/core/argf.rb +3 -3
- data/lib/ruby-lint/definitions/gems/minitest.rb +792 -0
- data/lib/ruby-lint/file_list.rb +1 -1
- data/lib/ruby-lint/file_loader.rb +2 -20
- data/lib/ruby-lint/file_scanner.rb +11 -2
- data/lib/ruby-lint/method_evaluation.rb +21 -0
- data/lib/ruby-lint/presenter/base.rb +18 -0
- data/lib/ruby-lint/presenter/json.rb +3 -1
- data/lib/ruby-lint/presenter/syntastic.rb +3 -1
- data/lib/ruby-lint/presenter/text.rb +3 -1
- data/lib/ruby-lint/runner.rb +6 -63
- data/lib/ruby-lint/variable_predicates.rb +3 -3
- data/lib/ruby-lint/version.rb +1 -1
- data/lib/ruby-lint/virtual_machine.rb +4 -1
- data/ruby-lint.gemspec +13 -4
- metadata +12 -187
- data/.editorconfig +0 -15
- data/.gitignore +0 -6
- data/.ruby-version +0 -1
- data/.travis.yml +0 -19
- data/Gemfile +0 -15
- data/MANIFEST +0 -469
- data/Rakefile +0 -25
- data/benchmark/bootup.rb +0 -13
- data/benchmark/virtual_machine.rb +0 -17
- data/checksum/.gitkeep +0 -0
- data/doc/.gitkeep +0 -0
- data/doc/css/.gitkeep +0 -0
- data/doc/images/.gitkeep +0 -0
- data/gen/rails/constants.txt +0 -12
- data/gen/rails/requires.rb +0 -2
- data/gen/stdlib/constants.rb +0 -30
- data/gen/stdlib/constants.txt +0 -214
- data/gen/stdlib/requires.rb +0 -64
- data/lib/ruby-lint/benchmark/average.rb +0 -115
- data/lib/ruby-lint/cache.rb +0 -121
- data/lib/ruby-lint/cache_entry.rb +0 -44
- data/lib/ruby-lint/cli.rb +0 -4
- data/lib/ruby-lint/cli/analyze.rb +0 -209
- data/lib/ruby-lint/cli/base.rb +0 -103
- data/lib/ruby-lint/cli/cache.rb +0 -60
- data/lib/ruby-lint/default_names.rb +0 -19
- data/lib/ruby-lint/definitions/gems/.gitkeep +0 -0
- data/lib/ruby-lint/node_hash.rb +0 -105
- data/misc/stdlib.rb +0 -66
- data/profiling/virtual_machine.rb +0 -20
- data/ruby-lint.yml +0 -7
- data/spec/fixtures/associating.rb +0 -7
- data/spec/fixtures/complex/rails/basic_controller.rb +0 -9
- data/spec/fixtures/complex/rcap.rb +0 -67
- data/spec/fixtures/complex/slop.rb +0 -701
- data/spec/fixtures/config.yml +0 -8
- data/spec/fixtures/deeply/nested/file.rb +0 -1
- data/spec/fixtures/file_scanner/lib/example/recursive/source.rb +0 -6
- data/spec/fixtures/file_scanner/lib/example/recursive/target.rb +0 -8
- data/spec/fixtures/file_scanner/lib/example/user.rb +0 -6
- data/spec/fixtures/file_scanner/lib/ruby-lint/definition/constant_proxy.rb +0 -6
- data/spec/fixtures/file_scanner/lib/ruby-lint/global_scope.rb +0 -6
- data/spec/fixtures/file_scanner/lib/test-dashes/foo.rb +0 -4
- data/spec/fixtures/file_scanner/rails/app/models/example/user.rb +0 -6
- data/spec/fixtures/file_scanner/rails/app/models/user.rb +0 -4
- data/spec/fixtures/invalid.rb +0 -3
- data/spec/fixtures/invalid_2.rb +0 -3
- data/spec/fixtures/syntax_error.rb +0 -1
- data/spec/fixtures/uses_external.rb +0 -1
- data/spec/fixtures/uses_external_invalid.rb +0 -3
- data/spec/fixtures/uses_external_namespace.rb +0 -1
- data/spec/fixtures/valid.rb +0 -3
- data/spec/ruby-lint/analysis/argument_amount_spec.rb +0 -131
- data/spec/ruby-lint/analysis/base_spec.rb +0 -24
- data/spec/ruby-lint/analysis/pedantics_spec.rb +0 -63
- data/spec/ruby-lint/analysis/shadowing_variables_spec.rb +0 -85
- data/spec/ruby-lint/analysis/undefined_methods_spec.rb +0 -337
- data/spec/ruby-lint/analysis/undefined_variables_spec.rb +0 -138
- data/spec/ruby-lint/analysis/unused_variables_spec.rb +0 -270
- data/spec/ruby-lint/analysis/useless_equality_checks_spec.rb +0 -107
- data/spec/ruby-lint/ast/node_spec.rb +0 -39
- data/spec/ruby-lint/cache_entry_spec.rb +0 -25
- data/spec/ruby-lint/cache_spec.rb +0 -53
- data/spec/ruby-lint/cli/analyze_spec.rb +0 -52
- data/spec/ruby-lint/configuration_spec.rb +0 -126
- data/spec/ruby-lint/constant_loader_spec.rb +0 -79
- data/spec/ruby-lint/constant_path.rb +0 -63
- data/spec/ruby-lint/definition/constant_proxy_spec.rb +0 -85
- data/spec/ruby-lint/definition/dsl_spec.rb +0 -135
- data/spec/ruby-lint/definition/registry_spec.rb +0 -106
- data/spec/ruby-lint/definition/ruby_method_spec.rb +0 -106
- data/spec/ruby-lint/definition/ruby_object_spec.rb +0 -264
- data/spec/ruby-lint/definition_builder/primitive_spec.rb +0 -62
- data/spec/ruby-lint/definition_builder/ruby_class_spec.rb +0 -107
- data/spec/ruby-lint/definition_builder/ruby_method_spec.rb +0 -53
- data/spec/ruby-lint/definition_builder/ruby_module_spec.rb +0 -52
- data/spec/ruby-lint/definitions/argv_spec.rb +0 -18
- data/spec/ruby-lint/definitions/env_spec.rb +0 -13
- data/spec/ruby-lint/definitions/file_spec.rb +0 -17
- data/spec/ruby-lint/definitions/fixnum_spec.rb +0 -18
- data/spec/ruby-lint/definitions/io_spec.rb +0 -15
- data/spec/ruby-lint/definitions/kernel_spec.rb +0 -18
- data/spec/ruby-lint/definitions/range_spec.rb +0 -21
- data/spec/ruby-lint/definitions/string_spec.rb +0 -20
- data/spec/ruby-lint/docstring/mapping.rb +0 -27
- data/spec/ruby-lint/docstring/parser_spec.rb +0 -88
- data/spec/ruby-lint/extensions/string_spec.rb +0 -7
- data/spec/ruby-lint/file_list_spec.rb +0 -25
- data/spec/ruby-lint/file_loader_spec.rb +0 -69
- data/spec/ruby-lint/file_scanner_spec.rb +0 -84
- data/spec/ruby-lint/inspector_spec.rb +0 -224
- data/spec/ruby-lint/iterator_spec.rb +0 -151
- data/spec/ruby-lint/method_call/.gitkeep +0 -0
- data/spec/ruby-lint/nested_stack_spec.rb +0 -23
- data/spec/ruby-lint/node_hash_spec.rb +0 -56
- data/spec/ruby-lint/parser_spec.rb +0 -38
- data/spec/ruby-lint/presenter/json_spec.rb +0 -58
- data/spec/ruby-lint/presenter/syntastic_spec.rb +0 -49
- data/spec/ruby-lint/presenter/text_spec.rb +0 -49
- data/spec/ruby-lint/report/entry_spec.rb +0 -58
- data/spec/ruby-lint/report_spec.rb +0 -39
- data/spec/ruby-lint/runner_spec.rb +0 -74
- data/spec/ruby-lint/variable_predicates_spec.rb +0 -30
- data/spec/ruby-lint/virtual_machine/alias_spec.rb +0 -55
- data/spec/ruby-lint/virtual_machine/assignments/arrays_spec.rb +0 -87
- data/spec/ruby-lint/virtual_machine/assignments/assignment_arguments_spec.rb +0 -14
- data/spec/ruby-lint/virtual_machine/assignments/constants_spec.rb +0 -23
- data/spec/ruby-lint/virtual_machine/assignments/hashes_spec.rb +0 -52
- data/spec/ruby-lint/virtual_machine/assignments/optional_spec.rb +0 -41
- data/spec/ruby-lint/virtual_machine/assignments/range_spec.rb +0 -28
- data/spec/ruby-lint/virtual_machine/assignments/return_values_spec.rb +0 -78
- data/spec/ruby-lint/virtual_machine/assignments/variables_spec.rb +0 -130
- data/spec/ruby-lint/virtual_machine/associate_nodes_spec.rb +0 -61
- data/spec/ruby-lint/virtual_machine/autoloading_spec.rb +0 -18
- data/spec/ruby-lint/virtual_machine/blocks_spec.rb +0 -90
- data/spec/ruby-lint/virtual_machine/classes/class_methods_spec.rb +0 -21
- data/spec/ruby-lint/virtual_machine/classes/extending_spec.rb +0 -109
- data/spec/ruby-lint/virtual_machine/classes/redefining_spec.rb +0 -51
- data/spec/ruby-lint/virtual_machine/classes/sclass_spec.rb +0 -96
- data/spec/ruby-lint/virtual_machine/classes/scoping_spec.rb +0 -60
- data/spec/ruby-lint/virtual_machine/complex/rails_spec.rb +0 -21
- data/spec/ruby-lint/virtual_machine/complex/rcap_spec.rb +0 -15
- data/spec/ruby-lint/virtual_machine/complex/slop_spec.rb +0 -16
- data/spec/ruby-lint/virtual_machine/constants_spec.rb +0 -31
- data/spec/ruby-lint/virtual_machine/for_spec.rb +0 -16
- data/spec/ruby-lint/virtual_machine/freeze_spec.rb +0 -13
- data/spec/ruby-lint/virtual_machine/global_variables_spec.rb +0 -15
- data/spec/ruby-lint/virtual_machine/inherit_kernel_spec.rb +0 -15
- data/spec/ruby-lint/virtual_machine/interpolation_spec.rb +0 -12
- data/spec/ruby-lint/virtual_machine/location_spec.rb +0 -64
- data/spec/ruby-lint/virtual_machine/method_call_tracking_spec.rb +0 -57
- data/spec/ruby-lint/virtual_machine/methods/attr_spec.rb +0 -182
- data/spec/ruby-lint/virtual_machine/methods/calls_spec.rb +0 -25
- data/spec/ruby-lint/virtual_machine/methods/define_method_spec.rb +0 -41
- data/spec/ruby-lint/virtual_machine/methods/defining_spec.rb +0 -40
- data/spec/ruby-lint/virtual_machine/methods/docstrings_spec.rb +0 -80
- data/spec/ruby-lint/virtual_machine/methods/exporting_spec.rb +0 -19
- data/spec/ruby-lint/virtual_machine/methods/kernel_spec.rb +0 -25
- data/spec/ruby-lint/virtual_machine/methods/parameters_spec.rb +0 -89
- data/spec/ruby-lint/virtual_machine/methods/patching_spec.rb +0 -20
- data/spec/ruby-lint/virtual_machine/methods/scoping_spec.rb +0 -63
- data/spec/ruby-lint/virtual_machine/methods/square_bracket_spec.rb +0 -32
- data/spec/ruby-lint/virtual_machine/methods/visibility_spec.rb +0 -64
- data/spec/ruby-lint/virtual_machine/modules_spec.rb +0 -205
- data/spec/ruby-lint/virtual_machine/reference_amount_spec.rb +0 -81
- data/spec/ruby-lint/virtual_machine/self_spec.rb +0 -37
- data/spec/ruby-lint/virtual_machine/unused_spec.rb +0 -17
- data/spec/spec_helper.rb +0 -28
- data/spec/support/building.rb +0 -50
- data/spec/support/coveralls.rb +0 -5
- data/spec/support/definitions.rb +0 -39
- data/spec/support/fixtures.rb +0 -20
- data/spec/support/parsing.rb +0 -30
- data/spec/support/simplecov.rb +0 -18
- data/spec/support/versions.rb +0 -9
- data/task/build.rake +0 -4
- data/task/checksum.rake +0 -13
- data/task/coverage.rake +0 -6
- data/task/doc.rake +0 -16
- data/task/generate.rake +0 -77
- data/task/graphviz.rake +0 -12
- data/task/manifest.rake +0 -8
- data/task/tag.rake +0 -6
- data/task/test.rake +0 -4
- data/task/todo.rake +0 -6
- data/task/travis.rake +0 -8
data/lib/ruby-lint/ast/node.rb
CHANGED
@@ -44,21 +44,6 @@ module RubyLint
|
|
44
44
|
def inspect_oneline
|
45
45
|
return inspect.gsub(/\s*\n\s*/, ' ')
|
46
46
|
end
|
47
|
-
|
48
|
-
##
|
49
|
-
# Generates a unique SHA1 digest hash based on the current node.
|
50
|
-
#
|
51
|
-
# @return [String]
|
52
|
-
#
|
53
|
-
def sha1
|
54
|
-
input = inspect
|
55
|
-
|
56
|
-
if location and location.expression
|
57
|
-
input << "#{file}#{line}#{column}"
|
58
|
-
end
|
59
|
-
|
60
|
-
return Digest::SHA1.hexdigest(input)
|
61
|
-
end
|
62
47
|
end # Node
|
63
48
|
end # AST
|
64
49
|
end # RubyLint
|
@@ -0,0 +1,100 @@
|
|
1
|
+
module RubyLint
|
2
|
+
##
|
3
|
+
# Class used for running the CLI.
|
4
|
+
#
|
5
|
+
# @!attribute [r] options
|
6
|
+
# @return [Hash|Slop]
|
7
|
+
#
|
8
|
+
class Command
|
9
|
+
attr_reader :options
|
10
|
+
|
11
|
+
##
|
12
|
+
# @return [Hash]
|
13
|
+
#
|
14
|
+
OPTION_MAPPING = {
|
15
|
+
:levels => :report_levels=,
|
16
|
+
:presenter => :presenter=,
|
17
|
+
:analysis => :analysis_classes=,
|
18
|
+
:debug => :debug=
|
19
|
+
}
|
20
|
+
|
21
|
+
##
|
22
|
+
# Formats the keys of a particular Hash stored on class level in
|
23
|
+
# {RubyLint::Configuration}.
|
24
|
+
#
|
25
|
+
# @param [Symbol] name
|
26
|
+
# @return [String]
|
27
|
+
#
|
28
|
+
def self.format_names(name)
|
29
|
+
return "* #{Configuration.send(name).keys.sort.join("\n * ")}"
|
30
|
+
end
|
31
|
+
|
32
|
+
##
|
33
|
+
# @param [Hash|Slop] options
|
34
|
+
#
|
35
|
+
def initialize(options)
|
36
|
+
@options = options
|
37
|
+
end
|
38
|
+
|
39
|
+
##
|
40
|
+
# Runs the command with the supplied arguments.
|
41
|
+
#
|
42
|
+
# @param [Array] args
|
43
|
+
#
|
44
|
+
def run(args)
|
45
|
+
start_time = Time.now.to_f
|
46
|
+
files = extract_files(args)
|
47
|
+
configuration = Configuration.load_from_file
|
48
|
+
|
49
|
+
configure(configuration, options)
|
50
|
+
|
51
|
+
runner = Runner.new(configuration)
|
52
|
+
output = runner.analyze(files)
|
53
|
+
exec_time = Time.now.to_f - start_time
|
54
|
+
|
55
|
+
puts output unless output.empty?
|
56
|
+
|
57
|
+
show_benchmark_info(exec_time) if options[:benchmark]
|
58
|
+
end
|
59
|
+
|
60
|
+
##
|
61
|
+
# Returns an Array containing the file paths that exist.
|
62
|
+
#
|
63
|
+
# @param [Array] files
|
64
|
+
# @return [Array]
|
65
|
+
#
|
66
|
+
def extract_files(files)
|
67
|
+
return RubyLint::FileList.new.process(files)
|
68
|
+
end
|
69
|
+
|
70
|
+
##
|
71
|
+
# @param [RubyLint::Configuration] configuration
|
72
|
+
# @param [Hash] opts
|
73
|
+
#
|
74
|
+
def configure(configuration, options)
|
75
|
+
OPTION_MAPPING.each do |key, setter|
|
76
|
+
configuration.send(setter, options[key]) if options[key]
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
##
|
81
|
+
# @param [Float] exec_time
|
82
|
+
#
|
83
|
+
def show_benchmark_info(exec_time)
|
84
|
+
mem_kb = `ps -o rss= #{Process.pid}`.strip.to_f
|
85
|
+
mem_mb = mem_kb / 1024
|
86
|
+
|
87
|
+
stderr "Execution time: #{exec_time.round(4)} seconds"
|
88
|
+
stderr "Memory usage: #{mem_mb.round(2)} MB (#{mem_kb.round(2)} KB)"
|
89
|
+
end
|
90
|
+
|
91
|
+
private
|
92
|
+
|
93
|
+
##
|
94
|
+
# @param [String] text
|
95
|
+
#
|
96
|
+
def stderr(text)
|
97
|
+
STDERR.puts(text)
|
98
|
+
end
|
99
|
+
end # Command
|
100
|
+
end # RubyLint
|
@@ -22,20 +22,10 @@ module RubyLint
|
|
22
22
|
# @!attribute [rw] ignore_paths
|
23
23
|
# @return [Array]
|
24
24
|
#
|
25
|
-
# @!attribute [rw] enable_cache
|
26
|
-
# When set to `true` external files and their associated data will be
|
27
|
-
# cached.
|
28
|
-
# @return [TrueClass|FalseClass]
|
29
|
-
#
|
30
|
-
# @!attribute [r] cache_directory
|
31
|
-
# The path to the directory to use for storing cache files.
|
32
|
-
# @return [String]
|
33
|
-
#
|
34
25
|
class Configuration
|
35
|
-
attr_reader :analysis_classes, :report_levels, :presenter, :directories
|
36
|
-
:cache_directory
|
26
|
+
attr_reader :analysis_classes, :report_levels, :presenter, :directories
|
37
27
|
|
38
|
-
attr_accessor :debug, :ignore_paths
|
28
|
+
attr_accessor :debug, :ignore_paths
|
39
29
|
|
40
30
|
##
|
41
31
|
# Returns an Array of locations from which to load configuration files.
|
@@ -70,42 +60,54 @@ module RubyLint
|
|
70
60
|
end
|
71
61
|
|
72
62
|
##
|
73
|
-
#
|
63
|
+
# Returns the available analysis classes. See
|
64
|
+
# {RubyLint::Analysis::Base.register} for more information on registering
|
65
|
+
# analysis classes.
|
74
66
|
#
|
75
|
-
# @
|
76
|
-
# @see RubyLint::Configuration.names
|
67
|
+
# @return [Hash]
|
77
68
|
#
|
78
|
-
def self.
|
79
|
-
|
69
|
+
def self.available_analysis_classes
|
70
|
+
return @available_analysis_classes ||= {}
|
71
|
+
end
|
80
72
|
|
81
|
-
|
73
|
+
##
|
74
|
+
# Returns the available report levels.
|
75
|
+
#
|
76
|
+
# @return [Hash]
|
77
|
+
#
|
78
|
+
def self.available_report_levels
|
79
|
+
unless @available_report_levels
|
80
|
+
@available_report_levels = {}
|
81
|
+
|
82
|
+
RubyLint::Report::DEFAULT_LEVELS.each do |level|
|
83
|
+
@available_report_levels[level.to_s] = level
|
84
|
+
end
|
85
|
+
end
|
82
86
|
|
83
|
-
|
87
|
+
return @available_report_levels
|
84
88
|
end
|
85
89
|
|
86
90
|
##
|
87
|
-
# Returns
|
88
|
-
#
|
91
|
+
# Returns the available presenter classes. See
|
92
|
+
# {RubyLint::Presenter::Base.register} for more information on registering
|
93
|
+
# presenters.
|
89
94
|
#
|
90
95
|
# @return [Hash]
|
91
96
|
#
|
92
|
-
def self.
|
93
|
-
return @
|
97
|
+
def self.available_presenters
|
98
|
+
return @available_presenters ||= {}
|
94
99
|
end
|
95
100
|
|
96
101
|
##
|
97
102
|
# @param [Hash] options
|
98
103
|
#
|
99
104
|
def initialize(options = {})
|
100
|
-
@debug
|
101
|
-
@enable_cache = default_cache_value
|
105
|
+
@debug = false
|
102
106
|
|
103
107
|
options.each do |key, value|
|
104
108
|
setter = "#{key}="
|
105
109
|
|
106
|
-
if respond_to?(setter)
|
107
|
-
send(setter, value)
|
108
|
-
end
|
110
|
+
send(setter, value) if respond_to?(setter)
|
109
111
|
end
|
110
112
|
|
111
113
|
@analysis_classes ||= default_analysis_classes
|
@@ -113,16 +115,6 @@ module RubyLint
|
|
113
115
|
@presenter ||= default_presenter
|
114
116
|
@directories ||= default_directories
|
115
117
|
@ignore_paths ||= []
|
116
|
-
@cache_directory ||= default_cache_directory
|
117
|
-
end
|
118
|
-
|
119
|
-
##
|
120
|
-
# Expands and sets the path as the cache directory.
|
121
|
-
#
|
122
|
-
# @param [String] path
|
123
|
-
#
|
124
|
-
def cache_directory=(path)
|
125
|
-
@cache_directory = File.expand_path(path)
|
126
118
|
end
|
127
119
|
|
128
120
|
##
|
@@ -141,7 +133,7 @@ module RubyLint
|
|
141
133
|
# @return [Array]
|
142
134
|
#
|
143
135
|
def report_levels=(given)
|
144
|
-
available = self.class.
|
136
|
+
available = self.class.available_report_levels
|
145
137
|
levels = []
|
146
138
|
|
147
139
|
given.each do |level|
|
@@ -164,7 +156,7 @@ module RubyLint
|
|
164
156
|
# @raise ArgumentError Raised when an invalid presenter is specified.
|
165
157
|
#
|
166
158
|
def presenter=(name)
|
167
|
-
found = self.class.
|
159
|
+
found = self.class.available_presenters[name]
|
168
160
|
|
169
161
|
if found
|
170
162
|
@presenter = found
|
@@ -181,7 +173,7 @@ module RubyLint
|
|
181
173
|
#
|
182
174
|
def analysis_classes=(names)
|
183
175
|
classes = []
|
184
|
-
available = self.class.
|
176
|
+
available = self.class.available_analysis_classes
|
185
177
|
|
186
178
|
names.each do |name|
|
187
179
|
classes << available[name] if available[name]
|
@@ -222,14 +214,14 @@ module RubyLint
|
|
222
214
|
# @return [Array]
|
223
215
|
#
|
224
216
|
def default_analysis_classes
|
225
|
-
return self.class.
|
217
|
+
return self.class.available_analysis_classes.values
|
226
218
|
end
|
227
219
|
|
228
220
|
##
|
229
221
|
# @return [Array]
|
230
222
|
#
|
231
223
|
def default_report_levels
|
232
|
-
return
|
224
|
+
return self.class.available_report_levels.values
|
233
225
|
end
|
234
226
|
|
235
227
|
##
|
@@ -245,28 +237,5 @@ module RubyLint
|
|
245
237
|
def default_directories
|
246
238
|
return FileScanner.default_directories
|
247
239
|
end
|
248
|
-
|
249
|
-
##
|
250
|
-
# @return [TrueClass|FalseClass]
|
251
|
-
#
|
252
|
-
def default_cache_value
|
253
|
-
return ENV['RUBY_LINT_DISABLE_CACHE'] ? false : true
|
254
|
-
end
|
255
|
-
|
256
|
-
##
|
257
|
-
# The default cache directory to use. Per the XDG specification
|
258
|
-
# (http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html)
|
259
|
-
# this is set to `$XDG_CACHE_HOME`/`$HOME/.cache` by default.
|
260
|
-
#
|
261
|
-
# @return [String]
|
262
|
-
#
|
263
|
-
def default_cache_directory
|
264
|
-
root = ENV['XDG_CACHE_HOME'] || File.join(ENV['HOME'], '.cache')
|
265
|
-
|
266
|
-
# ~/.cache might not exist on non Linux systems.
|
267
|
-
Dir.mkdir(root) unless File.directory?(root)
|
268
|
-
|
269
|
-
return File.join(root, 'ruby-lint')
|
270
|
-
end
|
271
240
|
end # Configuration
|
272
241
|
end # RubyLint
|
@@ -40,8 +40,13 @@ module RubyLint
|
|
40
40
|
type = REMAP_TYPES.fetch(type, type)
|
41
41
|
found = current.lookup(type, name, index == 0)
|
42
42
|
|
43
|
-
if found
|
44
|
-
current = found
|
43
|
+
if found and found.const?
|
44
|
+
current = found
|
45
|
+
|
46
|
+
# Local variables and the likes.
|
47
|
+
elsif found and found.value
|
48
|
+
current = found.value
|
49
|
+
|
45
50
|
else
|
46
51
|
return
|
47
52
|
end
|
@@ -260,11 +260,18 @@ module RubyLint
|
|
260
260
|
#
|
261
261
|
# @param [#to_sym] type
|
262
262
|
# @param [String] name
|
263
|
+
#
|
263
264
|
# @param [TrueClass|FalseClass] lookup_parent Whether definitions should
|
264
265
|
# be looked up from parent definitions.
|
266
|
+
#
|
267
|
+
# @param [Array] exclude A list of definitions to skip when looking up
|
268
|
+
# parents. This list is used to prevent stack errors when dealing with
|
269
|
+
# recursive definitions. A good example of this is `Logger` and
|
270
|
+
# `Logger::Severity` which both inherit from each other.
|
271
|
+
#
|
265
272
|
# @return [RubyLint::Definition::RubyObject|NilClass]
|
266
273
|
#
|
267
|
-
def lookup(type, name, lookup_parent = true)
|
274
|
+
def lookup(type, name, lookup_parent = true, exclude = [])
|
268
275
|
type, name = prepare_lookup(type, name)
|
269
276
|
found = nil
|
270
277
|
|
@@ -275,7 +282,10 @@ module RubyLint
|
|
275
282
|
# takes the parents themselves also into account.
|
276
283
|
elsif lookup_parent?(type) and lookup_parent
|
277
284
|
parents.each do |parent|
|
278
|
-
|
285
|
+
# If we've already processed the parent we'll skip it.
|
286
|
+
next if exclude.include?(parent)
|
287
|
+
|
288
|
+
parent_definition = determine_parent(parent, type, name, exclude)
|
279
289
|
|
280
290
|
if parent_definition
|
281
291
|
found = parent_definition
|
@@ -364,9 +374,10 @@ module RubyLint
|
|
364
374
|
#
|
365
375
|
# @param [#to_sym] type
|
366
376
|
# @param [String] name
|
377
|
+
# @param [Array] exclude Parent definitions to exclude.
|
367
378
|
# @return [TrueClass|FalseClass]
|
368
379
|
#
|
369
|
-
def has_definition?(type, name)
|
380
|
+
def has_definition?(type, name, exclude = [])
|
370
381
|
type, name = prepare_lookup(type, name)
|
371
382
|
|
372
383
|
if definitions.key?(type) and definitions[type].key?(name)
|
@@ -374,7 +385,9 @@ module RubyLint
|
|
374
385
|
|
375
386
|
elsif lookup_parent?(type)
|
376
387
|
parents.each do |parent|
|
377
|
-
|
388
|
+
next if exclude.include?(parent)
|
389
|
+
|
390
|
+
return true if parent.has_definition?(type, name, exclude | [self])
|
378
391
|
end
|
379
392
|
end
|
380
393
|
|
@@ -677,13 +690,14 @@ module RubyLint
|
|
677
690
|
# @param [RubyLint::Definition::RubyObject] parent
|
678
691
|
# @param [Symbol] type
|
679
692
|
# @param [String] name
|
693
|
+
# @param [Array] exclude
|
680
694
|
# @return [RubyLint::Definition::RubyObject]
|
681
695
|
#
|
682
|
-
def determine_parent(parent, type, name)
|
696
|
+
def determine_parent(parent, type, name, exclude = [])
|
683
697
|
if parent.type == type and parent.name == name
|
684
698
|
parent_definition = parent
|
685
699
|
else
|
686
|
-
parent_definition = parent.lookup(type, name)
|
700
|
+
parent_definition = parent.lookup(type, name, true, exclude | [self])
|
687
701
|
end
|
688
702
|
|
689
703
|
return parent_definition
|
@@ -1,11 +1,11 @@
|
|
1
1
|
# This file was automatically generated, any manual changes will be lost the
|
2
2
|
# next time this file is generated.
|
3
3
|
#
|
4
|
-
# Platform: rbx 2.2.
|
4
|
+
# Platform: rbx 2.2.5.n63
|
5
5
|
|
6
6
|
RubyLint.registry.register('ARGF') do |defs|
|
7
7
|
defs.define_constant('ARGF') do |klass|
|
8
|
-
klass.inherits(defs.constant_proxy('
|
9
|
-
|
8
|
+
klass.inherits(defs.constant_proxy('IO', RubyLint.registry))
|
9
|
+
klass.instance!
|
10
10
|
end
|
11
11
|
end
|
@@ -0,0 +1,792 @@
|
|
1
|
+
# This file was automatically generated, any manual changes will be lost the
|
2
|
+
# next time this file is generated.
|
3
|
+
#
|
4
|
+
# Platform: rbx 2.2.5.n63
|
5
|
+
|
6
|
+
RubyLint.registry.register('Minitest') do |defs|
|
7
|
+
defs.define_constant('Minitest') do |klass|
|
8
|
+
klass.inherits(defs.constant_proxy('Object', RubyLint.registry))
|
9
|
+
|
10
|
+
klass.define_method('__run') do |method|
|
11
|
+
method.define_argument('reporter')
|
12
|
+
method.define_argument('options')
|
13
|
+
end
|
14
|
+
|
15
|
+
klass.define_method('after_run') do |method|
|
16
|
+
method.define_block_argument('block')
|
17
|
+
end
|
18
|
+
|
19
|
+
klass.define_method('autorun')
|
20
|
+
|
21
|
+
klass.define_method('backtrace_filter')
|
22
|
+
|
23
|
+
klass.define_method('backtrace_filter=')
|
24
|
+
|
25
|
+
klass.define_method('extensions')
|
26
|
+
|
27
|
+
klass.define_method('extensions=')
|
28
|
+
|
29
|
+
klass.define_method('filter_backtrace') do |method|
|
30
|
+
method.define_argument('bt')
|
31
|
+
end
|
32
|
+
|
33
|
+
klass.define_method('init_plugins') do |method|
|
34
|
+
method.define_argument('options')
|
35
|
+
end
|
36
|
+
|
37
|
+
klass.define_method('load_plugins')
|
38
|
+
|
39
|
+
klass.define_method('parallel_executor')
|
40
|
+
|
41
|
+
klass.define_method('parallel_executor=')
|
42
|
+
|
43
|
+
klass.define_method('process_args') do |method|
|
44
|
+
method.define_optional_argument('args')
|
45
|
+
end
|
46
|
+
|
47
|
+
klass.define_method('reporter')
|
48
|
+
|
49
|
+
klass.define_method('reporter=')
|
50
|
+
|
51
|
+
klass.define_method('run') do |method|
|
52
|
+
method.define_optional_argument('args')
|
53
|
+
end
|
54
|
+
|
55
|
+
klass.define_method('run_one_method') do |method|
|
56
|
+
method.define_argument('klass')
|
57
|
+
method.define_argument('method_name')
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
defs.define_constant('Minitest::AbstractReporter') do |klass|
|
62
|
+
klass.inherits(defs.constant_proxy('Object', RubyLint.registry))
|
63
|
+
klass.inherits(defs.constant_proxy('Mutex_m', RubyLint.registry))
|
64
|
+
|
65
|
+
klass.define_instance_method('lock')
|
66
|
+
|
67
|
+
klass.define_instance_method('locked?')
|
68
|
+
|
69
|
+
klass.define_instance_method('passed?')
|
70
|
+
|
71
|
+
klass.define_instance_method('record') do |method|
|
72
|
+
method.define_argument('result')
|
73
|
+
end
|
74
|
+
|
75
|
+
klass.define_instance_method('report')
|
76
|
+
|
77
|
+
klass.define_instance_method('start')
|
78
|
+
|
79
|
+
klass.define_instance_method('synchronize') do |method|
|
80
|
+
method.define_block_argument('block')
|
81
|
+
end
|
82
|
+
|
83
|
+
klass.define_instance_method('try_lock')
|
84
|
+
|
85
|
+
klass.define_instance_method('unlock')
|
86
|
+
end
|
87
|
+
|
88
|
+
defs.define_constant('Minitest::Assertion') do |klass|
|
89
|
+
klass.inherits(defs.constant_proxy('Exception', RubyLint.registry))
|
90
|
+
|
91
|
+
klass.define_instance_method('error')
|
92
|
+
|
93
|
+
klass.define_instance_method('location')
|
94
|
+
|
95
|
+
klass.define_instance_method('result_code')
|
96
|
+
|
97
|
+
klass.define_instance_method('result_label')
|
98
|
+
end
|
99
|
+
|
100
|
+
defs.define_constant('Minitest::Assertions') do |klass|
|
101
|
+
klass.inherits(defs.constant_proxy('Object', RubyLint.registry))
|
102
|
+
|
103
|
+
klass.define_method('diff')
|
104
|
+
|
105
|
+
klass.define_method('diff=') do |method|
|
106
|
+
method.define_argument('o')
|
107
|
+
end
|
108
|
+
|
109
|
+
klass.define_instance_method('_synchronize')
|
110
|
+
|
111
|
+
klass.define_instance_method('assert') do |method|
|
112
|
+
method.define_argument('test')
|
113
|
+
method.define_optional_argument('msg')
|
114
|
+
end
|
115
|
+
|
116
|
+
klass.define_instance_method('assert_empty') do |method|
|
117
|
+
method.define_argument('obj')
|
118
|
+
method.define_optional_argument('msg')
|
119
|
+
end
|
120
|
+
|
121
|
+
klass.define_instance_method('assert_equal') do |method|
|
122
|
+
method.define_argument('exp')
|
123
|
+
method.define_argument('act')
|
124
|
+
method.define_optional_argument('msg')
|
125
|
+
end
|
126
|
+
|
127
|
+
klass.define_instance_method('assert_in_delta') do |method|
|
128
|
+
method.define_argument('exp')
|
129
|
+
method.define_argument('act')
|
130
|
+
method.define_optional_argument('delta')
|
131
|
+
method.define_optional_argument('msg')
|
132
|
+
end
|
133
|
+
|
134
|
+
klass.define_instance_method('assert_in_epsilon') do |method|
|
135
|
+
method.define_argument('a')
|
136
|
+
method.define_argument('b')
|
137
|
+
method.define_optional_argument('epsilon')
|
138
|
+
method.define_optional_argument('msg')
|
139
|
+
end
|
140
|
+
|
141
|
+
klass.define_instance_method('assert_includes') do |method|
|
142
|
+
method.define_argument('collection')
|
143
|
+
method.define_argument('obj')
|
144
|
+
method.define_optional_argument('msg')
|
145
|
+
end
|
146
|
+
|
147
|
+
klass.define_instance_method('assert_instance_of') do |method|
|
148
|
+
method.define_argument('cls')
|
149
|
+
method.define_argument('obj')
|
150
|
+
method.define_optional_argument('msg')
|
151
|
+
end
|
152
|
+
|
153
|
+
klass.define_instance_method('assert_kind_of') do |method|
|
154
|
+
method.define_argument('cls')
|
155
|
+
method.define_argument('obj')
|
156
|
+
method.define_optional_argument('msg')
|
157
|
+
end
|
158
|
+
|
159
|
+
klass.define_instance_method('assert_match') do |method|
|
160
|
+
method.define_argument('matcher')
|
161
|
+
method.define_argument('obj')
|
162
|
+
method.define_optional_argument('msg')
|
163
|
+
end
|
164
|
+
|
165
|
+
klass.define_instance_method('assert_nil') do |method|
|
166
|
+
method.define_argument('obj')
|
167
|
+
method.define_optional_argument('msg')
|
168
|
+
end
|
169
|
+
|
170
|
+
klass.define_instance_method('assert_operator') do |method|
|
171
|
+
method.define_argument('o1')
|
172
|
+
method.define_argument('op')
|
173
|
+
method.define_optional_argument('o2')
|
174
|
+
method.define_optional_argument('msg')
|
175
|
+
end
|
176
|
+
|
177
|
+
klass.define_instance_method('assert_output') do |method|
|
178
|
+
method.define_optional_argument('stdout')
|
179
|
+
method.define_optional_argument('stderr')
|
180
|
+
end
|
181
|
+
|
182
|
+
klass.define_instance_method('assert_predicate') do |method|
|
183
|
+
method.define_argument('o1')
|
184
|
+
method.define_argument('op')
|
185
|
+
method.define_optional_argument('msg')
|
186
|
+
end
|
187
|
+
|
188
|
+
klass.define_instance_method('assert_raises') do |method|
|
189
|
+
method.define_rest_argument('exp')
|
190
|
+
end
|
191
|
+
|
192
|
+
klass.define_instance_method('assert_respond_to') do |method|
|
193
|
+
method.define_argument('obj')
|
194
|
+
method.define_argument('meth')
|
195
|
+
method.define_optional_argument('msg')
|
196
|
+
end
|
197
|
+
|
198
|
+
klass.define_instance_method('assert_same') do |method|
|
199
|
+
method.define_argument('exp')
|
200
|
+
method.define_argument('act')
|
201
|
+
method.define_optional_argument('msg')
|
202
|
+
end
|
203
|
+
|
204
|
+
klass.define_instance_method('assert_send') do |method|
|
205
|
+
method.define_argument('send_ary')
|
206
|
+
method.define_optional_argument('m')
|
207
|
+
end
|
208
|
+
|
209
|
+
klass.define_instance_method('assert_silent')
|
210
|
+
|
211
|
+
klass.define_instance_method('assert_throws') do |method|
|
212
|
+
method.define_argument('sym')
|
213
|
+
method.define_optional_argument('msg')
|
214
|
+
end
|
215
|
+
|
216
|
+
klass.define_instance_method('capture_io')
|
217
|
+
|
218
|
+
klass.define_instance_method('capture_subprocess_io')
|
219
|
+
|
220
|
+
klass.define_instance_method('diff') do |method|
|
221
|
+
method.define_argument('exp')
|
222
|
+
method.define_argument('act')
|
223
|
+
end
|
224
|
+
|
225
|
+
klass.define_instance_method('exception_details') do |method|
|
226
|
+
method.define_argument('e')
|
227
|
+
method.define_argument('msg')
|
228
|
+
end
|
229
|
+
|
230
|
+
klass.define_instance_method('flunk') do |method|
|
231
|
+
method.define_optional_argument('msg')
|
232
|
+
end
|
233
|
+
|
234
|
+
klass.define_instance_method('message') do |method|
|
235
|
+
method.define_optional_argument('msg')
|
236
|
+
method.define_optional_argument('ending')
|
237
|
+
method.define_block_argument('default')
|
238
|
+
end
|
239
|
+
|
240
|
+
klass.define_instance_method('mu_pp') do |method|
|
241
|
+
method.define_argument('obj')
|
242
|
+
end
|
243
|
+
|
244
|
+
klass.define_instance_method('mu_pp_for_diff') do |method|
|
245
|
+
method.define_argument('obj')
|
246
|
+
end
|
247
|
+
|
248
|
+
klass.define_instance_method('pass') do |method|
|
249
|
+
method.define_optional_argument('msg')
|
250
|
+
end
|
251
|
+
|
252
|
+
klass.define_instance_method('refute') do |method|
|
253
|
+
method.define_argument('test')
|
254
|
+
method.define_optional_argument('msg')
|
255
|
+
end
|
256
|
+
|
257
|
+
klass.define_instance_method('refute_empty') do |method|
|
258
|
+
method.define_argument('obj')
|
259
|
+
method.define_optional_argument('msg')
|
260
|
+
end
|
261
|
+
|
262
|
+
klass.define_instance_method('refute_equal') do |method|
|
263
|
+
method.define_argument('exp')
|
264
|
+
method.define_argument('act')
|
265
|
+
method.define_optional_argument('msg')
|
266
|
+
end
|
267
|
+
|
268
|
+
klass.define_instance_method('refute_in_delta') do |method|
|
269
|
+
method.define_argument('exp')
|
270
|
+
method.define_argument('act')
|
271
|
+
method.define_optional_argument('delta')
|
272
|
+
method.define_optional_argument('msg')
|
273
|
+
end
|
274
|
+
|
275
|
+
klass.define_instance_method('refute_in_epsilon') do |method|
|
276
|
+
method.define_argument('a')
|
277
|
+
method.define_argument('b')
|
278
|
+
method.define_optional_argument('epsilon')
|
279
|
+
method.define_optional_argument('msg')
|
280
|
+
end
|
281
|
+
|
282
|
+
klass.define_instance_method('refute_includes') do |method|
|
283
|
+
method.define_argument('collection')
|
284
|
+
method.define_argument('obj')
|
285
|
+
method.define_optional_argument('msg')
|
286
|
+
end
|
287
|
+
|
288
|
+
klass.define_instance_method('refute_instance_of') do |method|
|
289
|
+
method.define_argument('cls')
|
290
|
+
method.define_argument('obj')
|
291
|
+
method.define_optional_argument('msg')
|
292
|
+
end
|
293
|
+
|
294
|
+
klass.define_instance_method('refute_kind_of') do |method|
|
295
|
+
method.define_argument('cls')
|
296
|
+
method.define_argument('obj')
|
297
|
+
method.define_optional_argument('msg')
|
298
|
+
end
|
299
|
+
|
300
|
+
klass.define_instance_method('refute_match') do |method|
|
301
|
+
method.define_argument('matcher')
|
302
|
+
method.define_argument('obj')
|
303
|
+
method.define_optional_argument('msg')
|
304
|
+
end
|
305
|
+
|
306
|
+
klass.define_instance_method('refute_nil') do |method|
|
307
|
+
method.define_argument('obj')
|
308
|
+
method.define_optional_argument('msg')
|
309
|
+
end
|
310
|
+
|
311
|
+
klass.define_instance_method('refute_operator') do |method|
|
312
|
+
method.define_argument('o1')
|
313
|
+
method.define_argument('op')
|
314
|
+
method.define_optional_argument('o2')
|
315
|
+
method.define_optional_argument('msg')
|
316
|
+
end
|
317
|
+
|
318
|
+
klass.define_instance_method('refute_predicate') do |method|
|
319
|
+
method.define_argument('o1')
|
320
|
+
method.define_argument('op')
|
321
|
+
method.define_optional_argument('msg')
|
322
|
+
end
|
323
|
+
|
324
|
+
klass.define_instance_method('refute_respond_to') do |method|
|
325
|
+
method.define_argument('obj')
|
326
|
+
method.define_argument('meth')
|
327
|
+
method.define_optional_argument('msg')
|
328
|
+
end
|
329
|
+
|
330
|
+
klass.define_instance_method('refute_same') do |method|
|
331
|
+
method.define_argument('exp')
|
332
|
+
method.define_argument('act')
|
333
|
+
method.define_optional_argument('msg')
|
334
|
+
end
|
335
|
+
|
336
|
+
klass.define_instance_method('skip') do |method|
|
337
|
+
method.define_optional_argument('msg')
|
338
|
+
method.define_optional_argument('bt')
|
339
|
+
end
|
340
|
+
|
341
|
+
klass.define_instance_method('skipped?')
|
342
|
+
end
|
343
|
+
|
344
|
+
defs.define_constant('Minitest::Assertions::UNDEFINED') do |klass|
|
345
|
+
klass.inherits(defs.constant_proxy('Object', RubyLint.registry))
|
346
|
+
|
347
|
+
klass.define_method('inspect')
|
348
|
+
end
|
349
|
+
|
350
|
+
defs.define_constant('Minitest::BacktraceFilter') do |klass|
|
351
|
+
klass.inherits(defs.constant_proxy('Object', RubyLint.registry))
|
352
|
+
|
353
|
+
klass.define_instance_method('filter') do |method|
|
354
|
+
method.define_argument('bt')
|
355
|
+
end
|
356
|
+
end
|
357
|
+
|
358
|
+
defs.define_constant('Minitest::CompositeReporter') do |klass|
|
359
|
+
klass.inherits(defs.constant_proxy('Minitest::AbstractReporter', RubyLint.registry))
|
360
|
+
|
361
|
+
klass.define_instance_method('<<') do |method|
|
362
|
+
method.define_argument('reporter')
|
363
|
+
end
|
364
|
+
|
365
|
+
klass.define_instance_method('initialize') do |method|
|
366
|
+
method.define_rest_argument('reporters')
|
367
|
+
|
368
|
+
method.returns { |object| object.instance }
|
369
|
+
end
|
370
|
+
|
371
|
+
klass.define_instance_method('passed?')
|
372
|
+
|
373
|
+
klass.define_instance_method('record') do |method|
|
374
|
+
method.define_argument('result')
|
375
|
+
end
|
376
|
+
|
377
|
+
klass.define_instance_method('report')
|
378
|
+
|
379
|
+
klass.define_instance_method('reporters')
|
380
|
+
|
381
|
+
klass.define_instance_method('reporters=')
|
382
|
+
|
383
|
+
klass.define_instance_method('start')
|
384
|
+
end
|
385
|
+
|
386
|
+
defs.define_constant('Minitest::Guard') do |klass|
|
387
|
+
klass.inherits(defs.constant_proxy('Object', RubyLint.registry))
|
388
|
+
|
389
|
+
klass.define_instance_method('jruby?') do |method|
|
390
|
+
method.define_optional_argument('platform')
|
391
|
+
end
|
392
|
+
|
393
|
+
klass.define_instance_method('maglev?') do |method|
|
394
|
+
method.define_optional_argument('platform')
|
395
|
+
end
|
396
|
+
|
397
|
+
klass.define_instance_method('mri?') do |method|
|
398
|
+
method.define_optional_argument('platform')
|
399
|
+
end
|
400
|
+
|
401
|
+
klass.define_instance_method('rubinius?') do |method|
|
402
|
+
method.define_optional_argument('platform')
|
403
|
+
end
|
404
|
+
|
405
|
+
klass.define_instance_method('windows?') do |method|
|
406
|
+
method.define_optional_argument('platform')
|
407
|
+
end
|
408
|
+
end
|
409
|
+
|
410
|
+
defs.define_constant('Minitest::Parallel') do |klass|
|
411
|
+
klass.inherits(defs.constant_proxy('Object', RubyLint.registry))
|
412
|
+
|
413
|
+
end
|
414
|
+
|
415
|
+
defs.define_constant('Minitest::Parallel::Executor') do |klass|
|
416
|
+
klass.inherits(defs.constant_proxy('Object', RubyLint.registry))
|
417
|
+
|
418
|
+
klass.define_instance_method('<<') do |method|
|
419
|
+
method.define_argument('work')
|
420
|
+
end
|
421
|
+
|
422
|
+
klass.define_instance_method('initialize') do |method|
|
423
|
+
method.define_argument('size')
|
424
|
+
|
425
|
+
method.returns { |object| object.instance }
|
426
|
+
end
|
427
|
+
|
428
|
+
klass.define_instance_method('shutdown')
|
429
|
+
|
430
|
+
klass.define_instance_method('size')
|
431
|
+
end
|
432
|
+
|
433
|
+
defs.define_constant('Minitest::Parallel::Test') do |klass|
|
434
|
+
klass.inherits(defs.constant_proxy('Object', RubyLint.registry))
|
435
|
+
|
436
|
+
klass.define_instance_method('_synchronize')
|
437
|
+
end
|
438
|
+
|
439
|
+
defs.define_constant('Minitest::Parallel::Test::ClassMethods') do |klass|
|
440
|
+
klass.inherits(defs.constant_proxy('Object', RubyLint.registry))
|
441
|
+
|
442
|
+
klass.define_instance_method('run_one_method') do |method|
|
443
|
+
method.define_argument('klass')
|
444
|
+
method.define_argument('method_name')
|
445
|
+
method.define_argument('reporter')
|
446
|
+
end
|
447
|
+
|
448
|
+
klass.define_instance_method('test_order')
|
449
|
+
end
|
450
|
+
|
451
|
+
defs.define_constant('Minitest::ProgressReporter') do |klass|
|
452
|
+
klass.inherits(defs.constant_proxy('Minitest::Reporter', RubyLint.registry))
|
453
|
+
|
454
|
+
klass.define_instance_method('record') do |method|
|
455
|
+
method.define_argument('result')
|
456
|
+
end
|
457
|
+
end
|
458
|
+
|
459
|
+
defs.define_constant('Minitest::Reporter') do |klass|
|
460
|
+
klass.inherits(defs.constant_proxy('Minitest::AbstractReporter', RubyLint.registry))
|
461
|
+
|
462
|
+
klass.define_instance_method('initialize') do |method|
|
463
|
+
method.define_optional_argument('io')
|
464
|
+
method.define_optional_argument('options')
|
465
|
+
|
466
|
+
method.returns { |object| object.instance }
|
467
|
+
end
|
468
|
+
|
469
|
+
klass.define_instance_method('io')
|
470
|
+
|
471
|
+
klass.define_instance_method('io=')
|
472
|
+
|
473
|
+
klass.define_instance_method('options')
|
474
|
+
|
475
|
+
klass.define_instance_method('options=')
|
476
|
+
end
|
477
|
+
|
478
|
+
defs.define_constant('Minitest::Runnable') do |klass|
|
479
|
+
klass.inherits(defs.constant_proxy('Object', RubyLint.registry))
|
480
|
+
|
481
|
+
klass.define_method('inherited') do |method|
|
482
|
+
method.define_argument('klass')
|
483
|
+
end
|
484
|
+
|
485
|
+
klass.define_method('methods_matching') do |method|
|
486
|
+
method.define_argument('re')
|
487
|
+
end
|
488
|
+
|
489
|
+
klass.define_method('on_signal') do |method|
|
490
|
+
method.define_argument('name')
|
491
|
+
method.define_argument('action')
|
492
|
+
end
|
493
|
+
|
494
|
+
klass.define_method('reset')
|
495
|
+
|
496
|
+
klass.define_method('run') do |method|
|
497
|
+
method.define_argument('reporter')
|
498
|
+
method.define_optional_argument('options')
|
499
|
+
end
|
500
|
+
|
501
|
+
klass.define_method('run_one_method') do |method|
|
502
|
+
method.define_argument('klass')
|
503
|
+
method.define_argument('method_name')
|
504
|
+
method.define_argument('reporter')
|
505
|
+
end
|
506
|
+
|
507
|
+
klass.define_method('runnable_methods')
|
508
|
+
|
509
|
+
klass.define_method('runnables')
|
510
|
+
|
511
|
+
klass.define_method('with_info_handler') do |method|
|
512
|
+
method.define_argument('reporter')
|
513
|
+
method.define_block_argument('block')
|
514
|
+
end
|
515
|
+
|
516
|
+
klass.define_instance_method('assertions')
|
517
|
+
|
518
|
+
klass.define_instance_method('assertions=')
|
519
|
+
|
520
|
+
klass.define_instance_method('failure')
|
521
|
+
|
522
|
+
klass.define_instance_method('failures')
|
523
|
+
|
524
|
+
klass.define_instance_method('failures=')
|
525
|
+
|
526
|
+
klass.define_instance_method('initialize') do |method|
|
527
|
+
method.define_argument('name')
|
528
|
+
|
529
|
+
method.returns { |object| object.instance }
|
530
|
+
end
|
531
|
+
|
532
|
+
klass.define_instance_method('marshal_dump')
|
533
|
+
|
534
|
+
klass.define_instance_method('marshal_load') do |method|
|
535
|
+
method.define_argument('ary')
|
536
|
+
end
|
537
|
+
|
538
|
+
klass.define_instance_method('name')
|
539
|
+
|
540
|
+
klass.define_instance_method('name=') do |method|
|
541
|
+
method.define_argument('o')
|
542
|
+
end
|
543
|
+
|
544
|
+
klass.define_instance_method('passed?')
|
545
|
+
|
546
|
+
klass.define_instance_method('result_code')
|
547
|
+
|
548
|
+
klass.define_instance_method('run')
|
549
|
+
|
550
|
+
klass.define_instance_method('skipped?')
|
551
|
+
end
|
552
|
+
|
553
|
+
defs.define_constant('Minitest::Skip') do |klass|
|
554
|
+
klass.inherits(defs.constant_proxy('Minitest::Assertion', RubyLint.registry))
|
555
|
+
|
556
|
+
klass.define_instance_method('result_label')
|
557
|
+
end
|
558
|
+
|
559
|
+
defs.define_constant('Minitest::StatisticsReporter') do |klass|
|
560
|
+
klass.inherits(defs.constant_proxy('Minitest::Reporter', RubyLint.registry))
|
561
|
+
|
562
|
+
klass.define_instance_method('assertions')
|
563
|
+
|
564
|
+
klass.define_instance_method('assertions=')
|
565
|
+
|
566
|
+
klass.define_instance_method('count')
|
567
|
+
|
568
|
+
klass.define_instance_method('count=')
|
569
|
+
|
570
|
+
klass.define_instance_method('errors')
|
571
|
+
|
572
|
+
klass.define_instance_method('errors=')
|
573
|
+
|
574
|
+
klass.define_instance_method('failures')
|
575
|
+
|
576
|
+
klass.define_instance_method('failures=')
|
577
|
+
|
578
|
+
klass.define_instance_method('initialize') do |method|
|
579
|
+
method.define_optional_argument('io')
|
580
|
+
method.define_optional_argument('options')
|
581
|
+
|
582
|
+
method.returns { |object| object.instance }
|
583
|
+
end
|
584
|
+
|
585
|
+
klass.define_instance_method('passed?')
|
586
|
+
|
587
|
+
klass.define_instance_method('record') do |method|
|
588
|
+
method.define_argument('result')
|
589
|
+
end
|
590
|
+
|
591
|
+
klass.define_instance_method('report')
|
592
|
+
|
593
|
+
klass.define_instance_method('results')
|
594
|
+
|
595
|
+
klass.define_instance_method('results=')
|
596
|
+
|
597
|
+
klass.define_instance_method('skips')
|
598
|
+
|
599
|
+
klass.define_instance_method('skips=')
|
600
|
+
|
601
|
+
klass.define_instance_method('start')
|
602
|
+
|
603
|
+
klass.define_instance_method('start_time')
|
604
|
+
|
605
|
+
klass.define_instance_method('start_time=')
|
606
|
+
|
607
|
+
klass.define_instance_method('total_time')
|
608
|
+
|
609
|
+
klass.define_instance_method('total_time=')
|
610
|
+
end
|
611
|
+
|
612
|
+
defs.define_constant('Minitest::SummaryReporter') do |klass|
|
613
|
+
klass.inherits(defs.constant_proxy('Minitest::StatisticsReporter', RubyLint.registry))
|
614
|
+
|
615
|
+
klass.define_instance_method('aggregated_results')
|
616
|
+
|
617
|
+
klass.define_instance_method('old_sync')
|
618
|
+
|
619
|
+
klass.define_instance_method('old_sync=')
|
620
|
+
|
621
|
+
klass.define_instance_method('report')
|
622
|
+
|
623
|
+
klass.define_instance_method('start')
|
624
|
+
|
625
|
+
klass.define_instance_method('statistics')
|
626
|
+
|
627
|
+
klass.define_instance_method('summary')
|
628
|
+
|
629
|
+
klass.define_instance_method('sync')
|
630
|
+
|
631
|
+
klass.define_instance_method('sync=')
|
632
|
+
|
633
|
+
klass.define_instance_method('to_s')
|
634
|
+
end
|
635
|
+
|
636
|
+
defs.define_constant('Minitest::Test') do |klass|
|
637
|
+
klass.inherits(defs.constant_proxy('Minitest::Runnable', RubyLint.registry))
|
638
|
+
klass.inherits(defs.constant_proxy('Minitest::Guard', RubyLint.registry))
|
639
|
+
klass.inherits(defs.constant_proxy('Minitest::Test::LifecycleHooks', RubyLint.registry))
|
640
|
+
klass.inherits(defs.constant_proxy('Minitest::Assertions', RubyLint.registry))
|
641
|
+
|
642
|
+
klass.define_method('i_suck_and_my_tests_are_order_dependent!')
|
643
|
+
|
644
|
+
klass.define_method('io_lock')
|
645
|
+
|
646
|
+
klass.define_method('io_lock=')
|
647
|
+
|
648
|
+
klass.define_method('make_my_diffs_pretty!')
|
649
|
+
|
650
|
+
klass.define_method('parallelize_me!')
|
651
|
+
|
652
|
+
klass.define_method('runnable_methods')
|
653
|
+
|
654
|
+
klass.define_method('test_order')
|
655
|
+
|
656
|
+
klass.define_instance_method('capture_exceptions')
|
657
|
+
|
658
|
+
klass.define_instance_method('error?')
|
659
|
+
|
660
|
+
klass.define_instance_method('location')
|
661
|
+
|
662
|
+
klass.define_instance_method('marshal_dump')
|
663
|
+
|
664
|
+
klass.define_instance_method('marshal_load') do |method|
|
665
|
+
method.define_argument('ary')
|
666
|
+
end
|
667
|
+
|
668
|
+
klass.define_instance_method('passed?')
|
669
|
+
|
670
|
+
klass.define_instance_method('result_code')
|
671
|
+
|
672
|
+
klass.define_instance_method('run')
|
673
|
+
|
674
|
+
klass.define_instance_method('skipped?')
|
675
|
+
|
676
|
+
klass.define_instance_method('time')
|
677
|
+
|
678
|
+
klass.define_instance_method('time=')
|
679
|
+
|
680
|
+
klass.define_instance_method('time_it')
|
681
|
+
|
682
|
+
klass.define_instance_method('to_s')
|
683
|
+
|
684
|
+
klass.define_instance_method('with_info_handler') do |method|
|
685
|
+
method.define_block_argument('block')
|
686
|
+
end
|
687
|
+
end
|
688
|
+
|
689
|
+
defs.define_constant('Minitest::Test::LifecycleHooks') do |klass|
|
690
|
+
klass.inherits(defs.constant_proxy('Object', RubyLint.registry))
|
691
|
+
|
692
|
+
klass.define_instance_method('after_setup')
|
693
|
+
|
694
|
+
klass.define_instance_method('after_teardown')
|
695
|
+
|
696
|
+
klass.define_instance_method('before_setup')
|
697
|
+
|
698
|
+
klass.define_instance_method('before_teardown')
|
699
|
+
|
700
|
+
klass.define_instance_method('setup')
|
701
|
+
|
702
|
+
klass.define_instance_method('teardown')
|
703
|
+
end
|
704
|
+
|
705
|
+
defs.define_constant('Minitest::Test::PASSTHROUGH_EXCEPTIONS') do |klass|
|
706
|
+
klass.inherits(defs.constant_proxy('Object', RubyLint.registry))
|
707
|
+
|
708
|
+
end
|
709
|
+
|
710
|
+
defs.define_constant('Minitest::Test::UNDEFINED') do |klass|
|
711
|
+
klass.inherits(defs.constant_proxy('Object', RubyLint.registry))
|
712
|
+
|
713
|
+
klass.define_method('inspect')
|
714
|
+
end
|
715
|
+
|
716
|
+
defs.define_constant('Minitest::UnexpectedError') do |klass|
|
717
|
+
klass.inherits(defs.constant_proxy('Minitest::Assertion', RubyLint.registry))
|
718
|
+
|
719
|
+
klass.define_instance_method('backtrace')
|
720
|
+
|
721
|
+
klass.define_instance_method('error')
|
722
|
+
|
723
|
+
klass.define_instance_method('exception')
|
724
|
+
|
725
|
+
klass.define_instance_method('exception=')
|
726
|
+
|
727
|
+
klass.define_instance_method('initialize') do |method|
|
728
|
+
method.define_argument('exception')
|
729
|
+
|
730
|
+
method.returns { |object| object.instance }
|
731
|
+
end
|
732
|
+
|
733
|
+
klass.define_instance_method('message')
|
734
|
+
|
735
|
+
klass.define_instance_method('result_label')
|
736
|
+
end
|
737
|
+
|
738
|
+
defs.define_constant('Minitest::Unit') do |klass|
|
739
|
+
klass.inherits(defs.constant_proxy('Object', RubyLint.registry))
|
740
|
+
|
741
|
+
klass.define_method('after_tests') do |method|
|
742
|
+
method.define_block_argument('b')
|
743
|
+
end
|
744
|
+
|
745
|
+
klass.define_method('autorun')
|
746
|
+
end
|
747
|
+
|
748
|
+
defs.define_constant('Minitest::Unit::TestCase') do |klass|
|
749
|
+
klass.inherits(defs.constant_proxy('Minitest::Test', RubyLint.registry))
|
750
|
+
|
751
|
+
klass.define_method('inherited') do |method|
|
752
|
+
method.define_argument('klass')
|
753
|
+
end
|
754
|
+
end
|
755
|
+
|
756
|
+
defs.define_constant('Minitest::Unit::TestCase::LifecycleHooks') do |klass|
|
757
|
+
klass.inherits(defs.constant_proxy('Object', RubyLint.registry))
|
758
|
+
|
759
|
+
klass.define_instance_method('after_setup')
|
760
|
+
|
761
|
+
klass.define_instance_method('after_teardown')
|
762
|
+
|
763
|
+
klass.define_instance_method('before_setup')
|
764
|
+
|
765
|
+
klass.define_instance_method('before_teardown')
|
766
|
+
|
767
|
+
klass.define_instance_method('setup')
|
768
|
+
|
769
|
+
klass.define_instance_method('teardown')
|
770
|
+
end
|
771
|
+
|
772
|
+
defs.define_constant('Minitest::Unit::TestCase::PASSTHROUGH_EXCEPTIONS') do |klass|
|
773
|
+
klass.inherits(defs.constant_proxy('Object', RubyLint.registry))
|
774
|
+
|
775
|
+
end
|
776
|
+
|
777
|
+
defs.define_constant('Minitest::Unit::TestCase::UNDEFINED') do |klass|
|
778
|
+
klass.inherits(defs.constant_proxy('Object', RubyLint.registry))
|
779
|
+
|
780
|
+
klass.define_method('inspect')
|
781
|
+
end
|
782
|
+
|
783
|
+
defs.define_constant('Minitest::Unit::VERSION') do |klass|
|
784
|
+
klass.inherits(defs.constant_proxy('Object', RubyLint.registry))
|
785
|
+
|
786
|
+
end
|
787
|
+
|
788
|
+
defs.define_constant('Minitest::VERSION') do |klass|
|
789
|
+
klass.inherits(defs.constant_proxy('Object', RubyLint.registry))
|
790
|
+
|
791
|
+
end
|
792
|
+
end
|