lib/hello_sign/resource/base_resource.rb in hellosign-ruby-sdk-3.7.0 vs lib/hello_sign/resource/base_resource.rb in hellosign-ruby-sdk-3.7.1
- old
+ new
@@ -22,34 +22,32 @@
# SOFTWARE.
#
module HelloSign
module Resource
-
#
- # Store the value of a hash. Use missing_method to create method to access it like an object
+ # Stores the value of a hash. Use missing_method to create method to access it like an object
#
# @author [hellosign]
#
class BaseResource
attr_reader :data, :raw_data, :warnings, :headers
-
#
# recursively convert hash data into BaseResource.
#
- # @param hash [Hash] data of the resource
- # @param key [String] (nil) key of the hash, point to where resource data is. If nil then the hash itself
+ # @param hash [Hash] Data of the resource
+ # @param key [String] (nil) Key of the hash, point to where resource data is. If nil, then the hash itself.
#
# @return [HelloSign::Resource::BaseResource] a new BaseResource
def initialize(hash, key=nil)
@headers = hash[:headers]
@raw_data = key ? hash[:body][key] : hash
if hash[:body]
@warnings = hash[:body]['warnings'] ? hash[:body]['warnings'] : nil
end
-
+
@data = @raw_data.inject({}) do |data, (key, value)|
data[key.to_s] = if value.is_a? Hash
value = BaseResource.new(value)
elsif ((value.is_a? Array) && (value[0].is_a? Hash))
value = value.map {|v| BaseResource.new(v)}
@@ -60,20 +58,18 @@
end
end
#
# Magic method, give class dynamic methods based on hash keys.
- #
# If initialized hash has a key which matches the method name, return value of that key.
+ # Otherwise, return nil.
#
- # Otherwise, return nil
- #
# @param method [Symbol] Method's name
#
# @example
- # resource = BaseResource.new :email_address => "me@example.com"
- # resource.email_address # => "me@example.com"
- # resource.not_in_hash_keys # => nil
+ # resource = BaseResource.new :email_address => "me@example.com"
+ # resource.email_address => "me@example.com"
+ # resource.not_in_hash_keys => nil
def method_missing(method)
@data.key?(method.to_s) ? @data[method.to_s] : nil
end
end
end