def tdfire_recursive_value(name, platform = :ios)
      subspec_consumers = recursive_subspecs
                              .select { |s| s.supported_on_platform?(platform) }
                              .map { |s| s.consumer(platform) }
                              .uniq
      value = (Array(consumer(platform)) + subspec_consumers).map { |c| c.send(name) }.flatten.uniq
      value
    end
def tdfire_recursive_value(name, platform = :ios)
      subspec_consumers = recursive_subspecs
                              .select { |s| s.supported_on_platform?(platform) }
                              .map { |s| s.consumer(platform) }
                              .uniq
      value = (Array(consumer(platform)) + subspec_consumers).map { |c| c.send(name) }.flatten.uniq
      value
    end
--------------------------------------------------------------------
 =>  获取自身以及子组件的属性合并值
--------------------------------------------------------------------
 def all_value_for_attribute(name)
 (Array(self) + Array(recursive_subspecs))
   .map { |s| s.attributes_hash[name] }
   .compact
 end

 def all_hash_value_for_attribute(name)
 all_value_for_attribute(name).reduce({}, :merge)
 end

 def all_array_value_for_attribute(name)
 all_value_for_attribute(name).flatten
 end

 def store_array_value_with_attribute_and_reference_spec(name, spec)
 temp = spec.all_array_value_for_attribute(name)
 temp += attributes_hash[name] unless attributes_hash[name].nil?
 store_attribute(name, temp) unless temp.empty?
 end

 def store_hash_value_with_attribute_and_reference_spec(name, spec, &select)
 temp = spec.all_hash_value_for_attribute(name)
 temp.merge!(attributes_hash[name]) unless attributes_hash[name].nil?
 temp.select! { |k, v| yield k } if block_given?
   store_attribute(name, temp) unless temp.empty?
 end