Class: RuboCop::Cop::VariableForce::Assignment Private
- Inherits:
-
Object
- Object
- RuboCop::Cop::VariableForce::Assignment
- Includes:
- Branchable
- Defined in:
- lib/rubocop/cop/variable_force/assignment.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
This class represents each assignment of a variable.
Constant Summary collapse
- MULTIPLE_LEFT_HAND_SIDE_TYPE =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
:mlhs
Instance Attribute Summary collapse
- #node ⇒ Object readonly private
- #referenced ⇒ Object (also: #referenced?) readonly private
- #references ⇒ Object readonly private
- #variable ⇒ Object readonly private
Instance Method Summary collapse
-
#initialize(node, variable) ⇒ Assignment
constructor
private
A new instance of Assignment.
- #meta_assignment_node ⇒ Object private
- #multiple_assignment? ⇒ Boolean private
- #name ⇒ Object private
- #operator ⇒ Object private
- #operator_assignment? ⇒ Boolean private
- #reference!(node) ⇒ Object private
- #regexp_named_capture? ⇒ Boolean private
- #scope ⇒ Object private
- #used? ⇒ Boolean private
Methods included from Branchable
#branch, #run_exclusively_with?
Constructor Details
#initialize(node, variable) ⇒ Assignment
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Assignment.
16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/rubocop/cop/variable_force/assignment.rb', line 16 def initialize(node, variable) unless VARIABLE_ASSIGNMENT_TYPES.include?(node.type) raise ArgumentError, "Node type must be any of #{VARIABLE_ASSIGNMENT_TYPES}, " \ "passed #{node.type}" end @node = node @variable = variable @referenced = false @references = [] end |
Instance Attribute Details
#node ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
12 13 14 |
# File 'lib/rubocop/cop/variable_force/assignment.rb', line 12 def node @node end |
#referenced ⇒ Object (readonly) Also known as: referenced?
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
12 13 14 |
# File 'lib/rubocop/cop/variable_force/assignment.rb', line 12 def referenced @referenced end |
#references ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
12 13 14 |
# File 'lib/rubocop/cop/variable_force/assignment.rb', line 12 def references @references end |
#variable ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
12 13 14 |
# File 'lib/rubocop/cop/variable_force/assignment.rb', line 12 def variable @variable end |
Instance Method Details
#meta_assignment_node ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
67 68 69 70 71 72 73 |
# File 'lib/rubocop/cop/variable_force/assignment.rb', line 67 def unless instance_variable_defined?(:@meta_assignment_node) @meta_assignment_node = operator_assignment_node || multiple_assignment_node end @meta_assignment_node end |
#multiple_assignment? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
56 57 58 59 60 |
# File 'lib/rubocop/cop/variable_force/assignment.rb', line 56 def multiple_assignment? return false unless .type == MULTIPLE_ASSIGNMENT_TYPE end |
#name ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
29 30 31 |
# File 'lib/rubocop/cop/variable_force/assignment.rb', line 29 def name @node.children.first end |
#operator ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
62 63 64 65 |
# File 'lib/rubocop/cop/variable_force/assignment.rb', line 62 def operator assignment_node = || @node assignment_node.loc.operator.source end |
#operator_assignment? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
50 51 52 53 54 |
# File 'lib/rubocop/cop/variable_force/assignment.rb', line 50 def operator_assignment? return false unless OPERATOR_ASSIGNMENT_TYPES.include?(.type) end |
#reference!(node) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
37 38 39 40 |
# File 'lib/rubocop/cop/variable_force/assignment.rb', line 37 def reference!(node) @references << node @referenced = true end |
#regexp_named_capture? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
46 47 48 |
# File 'lib/rubocop/cop/variable_force/assignment.rb', line 46 def regexp_named_capture? @node.type == REGEXP_NAMED_CAPTURE_TYPE end |
#scope ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
33 34 35 |
# File 'lib/rubocop/cop/variable_force/assignment.rb', line 33 def scope @variable.scope end |
#used? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
42 43 44 |
# File 'lib/rubocop/cop/variable_force/assignment.rb', line 42 def used? @variable.captured_by_block? || @referenced end |