lib/ruby-jmeter/helpers/helper.rb in ruby-jmeter-2.0.3 vs lib/ruby-jmeter/helpers/helper.rb in ruby-jmeter-2.0.4
- old
+ new
@@ -15,18 +15,35 @@
module_function :dsl_eval
module Helper
def update(params)
params.delete(:name)
- params.each do |name, value|
- node = @doc.children.xpath("//*[contains(@name,\"#{name.to_s}\")]")
- node.first.content = value unless node.empty?
+ if params.class == Array
+ update_collection params
+ else
+ params.each do |name, value|
+ node = @doc.children.xpath("//*[contains(@name,\"#{name.to_s}\")]")
+ node.first.content = value unless node.empty?
+ end
end
end
def update_at_xpath(params)
params[:update_at_xpath].each do |fragment|
@doc.at_xpath(fragment[:xpath]) << fragment[:value]
+ end
+ end
+
+ def update_collection(params)
+ elements = @doc.at_xpath("//collectionProp/elementProp")
+ params.each_with_index do |param, index|
+ param.each do |name, value|
+ element = elements.element_children.xpath("//*[contains(@name,\"#{name}\")]")
+ element.last.content = value
+ end
+ if index != params.size - 1
+ @doc.at_xpath("//collectionProp") << elements.dup
+ end
end
end
def enabled(params)
#default to true unless explicitly set to false