- None since 0.8; official 1.0 release coinciding with RuboCop 1.0 and API considered stable. (@marcandre)
- #49: Add
DefNode#endless?
(Ruby 3.0). (@marcandre) - #117: Future-proof
AST::Traversal
by detecting unknownNode
types. (@marcandre) - #131: Add rake tasks to merge and create Changelog entries. (@marcandre)
- #117: All nodes of
break
andnext
are now traversed. (@marcandre)
- #127: Fix dependency issue for JRuby. (@marcandre)
- #105:
NodePattern
compiler complete rewrite. Add support for multiple variadic terms. (@marcandre) - #109: Add
NodePattern
debugging rake tasks:test_pattern
,compile
,parse
. See also this app (@marcandre) - #110: Add
NodePattern
support for multiple terms unions. (@marcandre) - #111: Optimize some
NodePattern
s by usingSet
s. (@marcandre) - #112: Add
NodePattern
support for Regexp literals. (@marcandre)
- #22: (Potentially breaking) Most constants are now private, the rest are converted to Sets and meant to be private. (@marcandre)
- #120: (Potentially breaking) Fix false positives and negatives for
SendNode#macro?
. This impacts{non_}bare_access_modifier?
andspecial_access_modifier?
. (@marcandre)
- #122: Add
Node#parent?
andNode#root?
. (@marcandre)
- #116: Fix issues with tokens being sometimes misordered. (@fatkodima)
- #115: Fix
ConstNode#absolute?
when the constant is not namespaced. (@dvandersluis)
- #92: Add
ProcessedSource#tokens_within
,ProcessedSource#first_token_of
andProcessedSource#last_token_of
. (@fatkodima) - #88: Add
RescueNode
. AddResbodyNode#exceptions
andResbodyNode#branch_index
. (@fatkodima) - #89: Support right hand assignment for Ruby 2.8 (3.0) parser. (@koic)
- #93: Add
Node#{left|right}_sibling{s}
(@marcandre) - #99: Add
ConstNode
and some helper methods. (@marcandre)
- #94: In Ruby 2.4,
Set#===
is harmonized with Ruby 2.5+ to callinclude?
. (@marcandre) - #91: (Potentially breaking)
Node#arguments
always returns a frozen array (@marcandre)
- #70: Add
NextNode
(@marcandre) - #85: Add
IntNode#value
andFloatNode#value
. (@fatkodima) - #82:
NodePattern
: Allow comments (@marcandre) - #83: Add
ProcessedSource#comment_at_line
(@marcandre) - #83: Add
ProcessedSource#each_comment_in_lines
(@marcandre) - #84: Add
Source::Range#line_span
(@marcandre) - #87: Add
CaseNode#branches
(@marcandre)
- #70: Fix arguments processing for
BreakNode
(@marcandre) - #70: (Potentially breaking)
BreakNode
andReturnNode
no longer includeMethodDispatchNode
. These methods were severely broken (@marcandre)
- #44: (Breaking) Use
parser
flagself.emit_forward_arg = true
by default. (@marcandre) - #86:
PairNode#delimiter
andinverse_delimiter
now accept their argument as a named argument. (@marcandre) - #87: (Potentially breaking) Have
IfNode#branches
return anil
value if source haselse; end
(@marcandre) - #72: (Potentially breaking)
SuperNode/DefinedNode/YieldNode#arguments
now return a frozen array. (@marcandre)
- #50: Support find pattern matching for Ruby 2.8 (3.0) parser. (@koic)
- #55: Add
ProcessedSource#line_with_comment?
. (@marcandre) - #63: NodePattern now supports patterns as arguments to predicate and functions. (@marcandre)
- #64: Add
Node#global_const?
. (@marcandre) - #28: Add
struct_constructor?
,class_definition?
andmodule_definition?
matchers. (@tejasbubane)
- #55: Fix
ProcessedSource#commented?
for multi-line ranges. Renamedcontains_comment?
(@marcandre) - #69: (Potentially breaking)
RetryNode
has many errors. It is now aNode
. (@marcandre)
- #36: Add
post_condition_loop?
andloop_keyword?
forNode
. (@fatkodima) - #38: Add helpers allowing to check whether the method is a nonmutating operator method or a nonmutating method of several core classes. (@fatkodima)
- #37: Add
enumerable_method?
forMethodIdentifierPredicates
. (@fatkodima) - #4: Add
interpolation?
forRegexpNode
. (@tejasbubane) - #20: Add option predicates for
RegexpNode
. (@owst) - #11: Add
argument_type?
method to make it easy to recognize argument nodes. (@tejasbubane) - #31: NodePattern now uses
param === node
to match params, which allows Regexp, Proc, Set in addition to Nodes and literals. (@marcandre) - #41: Add
delimiters
and related predicates forRegexpNode
. (@owst) - #46: Basic support for non-legacy AST output from parser. Note that there is no support (yet) in main RuboCop gem. Expect
emit_forward_arg
to be set totrue
in v1.0 (@marcandre) - #48: Support
Parser::Ruby28
for Ruby 2.8 (3.0) parser (experimental). (@koic) - #35: NodePattern now accepts
%named_param
and%CONST
. The macrosdef_node_matcher
anddef_node_search
accept default named parameters. (@marcandre)
- #7: Classes
NodePattern
,ProcessedSource
andToken
moved toAST::NodePattern
, etc. Therubocop
gem has aliases to ensure compatibility. (@marcandre) - #7:
AST::ProcessedSource.from_file
now raises aErrno::ENOENT
instead of aRuboCop::Error
. (@marcandre)
- Perf #106: Fix RegexpNode#to_regexp where option is 'o' + any other. (@marcandre)
- Define
RuboCop::AST::Version::STRING
. (@marcandre)
- Gem extracted from RuboCop. (@marcandre)