jperry/teamcity-ruby-client

View on GitHub
lib/teamcity/element_builder.rb

Summary

Maintainability
A
0 mins
Test Coverage
module TeamCity
  class ElementBuilder
    def initialize(attributes = {}, &block)
      @payload = attributes

      if block_given?
        @payload['properties'] ||= {}
        @payload['properties']['property'] ||= []

        properties = {}

        yield(properties)

        properties.each do |name, value|
          @payload['properties']['property'] << {
            :name  => name,
            :value => value
          }
        end
      end
    end

    def to_request_body
      @payload.to_json
    end
  end
end