class Device

Public Instance Methods

getKeys() click to toggle source
# File lib/stf/model/device.rb, line 6
def getKeys
  getKeysNextLevel('', self)
end
getValue(key) click to toggle source
# File lib/stf/model/device.rb, line 2
def getValue(key)
  getValueFromObject(self, key)
end

Private Instance Methods

concat(prefix, key) click to toggle source
# File lib/stf/model/device.rb, line 22
def concat(prefix, key)
  prefix.to_s.empty? ? key : prefix + '.' + key
end
getKeysNextLevel(prefix, o) click to toggle source
# File lib/stf/model/device.rb, line 10
def getKeysNextLevel(prefix, o)
  return [] if o.nil?

  o.each_pair.flat_map do |k, v|
    if v.is_a? OpenStruct
      getKeysNextLevel(concat(prefix, k.to_s), v)
    else
      [concat(prefix, k.to_s)]
    end
  end
end
getValueFromObject(obj, key) click to toggle source
# File lib/stf/model/device.rb, line 27
def getValueFromObject(obj, key)
  keys = key.split('.', 2)
  if keys[1].nil?
    obj[key]
  else
    getValueFromObject(obj[keys[0]], keys[1])
  end
end