интерполяция строки rubocop и условие размера

введите здесь описание изображения

Прежде чем я исключил эти два метода, я хотел посмотреть, есть ли у кого-нибудь в сообществе идея получше, чтобы структурировать их и заставить полицейских пройти. Первый с to_s тоже кажется немного сумасшедшим. Я думал о рефакторинге другого метода, но это будет одна или две строки.

Мысли?

Примеры кода один:

  def destroy(resource_name, id)
    delete "#{resource_name.to_s.pluralize}/#{id}"
  end

Примеры кода два:

  def all_products
    products_map = fetch(:products).map { |x| [x['id'], x] }.to_h
    variants = fetch :variants
    variants.group_by { |x| x['product']['resource']['id'] }.to_a.map do |product_id, product_variants|
      product.merge 'variants' => product_variants if product == products_map[product_id]
    end.compact
  end

person Chris Hough    schedule 18.04.2016    source источник
comment
Почему вы используете скриншот вывода RuboCop, а не копируете текст в вопрос?   -  person Andrew Grimm    schedule 19.04.2016


Ответы (1)


Для примера кода One, возможно, это можно использовать:

delete [resource_name.to_s.pluralize, id].join('/')  

Для второго примера кода: да, вам определенно нужно провести рефакторинг.
Возможно, вам нужно создать отдельный метод, который будет выполнять всю группировку, слияние и т. д. для части variants.
Я не уверен, что это хорошая практика, но вы можете создать для нее частный метод.

person Jeffrey M Castro    schedule 19.04.2016