Может ли кто-нибудь пояснить логику повышения до TL3 за «прочитанные посты»?

Есть один фрагмент кода, который меня бесит:

Черт возьми, я никак не могу понять, почему количество постов, созданных за указанный период, умножается на процент требуемых прочитанных постов, а затем берется как минимальное значение. Если здесь подразумевается процент прочитанных постов, то разве не должно быть: количество прочитанных постов / общее количество постов, умноженное на 100?

Допустим, за последние x дней было создано 9 постов, а настройка требует всего 2. Разве метод не должен просто вернуть 2, поскольку это меньше лимита постов?

Для справки, вот все значения:

[2] pry(main)> TrustLevel3Requirements.num_posts_in_time_period.to_i
=> 9
[3] pry(main)> SiteSetting.tl3_requires_posts_read.to_f
=> 2.0
[4] pry(main)> (
[4] pry(main)>         TrustLevel3Requirements.num_posts_in_time_period.to_i *
[4] pry(main)>           (SiteSetting.tl3_requires_posts_read.to_f / 100.0)
[4] pry(main)>       ).round
=> 0
[5] pry(main)> 9*0.02
=> 0.18
[6] pry(main)> SiteSetting.tl3_requires_posts_read_cap
=> 2000

Я неправильно понимаю назначение этого метода? Спасибо.

Настройка сайта tl3_requires_posts_read задается в процентах. Допустим, она равна 10. При этом ограничение (cap) держит требование в разумных пределах. Допустим, оно равно 100.

«Пользователь должен прочитать 10% всех постов за период, но не более 100».

Допустим, за этот период было создано 500 постов.

В этом случае для выполнения требования нужно прочитать 50 постов (10% от общего числа).

Вычисление производится как 500 * (10.0/100.0), что дает результат 50.

Ограничение задает верхнюю границу.

Если ваше ограничение больше 50 (например, 100), оно не оказывает влияния.

[50, 100].min возвращает 50.

Но что, если за месяц будет 100 000 постов? В этом случае, без ограничения, кому-то пришлось бы прочитать 10 000 постов, чтобы выполнить требование.

Ограничение в 100 держит это под контролем.

[100000 * (10.0/100.0), 100].min возвращает 100.

Понятно?

Ну, полагаю, в следующий раз мне стоит внимательнее читать описания настроек. Всё становится на свои места, спасибо!

Да, можно утверждать, что tl3_requires_posts_read лучше было бы назвать как-то вроде tl3_requires_percent_posts_read.