Массив изображений Ruby, чтобы проверить, с чего начинается каждое значение - PullRequest
0 голосов
/ 30 октября 2018

У меня есть массив разных изображений. Я пытаюсь подтвердить, что если изображения начинаются с правильного имени.

images = ["nginx", "help-me-1"]

images.each_with_index {|image, i| images[i].start_with?('help-me')}

К сожалению, он не проходит правильно, и я не уверен, что не так. Я не получаю сообщение об ошибке какого-либо рода, и я добавил некоторые журналирование, ожидая некоторые и нет. Чего мне не хватает?

Ответы [ 2 ]

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

Обычно, если это не так для всех, выведите сообщение об ошибке. Если это правда, продолжайте.

Полагаю, что лучший вариант - в комментарии выше от @ Серхио Туленцев .

Во всяком случае, это просто еще одна идея:

images = ["nginx", "help-me-1", "flip-flop", "help-me-if-you-can", "tick-tack-toe"]

start_with_help_me = images.group_by{ |image| image.start_with?('help-me') }
#=> {false=>["nginx", "flip-flop"], true=>["help-me-1", "help-me-if-you-can"]}

puts "Error" if start_with_help_me[false].any? #=> Error

На тот случай, если вам понадобится дополнительная информация, например:

start_with_help_me[false].count #=> 3
start_with_help_me[true].count #=> 2
0 голосов
/ 30 октября 2018

Возможно, это то, что вы хотите?

if images.find?{ |image| !image.start_with?('help-me') }
  #if you want to exit the app then do
  abort('Dev asked to kill this app because we who knows?')
  #if you want to raise exception then
  raise 'Image found that does not start with help-me'
end

Или вы хотите raise или puts?

images.each_with_index do |image, i| 
  unless images[i].start_with?('help-me')
    puts "Image #{image} at index #{i} does not start with 'help-me'"
    #or raise exception here if you want
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...