Class: MetaProject::Tracker::Jira::JiraTracker

Inherits:
Base
  • Object
show all
Includes:
JiraIssues
Defined in:
lib/meta_project/tracker/jira/jira_tracker.rb

Overview

Defined Under Namespace

Classes: LoginException, Session

Constant Summary collapse

JIRA_API =
"jira1"

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from JiraIssues

command_pattern, #identifier_examples, issue_pattern, #markup

Methods inherited from Base

classes, #issue

Constructor Details

#initialize(jira_base_url = nil, jira_project_id = nil) ⇒ JiraTracker

Creates a new JiraTracker. In order to successfully get issue info (via XMLRPC), two env vars must be defined. Example:

JiraTracker.new("http://jira.codehaus.org", "DC")

Then the following must be defined:

JIRA_CODEHAUS_ORG_JIRA_USER
JIRA_CODEHAUS_ORG_JIRA_PASSWORD
TODO: pass in to ctor instead. do this somewhere else!


29
30
31
# File 'lib/meta_project/tracker/jira/jira_tracker.rb', line 29

def initialize(jira_base_url=nil, jira_project_id=nil)
  @jira_base_url, @jira_project_id = jira_base_url, jira_project_id
end

Instance Attribute Details

#jira_base_urlObject

Returns the value of attribute jira_base_url.



17
18
19
# File 'lib/meta_project/tracker/jira/jira_tracker.rb', line 17

def jira_base_url
  @jira_base_url
end

#jira_project_idObject

Returns the value of attribute jira_project_id.



17
18
19
# File 'lib/meta_project/tracker/jira/jira_tracker.rb', line 17

def jira_project_id
  @jira_project_id
end

Instance Method Details

#create(issue) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/meta_project/tracker/jira/jira_tracker.rb', line 37

def create(issue)
  issue_struct = {
    "project" => @jira_project_id,
    "summary" => issue.summary,
    "description" => issue.detail,
    "type" => 2, # magic number!
    "priority" => 1
  }
   do |session|
    issue_struct = session.createIssue(issue_struct)
    issue.attributes[:identifier] = issue_struct["key"]
  end
end

#materialize(issue) ⇒ Object



51
52
53
54
55
56
57
58
59
60
# File 'lib/meta_project/tracker/jira/jira_tracker.rb', line 51

def materialize(issue)
   do |session|
    issue.attributes[:identifier] = issue.attributes[:identifier].upcase
    issue_struct = session.getIssue(issue.identifier)
    
    issue.attributes[:summary] = issue_struct["summary"].strip
    issue.attributes[:detail] = issue_struct["description"].strip
    issue.attributes[:url] = "#{@jira_base_url}/browse/#{issue.identifier}"
  end
end

#overviewObject



33
34
35
# File 'lib/meta_project/tracker/jira/jira_tracker.rb', line 33

def overview
  "#{@jira_base_url}/browse/#{@jira_project_id}"
end