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

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

Defined Under Namespace

Classes: Session

Constant Summary collapse

JIRA_API =
"jira1"

Instance Method Summary collapse

Constructor Details

#initialize(rooturl = nil, identifier = nil, username = nil, password = nil) ⇒ JiraTracker

Returns a new instance of JiraTracker.



9
10
11
# File 'lib/meta_project/tracker/jira/jira_tracker.rb', line 9

def initialize(rooturl=nil, identifier=nil, username=nil, password=nil)
  @rooturl, @identifier, @username, @password = rooturl, identifier, username, password
end

Instance Method Details

#identifier_examplesObject



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

def identifier_examples
  ["DC-420", "PICO-12"]
end

#identifier_regexpObject



13
14
15
# File 'lib/meta_project/tracker/jira/jira_tracker.rb', line 13

def identifier_regexp
  /([A-Z]+-[\d]+)/
end

#issue(issue_identifier) ⇒ Object



25
26
27
28
29
30
31
32
33
34
# File 'lib/meta_project/tracker/jira/jira_tracker.rb', line 25

def issue(issue_identifier)
  session = 
  begin
    issue = session.getIssue(issue_identifier)
    Issue.new("#{@rooturl}/browse/#{issue_identifier}", issue["summary"])
  rescue XMLRPC::FaultException
    # Probably bad issue number
    nil
  end
end

#markup(text) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/meta_project/tracker/jira/jira_tracker.rb', line 36

def markup(text)
  text.gsub(identifier_regexp) do |match|
    issue_identifier = $1
    issue = issue(issue_identifier)
    issue ? "<a href=\"#{issue.uri}\">#{issue_identifier}: #{issue.summary}</a>" : issue_identifier
  end
end

#overviewObject



21
22
23
# File 'lib/meta_project/tracker/jira/jira_tracker.rb', line 21

def overview
  "#{@rooturl}/browse/#{@identifier}"
end