class RuboCop::Cop::Style::TernaryCorrector
Corrector to correct conditional assignment in ternary conditions.
Public Class Methods
correct(node)
click to toggle source
# File lib/rubocop/cop/style/conditional_assignment.rb, line 420 def correct(node) condition, if_branch, else_branch = *node _variable, *_operator, if_rhs = *if_branch _else_variable, *_operator, else_rhs = *else_branch condition = condition.source if_rhs = if_rhs.source else_rhs = else_rhs.source ternary = "#{condition} ? #{if_rhs} : #{else_rhs}" if if_branch.send_type? && if_branch.method_name != :[]= ternary = "(#{ternary})" end correction = "#{lhs(if_branch)}#{ternary}" lambda do |corrector| corrector.replace(node.source_range, correction) end end
move_assignment_inside_condition(node)
click to toggle source
# File lib/rubocop/cop/style/conditional_assignment.rb, line 439 def move_assignment_inside_condition(node) *_var, rhs = *node condition, = *rhs if rhs.begin_type? && rhs.children.size == 1 assignment = assignment(node) _condition, if_branch, else_branch = *(condition || rhs) lambda do |corrector| corrector.remove(assignment) if rhs.begin_type? corrector.remove(rhs.loc.begin) corrector.remove(rhs.loc.end) end corrector.insert_before(if_branch.loc.expression, assignment.source) corrector.insert_before(else_branch.loc.expression, assignment.source) end end