Class: RuboCop::AST::CaseNode
- Includes:
- ConditionalNode
- Defined in:
- lib/rubocop/ast/node/case_node.rb
Overview
A node extension for case nodes. This will be used in place of a plain node when the builder constructs the AST, making its methods available to all case nodes within RuboCop.
Constant Summary
Constants inherited from Node
Node::ARITHMETIC_OPERATORS, Node::BASIC_LITERALS, Node::COMPARISON_OPERATORS, Node::COMPOSITE_LITERALS, Node::FALSEY_LITERALS, Node::IMMUTABLE_LITERALS, Node::KEYWORDS, Node::LITERALS, Node::MUTABLE_LITERALS, Node::OPERATOR_KEYWORDS, Node::REFERENCES, Node::SPECIAL_KEYWORDS, Node::TRUTHY_LITERALS, Node::VARIABLES
Instance Method Summary collapse
-
#each_when ⇒ self, Enumerator
Calls the given block for each
whennode in thecasestatement. -
#else? ⇒ Boolean
Checks whether this case statement has an
elsebranch. -
#else_branch ⇒ Node?
Returns the else branch of the
casestatement, if any. -
#keyword ⇒ String
Returns the keyword of the
casestatement as a string. -
#node_parts ⇒ Array<Node>
Custom destructuring method.
-
#when_branches ⇒ Array<WhenNode>
Returns an array of all the when branches in the
casestatement.
Methods included from ConditionalNode
#body, #condition, #multiline_condition?, #single_line_condition?
Methods inherited from Node
#ancestors, #argument?, #arithmetic_operation?, #asgn_method_call?, #basic_literal?, #binary_operation?, #chained?, #child_nodes, #complete!, #complete?, #const_name, #defined_module, #defined_module_name, #descendants, #each_ancestor, #each_child_node, #each_descendant, #each_node, #empty_source?, #falsey_literal?, #first_line, #immutable_literal?, #initialize, #keyword?, #keyword_bang?, #keyword_not?, #last_line, #line_count, #literal?, #multiline?, #mutable_literal?, #nonempty_line_count, #numeric_type?, #operator_keyword?, #parent, #parent_module_name, #pure?, #receiver, #reference?, #sibling_index, #single_line?, #source, #source_length, #source_range, #special_keyword?, #truthy_literal?, #unary_operation?, #updated, #value_used?, #variable?
Methods included from NodePattern::Macros
#def_node_matcher, #def_node_search, #node_search, #node_search_all, #node_search_body, #node_search_first
Methods included from Sexp
Constructor Details
This class inherits a constructor from RuboCop::AST::Node
Instance Method Details
#each_when ⇒ self, Enumerator
Calls the given block for each when node in the case statement. If no block is given, an Enumerator is returned.
23 24 25 26 27 28 29 30 31 |
# File 'lib/rubocop/ast/node/case_node.rb', line 23 def each_when return when_branches.to_enum(__method__) unless block_given? when_branches.each do |condition| yield condition end self end |
#else? ⇒ Boolean
Checks whether this case statement has an else branch.
51 52 53 |
# File 'lib/rubocop/ast/node/case_node.rb', line 51 def else? loc.else end |
#else_branch ⇒ Node?
Returns the else branch of the case statement, if any.
44 45 46 |
# File 'lib/rubocop/ast/node/case_node.rb', line 44 def else_branch node_parts[-1] end |
#keyword ⇒ String
Returns the keyword of the case statement as a string.
14 15 16 |
# File 'lib/rubocop/ast/node/case_node.rb', line 14 def keyword 'case' end |
#node_parts ⇒ Array<Node>
Custom destructuring method. This can be used to normalize destructuring for different variations of the node.
59 60 61 |
# File 'lib/rubocop/ast/node/case_node.rb', line 59 def node_parts to_a end |
#when_branches ⇒ Array<WhenNode>
Returns an array of all the when branches in the case statement.
36 37 38 |
# File 'lib/rubocop/ast/node/case_node.rb', line 36 def when_branches node_parts[1...-1] end |