class RuboCop::Cop::Style::StructInheritance
end
end
42
def age
Person = Struct.new(:first_name, :last_name) do
# good
end
end
42
def age
class Person < Struct.new(:first_name, :last_name)
# bad
@example
This cop checks for inheritance from Struct.new.
def correct_parent(parent, corrector)
def correct_parent(parent, corrector) if parent.block_type? corrector.remove(range_with_surrounding_space(range: parent.loc.end, newlines: false)) elsif (class_node = parent.parent).body.nil? corrector.remove(range_by_whole_lines(class_node.loc.end, include_final_newline: true)) else corrector.insert_after(parent.loc.expression, ' do') end end
def on_class(node)
def on_class(node) return unless struct_constructor?(node.parent_class) add_offense(node.parent_class.source_range) do |corrector| corrector.remove(range_with_surrounding_space(range: node.loc.keyword, newlines: false)) corrector.replace(node.loc.operator, '=') correct_parent(node.parent_class, corrector) end end