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
39
40
# 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

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

#org_titleObject (readonly)

Returns the value of attribute org_title.



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

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



58
59
60
# File 'lib/shiftzilla/config.rb', line 58

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

#earliest_milestoneObject



42
43
44
# File 'lib/shiftzilla/config.rb', line 42

def earliest_milestone
  milestone_boundaries[:earliest]
end

#group(gname) ⇒ Object



54
55
56
# File 'lib/shiftzilla/config.rb', line 54

def group(gname)
  @groups.select{ |g| g.id == gname[0] }[0]
end

#latest_milestoneObject



46
47
48
# File 'lib/shiftzilla/config.rb', line 46

def latest_milestone
  milestone_boundaries[:latest]
end

#release(rname) ⇒ Object



62
63
64
# File 'lib/shiftzilla/config.rb', line 62

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

#release_by_target(tgt) ⇒ Object



66
67
68
# File 'lib/shiftzilla/config.rb', line 66

def release_by_target(tgt)
  return target_map[tgt]
end

#team(tname) ⇒ Object



50
51
52
# File 'lib/shiftzilla/config.rb', line 50

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