Вы должны переопределить метод key?
и выполнить свою собственную проверку там.
class LazyHash < Hash
def key?(key)
# Do your checking here. However that looks for your application
end
end
По-моему, вы все же напрашиваетесь на неприятности.Одним из самых сильных достоинств в информатике является ожидаемость.Если вы изменяете поведение чего-либо, изменяете его далеко за пределы его намерения, это не поможет вам продолжать называть это оригинальным именем.Вам не нужно вводить свое решение в существующие классы / интерфейсы.
Программирование предлагает вам большую гибкость, поэтому вы можете делать такие вещи (в зависимости от языка, конечно,), но в этом же аргументе у вас нет причин не просто создавать новый объект / сервис с собственным API.
Я рекомендую начать с нового класса заново и создать желаемый интерфейс и функциональность.
class LazyEndpoints
def on?(name)
end
def set(name, value)
end
end
(Или что-то в этом роде, мир за вами!)