These convenience methods make it easier to work with Resources as a consumer, especially when they come from APIs that have a lot of nesting. My particular motivation comes from using Octokit, which returns Sawyer::Resources, and I routinely try to dig or fetch from them, at which point my code blows up, and I don't want to convert the whole thing to a hash to get just the one bit of data I need.
Supporting these methods, in addition to [], []=, each, and all the other enumerable methods, allows consumers to treat a Sawyer::Resource effectively as a Hash for the attributes without having to convert it to one and lose the extra behavior that the Resource provides.
These convenience methods make it easier to work with
Resource
s as a consumer, especially when they come from APIs that have a lot of nesting. My particular motivation comes from using Octokit, which returnsSawyer::Resource
s, and I routinely try todig
orfetch
from them, at which point my code blows up, and I don't want to convert the whole thing to a hash to get just the one bit of data I need.Supporting these methods, in addition to
[]
,[]=
,each
, and all the other enumerable methods, allows consumers to treat aSawyer::Resource
effectively as a Hash for the attributes without having to convert it to one and lose the extra behavior that theResource
provides.