class Shiftzilla::Config
Attributes
groups[R]
org_title[R]
releases[R]
sources[R]
ssh[R]
teams[R]
Public Class Methods
new()
click to toggle source
# File lib/shiftzilla/config.rb, line 11 def initialize @org_title = cfg_file['OrgTitle'] @teams = [] @groups = [] @sources = [] group_map = {} cfg_file['Groups'].each do |group| gobj = Shiftzilla::Group.new(group) @groups << gobj group_map[gobj.id] = gobj end cfg_file['Teams'].each do |team| @teams << Shiftzilla::Team.new(team,group_map) end set_group_components cfg_file['Sources'].each do |sid,sinfo| @sources << Shiftzilla::Source.new(sid,sinfo) end # Always track a release for bugs with no target release @releases = [Shiftzilla::Release.new({ 'name' => 'All', 'targets' => [] })] cfg_file['Releases'].each do |release| @releases << Shiftzilla::Release.new(release) end @releases << Shiftzilla::Release.new({ 'name' => '"---"', 'targets' => ['---'] },true) @ssh = { :host => cfg_file['SSH']['host'], :path => cfg_file['SSH']['path'], :url => cfg_file['SSH']['url'], } end
Public Instance Methods
add_ad_hoc_team(tinfo)
click to toggle source
# File lib/shiftzilla/config.rb, line 58 def add_ad_hoc_team(tinfo) @teams << Shiftzilla::Team.new(tinfo,{},true) end
earliest_milestone()
click to toggle source
# File lib/shiftzilla/config.rb, line 42 def earliest_milestone milestone_boundaries[:earliest] end
group(gname)
click to toggle source
# File lib/shiftzilla/config.rb, line 54 def group(gname) @groups.select{ |g| g.id == gname[0] }[0] end
latest_milestone()
click to toggle source
# File lib/shiftzilla/config.rb, line 46 def latest_milestone milestone_boundaries[:latest] end
release(rname)
click to toggle source
# File lib/shiftzilla/config.rb, line 62 def release(rname) @releases.select{ |r| r.name == rname }[0] end
release_by_target(tgt)
click to toggle source
# File lib/shiftzilla/config.rb, line 66 def release_by_target(tgt) return target_map[tgt] end
team(tname)
click to toggle source
# File lib/shiftzilla/config.rb, line 50 def team(tname) @teams.select{ |t| t.name == tname }[0] end
Private Instance Methods
milestone_boundaries()
click to toggle source
# File lib/shiftzilla/config.rb, line 84 def milestone_boundaries @milestone_boundaries ||= begin boundaries = { :earliest => Date.today, :latest => (Date.today - 1800) } @releases.each do |release| next unless release.uses_milestones? ms = release.milestones [ms.start,ms.feature_complete,ms.code_freeze,ms.ga].each do |m| next if m.date.nil? if m.date < boundaries[:earliest] boundaries[:earliest] = m.date end if m.date > boundaries[:latest] boundaries[:latest] = m.date end end end boundaries end end
set_group_components()
click to toggle source
# File lib/shiftzilla/config.rb, line 104 def set_group_components @groups.each do |g| components = [] @teams.each do |t| if t.group and (t.group.id == g.id) components += t.components end end g.set_components(components) end end
target_map()
click to toggle source
# File lib/shiftzilla/config.rb, line 72 def target_map @target_map ||= begin tmap = {} @releases.each do |release| release.targets.each do |target| tmap[target] = release end end tmap end end