Class: Projects

Inherits:
Hash
  • Object
show all
Defined in:
lib/projects.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Hash

#execute, #to_html

Constructor Details

#initializeProjects

Returns a new instance of Projects.



12
13
14
# File 'lib/projects.rb', line 12

def initialize
	@filename=''
end

Instance Attribute Details

#filenameObject

Returns the value of attribute filename.



10
11
12
# File 'lib/projects.rb', line 10

def filename
  @filename
end

Class Method Details

.currentObject



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/projects.rb', line 41

def self.current
	project=nil
	url=Git.remote_origin
	url=Svn.url if url.length==0
	if(Rake.application.original_dir.include?('/wrk/') &&
		   url.length > 0)
		project=Project.new(url)
		name=Rake.application.original_dir.gsub("#{Environment.dev_root}/wrk/",'')
		project[:name] = name if(name.length>0 && !name.include?(Environment.dev_root))
		if(defined?(PROJECTS))
			PROJECTS[name]=project if(!PROJECTS.has_key?(name))
			project.each{|k,v|PROJECTS[name][k]=v}
			PROJECTS.save
		else
			project[:name]=name
		end
	end			
	project
end

.user_projects_filenameObject



36
37
38
39
# File 'lib/projects.rb', line 36

def self.user_projects_filename
	FileUtils.mkdir("#{Environment.dev_root}/data") if(!File.exists?("#{Environment.dev_root}/data"))
	"#{Environment.dev_root}/data/PROJECTS.json"
end

Instance Method Details

#open(filename = '') ⇒ Object



30
31
32
33
34
# File 'lib/projects.rb', line 30

def open filename=''
	@filename=filename if filename.length > 0
	JSON.parse(IO.read(@filename)).each{|k,v| self[k]=v}
	update
end

#pullObject



61
62
63
# File 'lib/projects.rb', line 61

def pull
	self.each{|k,v| v.pull if v.respond_to?("pull".to_sym)}
end

#rakeObject



64
65
66
# File 'lib/projects.rb', line 64

def rake
	self.each{|k,v| v.rake if v.respond_to?("rake".to_sym)}
end

#save(filename = '') ⇒ Object



25
26
27
28
# File 'lib/projects.rb', line 25

def save filename=''
	@filename=filename if !filename.nil? && filename.length > 0
	File.open(@filename,'w'){|f|f.write(JSON.pretty_generate(self))} if @filename.length > 0
end

#updateObject



16
17
18
19
20
21
22
23
# File 'lib/projects.rb', line 16

def update
	self.each{|k,v|
		self[k]=Project.new(v) if(v.is_a?(String))
		self[k]=Project.new(v) if(!v.is_a?(Project) && v.is_a?(Hash))
		self[k][:name]=k
		#self[k].update if self[k].respond_to?("update".to_sym)
	}
end