Функция, возвращающая разные значения, если включены операторы Pry Debugger - PullRequest
0 голосов
/ 10 октября 2018

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

Ниже, слайды - это строка целых чисел, разделенных пробелом, так чтоslides.split ('') возвращает массив целых чисел.Группы слайдов - это проанализированный хэш JSON.Если потребуется, я могу предоставить файл с хэшем JSON, но попытка ввести его здесь разочаровывает.Я не думаю, что нужно видеть хеш, так как кажется, что проблема заключается в pry и его влиянии на функцию.

def selected_slides_and_groups
  selected_slide_ids = slides.split(' ')
  slide_groups = master_presentation.slide_groups

  slide_groups.each do |slide_group|
    delete_slides_from_group(slide_group, selected_slide_ids)
  end
end

def delete_slides_from_group(slide_group, selected_slide_ids)
  binding.pry
  slide_group[:content].delete_if do |item|
    if item[:type] == 'group'
      delete_slides_from_group(item, selected_slide_ids)
    elsif selected_slide_ids.include? item[:id]
      next
    else
      true
    end
  end
  binding.pry
end

1 Ответ

0 голосов
/ 10 октября 2018

Методы в Ruby возвращают последнее оцененное значение (если не указано иное), а binding.pry вызов возвращает nil.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...