Я пытаюсь написать класс для хранения запретов. Я хочу, чтобы проверить, является ли данный IP запрещен и вернуть @ip
, @time
, @reason
и т.д .:Как написать этот класс ruby?
class BannedIP
attr_reader :ip, :time, :reason
def initialize(ip, time, reason)
@ip = ip
@time = time
@reason = reason
end
def banned?(ip)
# What do I use here?
end
end
мне нужна помощь с частью # What do I use here?
так, что я могу сделать что-то вроде:
if b = BannedIP.banned? '10.10.10.10'
Это не требуется. Извините, я забыл удалить это. –
Это работает, но я нахожу его немного хакерским. Кроме того, когда вы бросаете ссылки на объект «BannedIP», он остается запрещенным до сбора мусора. Не уверен, что это предназначено. –
Сборщик мусора не уничтожит объект, если выполняется код, и объекты находятся в области видимости. Но если вы перезапустите систему или что-то еще, вам нужно сохранить данные в базе данных или файловой системе. Попробуйте использовать ярлык active_record для подключения к базе данных и отображения объектов со строками в таблице базы данных. –