Что Юрий сказал в комментарии к вашему вопросу, вы сравниваете (==
) вместо присваивания значения (=
).
Но также, если нет ни '+', ни '-'в input
, тогда pos_or_neg
не будет определено. Вы можете изменить строку:
pos_or_neg == true if input.include? "+"; pos_or_neg == false if input.include? "-"
с помощью:
pos_or_neg = !input.include?('-')
(при условии, что случай, когда нет ни «+», ни «-», принимается как положительный)
И (я думаю) было бы более читабельным, если вы измените эту строку:
pos_or_neg == true ? fin = roll(amount, sides) + mod.to_i : roll(amount, sides) - mod.to_i
с
fin = roll(amount, sides) + mod.to_i * (pos_or_neg ? 1 : -1)