Class: MetaProject::Tracker::XForge::XForgeTracker

Inherits:
Base
  • Object
show all
Includes:
DigitIssues
Defined in:
lib/meta_project/tracker/xforge/xforge_tracker.rb

Direct Known Subclasses

RubyForgeTracker, SourceForgeTracker

Defined Under Namespace

Classes: SubTracker

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from DigitIssues

#identifier_examples, #identifier_regexp

Methods inherited from Base

classes

Constructor Details

#initialize(overview, project) ⇒ XForgeTracker

TODO: don’t pass in project!! pass in hostname and id!



14
15
16
# File 'lib/meta_project/tracker/xforge/xforge_tracker.rb', line 14

def initialize(overview, project)
  @overview, @project = overview, project
end

Instance Attribute Details

#overviewObject

Returns the value of attribute overview.



11
12
13
# File 'lib/meta_project/tracker/xforge/xforge_tracker.rb', line 11

def overview
  @overview
end

#projectObject

Returns the value of attribute project.



11
12
13
# File 'lib/meta_project/tracker/xforge/xforge_tracker.rb', line 11

def project
  @project
end

Instance Method Details

#issue(identifier) ⇒ Object

Finds an Issue by identifier



19
20
21
22
23
24
25
26
# File 'lib/meta_project/tracker/xforge/xforge_tracker.rb', line 19

def issue(identifier)
  sub_trackers = atids.collect {|atid| SubTracker.new(self, atid)}
  sub_trackers.each do |sub_tracker|
    issue = sub_tracker.issue(identifier)
    return issue unless issue.nil?
  end
  nil
end

#markup(text) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/meta_project/tracker/xforge/xforge_tracker.rb', line 28

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