Class: FlowdockBuildNotifier::BuildMetadata

Inherits:
Object
  • Object
show all
Defined in:
lib/flowdock_build_notifier/build_metadata.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config: Configuration.load) ⇒ BuildMetadata

Returns a new instance of BuildMetadata.



10
11
12
# File 'lib/flowdock_build_notifier/build_metadata.rb', line 10

def initialize(config: Configuration.load)
  @config = config
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



8
9
10
# File 'lib/flowdock_build_notifier/build_metadata.rb', line 8

def config
  @config
end

#metadataObject (readonly)

Returns the value of attribute metadata.



8
9
10
# File 'lib/flowdock_build_notifier/build_metadata.rb', line 8

def 
  @metadata
end

Instance Method Details

#branchObject



33
34
35
# File 'lib/flowdock_build_notifier/build_metadata.rb', line 33

def branch
  .root.attributes['branchName']
end

#fetch(build_id) ⇒ Object



14
15
16
17
18
19
20
21
22
23
# File 'lib/flowdock_build_notifier/build_metadata.rb', line 14

def fetch(build_id)
  build_uri = URI("#{config.teamcity_url}/httpAuth/app/rest/builds/#{build_id}")

  Net::HTTP.start(build_uri.host, build_uri.port, use_ssl: true) do |http|
    request = Net::HTTP::Get.new(build_uri)
    request.basic_auth config.teamcity_user, config.teamcity_password
    @result = http.request(request).body
  end
  @metadata = REXML::Document.new(@result)
end

#nameObject



37
38
39
40
41
# File 'lib/flowdock_build_notifier/build_metadata.rb', line 37

def name
  project_name = .root.elements['buildType'].attributes['projectName']
  name = .root.elements['buildType'].attributes['name']
  [project_name, name].compact.join(" :: ")
end

#statusObject



25
26
27
# File 'lib/flowdock_build_notifier/build_metadata.rb', line 25

def status
  .root.attributes['status']
end

#urlObject



29
30
31
# File 'lib/flowdock_build_notifier/build_metadata.rb', line 29

def url
  .root.attributes['webUrl']
end