class RuboCop::Cop::Style::RedundantRegexpConstructor
Regexp.compile(‘regexp’)
Regexp.new(‘regexp’)
/regexp/
# good
Regexp.compile(/regexp/)
Regexp.new(/regexp/)
# bad
@example
Autocorrect replaces to regexp literal which is the simplest and fastest.
Checks for the instantiation of regexp using redundant ‘Regexp.new` or `Regexp.compile`.
def on_send(node)
def on_send(node) return unless (regexp, regopt = redundant_regexp_constructor(node)) add_offense(node, message: format(MSG, method: node.method_name)) do |corrector| pattern = regexp.map(&:source).join regopt = regopt.join corrector.replace(node, "/#{pattern}/#{regopt}") end end