module Bosh::Template::PropertyHelper
Public Instance Methods
copy_property(dst, src, name, default = nil)
click to toggle source
Copies property with a given name from src to dst. @param [Hash] dst Property destination @param [Hash] src Property source @param [String] name Property name (dot-separated) @param [Object] default Default value (if property is not in src)
# File lib/bosh/template/property_helper.rb, line 11 def copy_property(dst, src, name, default = nil) keys = name.split(".") src_ref = src dst_ref = dst keys.each do |key| unless src_ref.is_a?(Hash) raise Bosh::Template::InvalidPropertyType, "Property '#{name}' expects a hash, but received '#{src_ref.class}'" end src_ref = src_ref[key] break if src_ref.nil? # no property with this name is src end keys[0..-2].each do |key| dst_ref[key] ||= {} dst_ref = dst_ref[key] end dst_ref[keys[-1]] ||= {} dst_ref[keys[-1]] = src_ref.nil? ? default : src_ref end
lookup_property(collection, name)
click to toggle source
@param [Hash] collection Property collection @param [String] name Dot-separated property name
# File lib/bosh/template/property_helper.rb, line 36 def lookup_property(collection, name) return nil if collection.nil? keys = name.split(".") ref = collection keys.each do |key| ref = ref[key] return nil if ref.nil? end ref end