Sha256: a1436f91948dbf7d87119f09e96e56e259ca5a5f131127ecf692a19857429a5f

Contents?: true

Size: 1.69 KB

Versions: 14

Compression:

Stored size: 1.69 KB

Contents

module RubyJmeter

  def dsl_eval(dsl, &block)
    block_context = eval("self", block.binding)
    proxy_context = RubyJmeter::FallbackContextProxy.new(dsl, block_context)
    begin
      block_context.instance_variables.each { |ivar| proxy_context.instance_variable_set(ivar, block_context.instance_variable_get(ivar)) }
      proxy_context.instance_eval(&block)
    ensure
      block_context.instance_variables.each { |ivar| block_context.instance_variable_set(ivar, proxy_context.instance_variable_get(ivar)) }
    end
    dsl
  end

  module_function :dsl_eval

  module Helper
    def update(params)
      params.delete(:name)
      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
      if params.has_key?(:enabled) && params[:enabled] == false
        'false'
      else
        'true'
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
ruby-jmeter-2.1.7 lib/ruby-jmeter/helpers/helper.rb
ruby-jmeter-2.1.6 lib/ruby-jmeter/helpers/helper.rb
ruby-jmeter-2.1.5 lib/ruby-jmeter/helpers/helper.rb
ruby-jmeter-2.1.4 lib/ruby-jmeter/helpers/helper.rb
ruby-jmeter-2.1.3 lib/ruby-jmeter/helpers/helper.rb
ruby-jmeter-2.1.2 lib/ruby-jmeter/helpers/helper.rb
ruby-jmeter-2.1.1 lib/ruby-jmeter/helpers/helper.rb
ruby-jmeter-2.1.0 lib/ruby-jmeter/helpers/helper.rb
ruby-jmeter-2.0.9 lib/ruby-jmeter/helpers/helper.rb
ruby-jmeter-2.0.8 lib/ruby-jmeter/helpers/helper.rb
ruby-jmeter-2.0.7 lib/ruby-jmeter/helpers/helper.rb
ruby-jmeter-2.0.6 lib/ruby-jmeter/helpers/helper.rb
ruby-jmeter-2.0.5 lib/ruby-jmeter/helpers/helper.rb
ruby-jmeter-2.0.4 lib/ruby-jmeter/helpers/helper.rb