ruby-lint 2.1.0 → 2.2.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.
- checksums.yaml +4 -4
- data/checksum/ruby-lint-2.1.0.gem.sha512 +1 -0
- data/doc/changelog.md +14 -0
- data/doc/configuration.md +1 -0
- data/lib/ruby-lint.rb +1 -0
- data/lib/ruby-lint/analysis/argument_amount.rb +6 -0
- data/lib/ruby-lint/definition/registry.rb +1 -0
- data/lib/ruby-lint/definition/ruby_object.rb +9 -2
- data/lib/ruby-lint/presenter/emacs.rb +39 -0
- data/lib/ruby-lint/report/entry.rb +1 -1
- data/lib/ruby-lint/version.rb +1 -1
- data/lib/ruby-lint/virtual_machine.rb +2 -13
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8bf37bd3d8da6b4f67786c1a253264d9834ae60c
|
4
|
+
data.tar.gz: 55e7485469de13d24f95d09a3ba89e16b39e9d71
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0c35b467c325e8ade9eedbc0804a6fd1eff49c0afdee96449378923b2394e7a692f88a2c42985262b7af5cac5eea515d90242edda76c455f2e33c644404cdc35
|
7
|
+
data.tar.gz: a00707a3cbf48c2abf148c94417956d187bf2572f1d1f73c9468d255302605d818569cc5bd3b57a0733a05b9a7520f80631672d566c7aa1df96bf5db63ed27f2
|
@@ -0,0 +1 @@
|
|
1
|
+
e03c693a87efe6d6ad3a30d17827c07fe54fe7cf6248b03449caf7de5c0c37e454a826207b76bbc40dd207d8d684c15d1dc6851d44bd593bf4bab568fc92fc08
|
data/doc/changelog.md
CHANGED
@@ -5,6 +5,20 @@ This document contains a short summary of the various releases of ruby-lint.
|
|
5
5
|
For a full list of commits included in each release see the corresponding Git
|
6
6
|
tags (named after the versions).
|
7
7
|
|
8
|
+
## 2.2.0 - 2016-05-26
|
9
|
+
|
10
|
+
* Martin Vidner added a present for Emacs, see commit
|
11
|
+
ffd38a22cc840eb786088582efdfea1ba8635d8d for more information.
|
12
|
+
* Martin Vidner added tests for Report::Entry#<=>, see commits
|
13
|
+
15d9797f7f32c7f615fb473a99ed8769e8b7a826 and
|
14
|
+
1e77ab825ac5b254c096ff1d6d4eba1fc4e8ea86 for more information.
|
15
|
+
* Martin Vidner cleaned up some YARD comments and fixed the Travis
|
16
|
+
configuration. See commits e3acb83ecc4a7ff4f5f76130a68ea6a676d216f9,
|
17
|
+
738fd2eae4811fb1617f475c552e763cc1fd460e, and
|
18
|
+
1e364b6307b7f4b64b1eeeb0a05ccfe9c430b093 for more information.
|
19
|
+
* A bug with parallel assignments was fixed by Mistral Contrastin. See commit
|
20
|
+
f177ff67b9439b98678807d50efb433f4c3e774b for more information.
|
21
|
+
|
8
22
|
## 2.1.0 - 2016-01-22
|
9
23
|
|
10
24
|
Ryan McKern added a definition for `Module#module_function` in pull request
|
data/doc/configuration.md
CHANGED
data/lib/ruby-lint.rb
CHANGED
@@ -112,6 +112,12 @@ module RubyLint
|
|
112
112
|
max = min + method.amount(:optarg) + method.amount(:restarg)
|
113
113
|
end
|
114
114
|
|
115
|
+
# If the method follows the writer naming pattern with a '=' ending,
|
116
|
+
# the parser generates send nodes with one less argument than needed in
|
117
|
+
# the case of parallel assignment. Here reducing minimum prevents false
|
118
|
+
# positive warnings to be generated.
|
119
|
+
min -= 1 if method.name =~ /=$/
|
120
|
+
|
115
121
|
return min, max
|
116
122
|
end
|
117
123
|
|
@@ -543,6 +543,7 @@ module RubyLint
|
|
543
543
|
# string.define_constant('NEWLINE')
|
544
544
|
#
|
545
545
|
# @param [String] name
|
546
|
+
# @yieldparam [RubyLint::Definition::RubyObject] defs
|
546
547
|
# @return [RubyLint::Definition::RubyObject]
|
547
548
|
#
|
548
549
|
def define_constant(name, &block)
|
@@ -578,7 +579,8 @@ module RubyLint
|
|
578
579
|
# @example
|
579
580
|
# string.define_method(:new)
|
580
581
|
#
|
581
|
-
# @param [String] name
|
582
|
+
# @param [String,Symbol] name
|
583
|
+
# @yieldparam [RubyLint::Definition::RubyMethod] method
|
582
584
|
# @return [RubyLint::Definition::RubyMethod]
|
583
585
|
#
|
584
586
|
def define_method(name, &block)
|
@@ -592,6 +594,9 @@ module RubyLint
|
|
592
594
|
# string.define_instance_method(:gsub)
|
593
595
|
#
|
594
596
|
# @see RubyLint::Definition::RubyObject#define_method
|
597
|
+
# @param [String,Symbol] name
|
598
|
+
# @yieldparam [RubyLint::Definition::RubyMethod] method
|
599
|
+
# @return [RubyLint::Definition::RubyMethod]
|
595
600
|
#
|
596
601
|
def define_instance_method(name, &block)
|
597
602
|
return add_child_method(:instance_method, name, &block)
|
@@ -615,7 +620,7 @@ module RubyLint
|
|
615
620
|
##
|
616
621
|
# Adds the object(s) to the list of parent definitions.
|
617
622
|
#
|
618
|
-
# @param [Array] definitions
|
623
|
+
# @param [Array<RubyLint::Definition::ConstantProxy>] definitions
|
619
624
|
#
|
620
625
|
def inherits(*definitions)
|
621
626
|
self.parents.concat(definitions)
|
@@ -623,6 +628,8 @@ module RubyLint
|
|
623
628
|
|
624
629
|
##
|
625
630
|
# @see {RubyLint::Definition::ConstantProxy#initialize}
|
631
|
+
# @param [String] name
|
632
|
+
# @param [RubyLint::Definition::Registry] registry
|
626
633
|
# @return [RubyLint::Definition::ConstantProxy]
|
627
634
|
#
|
628
635
|
def constant_proxy(name, registry = nil)
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module RubyLint
|
2
|
+
module Presenter
|
3
|
+
##
|
4
|
+
# {RubyLint::Presenter::Emacs} formats a instance of {RubyLint::Report} into
|
5
|
+
# a format parsable by Emacs compile mode
|
6
|
+
#
|
7
|
+
class Emacs < Base
|
8
|
+
register 'emacs'
|
9
|
+
|
10
|
+
##
|
11
|
+
# The default format to use when presenting report entries.
|
12
|
+
#
|
13
|
+
# @return [String]
|
14
|
+
#
|
15
|
+
FORMAT = '%{file}:%{line}:%{column}:%{level}: %{message}'
|
16
|
+
|
17
|
+
##
|
18
|
+
# @param [String] format The format to use for each entry.
|
19
|
+
#
|
20
|
+
def initialize(format = FORMAT.dup)
|
21
|
+
@format = format
|
22
|
+
end
|
23
|
+
|
24
|
+
##
|
25
|
+
# @param [RubyLint::Report] report The report to present.
|
26
|
+
# @return [String]
|
27
|
+
#
|
28
|
+
def present(report)
|
29
|
+
entries = []
|
30
|
+
|
31
|
+
report.entries.sort.each do |entry|
|
32
|
+
entries << @format % entry.attributes
|
33
|
+
end
|
34
|
+
|
35
|
+
return entries.join("\n")
|
36
|
+
end
|
37
|
+
end # Emacs
|
38
|
+
end # Presenter
|
39
|
+
end # RubyLint
|
data/lib/ruby-lint/version.rb
CHANGED
@@ -216,8 +216,6 @@ module RubyLint
|
|
216
216
|
##
|
217
217
|
# Processes a regular variable assignment.
|
218
218
|
#
|
219
|
-
# @param [RubyLint::AST::Node] node
|
220
|
-
#
|
221
219
|
def on_assign
|
222
220
|
reset_assignment_value
|
223
221
|
value_stack.add_stack
|
@@ -226,6 +224,8 @@ module RubyLint
|
|
226
224
|
##
|
227
225
|
# @see #on_assign
|
228
226
|
#
|
227
|
+
# @param [RubyLint::AST::Node] node
|
228
|
+
#
|
229
229
|
def after_assign(node)
|
230
230
|
type = ASSIGNMENT_TYPES[node.type]
|
231
231
|
name = node.children[0].to_s
|
@@ -279,9 +279,6 @@ module RubyLint
|
|
279
279
|
add_variable(variable, scope)
|
280
280
|
end
|
281
281
|
|
282
|
-
##
|
283
|
-
# @param [RubyLint::AST::Node] node
|
284
|
-
#
|
285
282
|
def on_masgn
|
286
283
|
add_stacks
|
287
284
|
end
|
@@ -302,9 +299,6 @@ module RubyLint
|
|
302
299
|
end
|
303
300
|
end
|
304
301
|
|
305
|
-
##
|
306
|
-
# @param [RubyLint::AST::Node] node
|
307
|
-
#
|
308
302
|
def on_or_asgn
|
309
303
|
add_stacks
|
310
304
|
end
|
@@ -321,9 +315,6 @@ module RubyLint
|
|
321
315
|
end
|
322
316
|
end
|
323
317
|
|
324
|
-
##
|
325
|
-
# @param [RubyLint::AST::Node] node
|
326
|
-
#
|
327
318
|
def on_and_asgn
|
328
319
|
add_stacks
|
329
320
|
end
|
@@ -331,8 +322,6 @@ module RubyLint
|
|
331
322
|
##
|
332
323
|
# Processes an `and` assignment in the form of `variable &&= value`.
|
333
324
|
#
|
334
|
-
# @param [RubyLint::AST::Node] node
|
335
|
-
#
|
336
325
|
def after_and_asgn
|
337
326
|
variable = variable_stack.pop.first
|
338
327
|
value = value_stack.pop.first
|
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: 2.
|
4
|
+
version: 2.2.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: 2016-
|
11
|
+
date: 2016-05-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|
@@ -171,6 +171,7 @@ files:
|
|
171
171
|
- checksum/ruby-lint-2.0.3.gem.sha512
|
172
172
|
- checksum/ruby-lint-2.0.4.gem.sha512
|
173
173
|
- checksum/ruby-lint-2.0.5.gem.sha512
|
174
|
+
- checksum/ruby-lint-2.1.0.gem.sha512
|
174
175
|
- doc/architecture.md
|
175
176
|
- doc/changelog.md
|
176
177
|
- doc/code_analysis.md
|
@@ -459,6 +460,7 @@ files:
|
|
459
460
|
- lib/ruby-lint/nested_stack.rb
|
460
461
|
- lib/ruby-lint/parser.rb
|
461
462
|
- lib/ruby-lint/presenter/base.rb
|
463
|
+
- lib/ruby-lint/presenter/emacs.rb
|
462
464
|
- lib/ruby-lint/presenter/json.rb
|
463
465
|
- lib/ruby-lint/presenter/syntastic.rb
|
464
466
|
- lib/ruby-lint/presenter/text.rb
|