module RuboCop::AST::ParameterizedNode
Requires implementing `arguments`.
Common functionality for nodes that are parameterized: `send`, `super`, `zsuper`, `def`, `defs` and (modern only): `index`, `indexasgn`, `lambda`
Public Instance Methods
Checks whether this node has any arguments.
@return [Boolean] whether this node has any arguments
# File lib/rubocop/ast/node/mixin/parameterized_node.rb, line 40 def arguments? !arguments.empty? end
Whether the last argument of the node is a block pass, i.e. `&block`.
@return [Boolean] whether the last argument of the node is a block pass
# File lib/rubocop/ast/node/mixin/parameterized_node.rb, line 58 def block_argument? arguments? && (last_argument.block_pass_type? || last_argument.blockarg_type?) end
A shorthand for getting the first argument of the node. Equivalent to `arguments.first`.
@return [Node, nil] the first argument of the node,
or `nil` if there are no arguments
# File lib/rubocop/ast/node/mixin/parameterized_node.rb, line 24 def first_argument arguments[0] end
A shorthand for getting the last argument of the node. Equivalent to `arguments.last`.
@return [Node, nil] the last argument of the node,
or `nil` if there are no arguments
# File lib/rubocop/ast/node/mixin/parameterized_node.rb, line 33 def last_argument arguments[-1] end
Checks whether this node's arguments are wrapped in parentheses.
@return [Boolean] whether this node's arguments are
wrapped in parentheses
# File lib/rubocop/ast/node/mixin/parameterized_node.rb, line 15 def parenthesized? loc.end&.is?(')') end
Checks whether any argument of the node is a splat argument, i.e. `*splat`.
@return [Boolean] whether the node is a splat argument
# File lib/rubocop/ast/node/mixin/parameterized_node.rb, line 48 def splat_argument? arguments? && (arguments.any?(&:splat_type?) || arguments.any?(&:restarg_type?)) end