houdini/lib/get_data.rb

49 lines
709 B
Ruby

module GetData
def self.chain(obj, *methods)
methods.each do |m|
if m.is_a?(Array)
params = m[1..-1]
m = m[0]
end
if obj != nil && obj.respond_to?(m)
obj = obj.send(m, *params)
elsif obj.respond_to?(:has_key?) && obj.has_key?(m)
obj = obj[m]
else
return nil
end
end
return obj
end
def self.hash(h, *keys)
keys.each do |k|
if h.has_key?(k)
h = h[k]
else
return nil
end
end
return h
end
def self.obj(obj, *methods)
methods.each do |m|
if m.is_a?(Array)
params = m[1..-1]
m = m[0]
end
if obj != nil && obj.respond_to?(m)
obj = obj.send(m, *params)
else
return nil
end
end
return obj
end
end