/ / Prečo ma rubocop žiada, aby som dal // okolo regexu, keď už používam% r? - rubínový, rubínový

Prečo je rubocop požiadaný, aby som dal // okolo regexu, keď už používam% r? rubín, rubokop

Mám nasledujúci regex

  regexp = %r{
((returned|undelivered)smail|mailsdelivery(sfailed)?)
}x

Ale keď na to spustím rubocop, sťažuje sa, že musím „Použiť // okolo regulárneho výrazu“.

Ako sa môžem obísť?

odpovede:

1 pre odpoveď č. 1

Rubocop nespúšťam, takže si nie som istý, či to vyrieši váš problém. Ak chcete použiť regulárny výraz% r, môžete použiť // namiesto {}:

regexp = %r/((returned|undelivered)smail|mailsdelivery(sfailed)?)/x

3 pre odpoveď č. 2

Môžete zakázať (a povoliť) ľubovoľný policajný kopu pridaním a .rubocop.yml súbor do koreňového adresára vášho projektu a nastavenie vhodných konfigurácií. Ak chcete vidieť, čo môžete urobiť, pozrite sa na globálnu stránku default.yml v balíku rubocop. Je to úplne komentované.

Pre tento konkrétny problém vytvorte a .rubocop.yml a ...

Úplné zakázanie policajta:

Style/RegexpLiteral: Enabled: false

na vždy použitie %r:

Style/RegexpLiteral: EnforcedStyle: percent_r


1 pre odpoveď č. 3

Môžete použiť multiline regexp s /.../x buď:

regexp = /
((returned|undelivered)
s
mail|mail
s
delivery
(sfailed)?)
/x

Viac informácií v Rubocop gem doc


-1 pre odpoveď č. 4

keď na ňom spustím rubocop, sťažuje sa, že potrebujem „Použiť // okolo regulárneho výrazu“.

Ako sa môžem obísť?

Myslím si, že správa je celkom jasná: môžete ju obísť // okolo regulárneho výrazu:

regexp = /((returned|undelivered)smail|mailsdelivery(sfailed)?)/x