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

Returns a new instance of Config.



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