Class: ProjectGroup::Configs

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.get_group(name) ⇒ Object



109
110
111
# File 'lib/project_group/config.rb', line 109

def get_group(name)
  loaded.groups.find { |x| x.name == name }.tap { |x| raise "no group #{name}" unless x }
end

.group(name, &b) ⇒ Object



105
106
107
# File 'lib/project_group/config.rb', line 105

def group(name,&b)
  instance.group(name,&b)
end

.project(name, &b) ⇒ Object



102
103
104
# File 'lib/project_group/config.rb', line 102

def project(name,&b)
  instance.project(name,&b)
end

Instance Method Details

#group(name, &b) ⇒ Object



72
73
74
75
76
77
# File 'lib/project_group/config.rb', line 72

def group(name,&b)
  c = GroupWrapper.new(Group.new(:name => name))
  c.configs = self
  b[c]
  self.group_configs << c
end

#group_for_dir(dir) ⇒ Object



84
85
86
87
88
89
90
91
92
93
94
# File 'lib/project_group/config.rb', line 84

def group_for_dir(dir)
  dir = File.expand_path(dir)
  dir = dir.gsub("/Users/mharris717/Dropbox/CodeLink","/code")
  groups.find do |group|
    group.singles.any? do |proj|
      path = File.expand_path(proj.path)
      path = path.gsub("/Users/mharris717/Dropbox/CodeLink","/code")
      File.expand_path(path) == dir
    end
  end
end

#load!Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/project_group/config.rb', line 45

def load!
  Dir["#{dir}/*.rb"].each do |f|
    load f
  end
  global_groups = group_configs.clone

  locals = ["#{Dir.getwd}/.project_group.rb","#{Dir.getwd}/.project_group"]
  locals.each do |f|
    if FileTest.exist?(f)
      load(f) 
      local_groups = group_configs - global_groups
      local_groups.first.local = true if local_groups.size > 0
    end
  end
end

#local_groupObject



79
80
81
82
# File 'lib/project_group/config.rb', line 79

def local_group
  local_config = group_configs.find { |x| x.local }
  local_config.andand.loaded_group
end

#project(name, &b) ⇒ Object



66
67
68
69
70
# File 'lib/project_group/config.rb', line 66

def project(name,&b)
  c = DSLWrapper.new(Single.new(:name => name))
  b[c]
  self.projects << c.obj
end