如何将 "method" 添加到此哈希?
How can I add a "method" to this hash?
我正在编写自定义 OAuth2 策略。我需要向散列响应添加一个 expired?
方法,但我不确定该怎么做。我得到的响应给了我一个时间直到过期,但不是过期的方法本身。
我需要添加一个过期的?方法,不知道如何。有帮助吗?
您可以在 build_access_token
中创建一个新的 class 来扩展它,而不是直接使用哈希。
class AccessToken < Hash
def initialize response_hash
# This overrides the default behavior, you don't care here.
# But if you do, just remove this and call merge manually.
self.merge!(response_hash)
end
def expired?
# return true if expired, false otherwise
end
end
然后,在 build_access_token 中,执行如下操作:
token = AccessToken.new response_hash
现在,你的对象不仅仅是 Hash
,还有你的 "super-hash" AccessToken
。您可以根据需要附加其他方法。
更进一步,您可以将此更改为也采用 "whitelisting" 方法,在您的构造函数中采用 Hash,仅将您希望通过方法向消费者公开的 Hash 元素公开,并删除哈希扩展。但以上内容暂时适合您。
我正在编写自定义 OAuth2 策略。我需要向散列响应添加一个 expired?
方法,但我不确定该怎么做。我得到的响应给了我一个时间直到过期,但不是过期的方法本身。
我需要添加一个过期的?方法,不知道如何。有帮助吗?
您可以在 build_access_token
中创建一个新的 class 来扩展它,而不是直接使用哈希。
class AccessToken < Hash
def initialize response_hash
# This overrides the default behavior, you don't care here.
# But if you do, just remove this and call merge manually.
self.merge!(response_hash)
end
def expired?
# return true if expired, false otherwise
end
end
然后,在 build_access_token 中,执行如下操作:
token = AccessToken.new response_hash
现在,你的对象不仅仅是 Hash
,还有你的 "super-hash" AccessToken
。您可以根据需要附加其他方法。
更进一步,您可以将此更改为也采用 "whitelisting" 方法,在您的构造函数中采用 Hash,仅将您希望通过方法向消费者公开的 Hash 元素公开,并删除哈希扩展。但以上内容暂时适合您。