Class: Shiftzilla::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/shiftzilla/config.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfig



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/shiftzilla/config.rb', line 11

def initialize
  @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
  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

Instance Attribute Details

#groupsObject (readonly)

Returns the value of attribute groups.



9
10
11
# File 'lib/shiftzilla/config.rb', line 9

def groups
  @groups
end

#releasesObject (readonly)

Returns the value of attribute releases.



9
10
11
# File 'lib/shiftzilla/config.rb', line 9

def releases
  @releases
end

#sourcesObject (readonly)

Returns the value of attribute sources.



9
10
11
# File 'lib/shiftzilla/config.rb', line 9

def sources
  @sources
end

#sshObject (readonly)

Returns the value of attribute ssh.



9
10
11
# File 'lib/shiftzilla/config.rb', line 9

def ssh
  @ssh
end

#teamsObject (readonly)

Returns the value of attribute teams.



9
10
11
# File 'lib/shiftzilla/config.rb', line 9

def teams
  @teams
end

Instance Method Details

#add_ad_hoc_team(tinfo) ⇒ Object



52
53
54
# File 'lib/shiftzilla/config.rb', line 52

def add_ad_hoc_team(tinfo)
  @teams << Shiftzilla::Team.new(tinfo,{},true)
end

#earliest_milestoneObject



40
41
42
# File 'lib/shiftzilla/config.rb', line 40

def earliest_milestone
  milestone_boundaries[:earliest]
end

#latest_milestoneObject



44
45
46
# File 'lib/shiftzilla/config.rb', line 44

def latest_milestone
  milestone_boundaries[:latest]
end

#release(rname) ⇒ Object



56
57
58
# File 'lib/shiftzilla/config.rb', line 56

def release(rname)
  @releases.select{ |r| r.name == rname }[0]
end

#release_by_target(tgt) ⇒ Object



60
61
62
# File 'lib/shiftzilla/config.rb', line 60

def release_by_target(tgt)
  return target_map[tgt]
end

#team(tname) ⇒ Object



48
49
50
# File 'lib/shiftzilla/config.rb', line 48

def team(tname)
  @teams.select{ |t| t.name == tname }[0]
end