Sha256: 6b16cd6972eb5f0c30c1172a9a1cd73bfcf7cf9ad75bc2f042d23e0af433b22a
Contents?: true
Size: 743 Bytes
Versions: 8
Compression:
Stored size: 743 Bytes
Contents
module HandleAttributes private def get_atr_value(elem, atr, couples) if atr.to_s.include?('.') value = get_nested_atr_value(elem, atr.to_s.split('.').reverse) else value = couples[atr] value = elem.send(atr.to_sym) if value.blank? && elem.respond_to?(atr) # Required for virtual attributes end value end def get_nested_atr_value(elem, hierarchy) return nil if hierarchy.size == 0 atr = hierarchy.pop raise ArgumentError, "#{atr} doesn't exist on #{elem.inspect}" unless elem.respond_to?(atr) nested_elem = elem.send(atr) return "" if nested_elem.nil? value = get_nested_atr_value(nested_elem, hierarchy) value.nil? ? nested_elem : value end end
Version data entries
8 entries across 8 versions & 1 rubygems