Ruby, предпочитайте {...} более do...end для однострочных блоков. Но ошибка
У меня есть этот код в файле класса.rb:
field :user, Types::UserType do resolve ->(_obj, _args, ctx) { ctx[:user] } end
что мне нужно, это удалить do
а также end
из одной строки, я думаю, {}
,
[Style/BlockDelimiters] Prefer
{...}over
делать... конецfor single-line blocks.
Но я не понимаю, почему он выдает эту ошибку:
[ruby] syntax error, unexpected '{', expecting '('
[ruby] syntax error, unexpected '}', expecting keyword_end
Версия RuboCop
$ rubocop -V
0.51.0 (using Parser 2.4.0.2, running on ruby 2.4.2 x64-mingw32)
1 ответ
Решение
Чтобы успокоить Rubocop, переключитесь на это:
field :user, Types::UserType do
resolve ->(_obj, _args, ctx) { ctx[:user] }
end
Или это:
field(:user, Types::UserType) { resolve ->(_obj, _args, ctx) { ctx[:user] } }
Я бы сказал, что первое намного чище, чем второе, но решать вам.