Class: Project

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

Overview

require ‘dev_commands’

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Hash

#execute, #to_html

Constructor Details

#initialize(value = '') ⇒ Project

Returns a new instance of Project.



6
7
8
9
10
11
12
13
# File 'lib/project.rb', line 6

def initialize value=''
	@filename=''
	self[:url]=''
	self[:url] = value if value.is_a?(String)
	if(value.is_a?(Hash))
		value.each{|k,v|self[k]=v}
	end
end

Instance Attribute Details

#filenameObject

Returns the value of attribute filename.



5
6
7
# File 'lib/project.rb', line 5

def filename
  @filename
end

Instance Method Details

#checkoutObject



43
44
45
46
47
48
# File 'lib/project.rb', line 43

def checkout
	if(!File.exists?(wrk_dir) && self[:url].include?('svn'))
		puts "checkout #{self.url} to #{self.wrk_dir}"
		puts `svn checkout #{self.url} #{self.wrk_dir}`
	end
end

#cloneObject



36
37
38
39
40
41
# File 'lib/project.rb', line 36

def clone
	if(!File.exists?(wrk_dir) && self[:url].include?('.git'))
		puts "cloning #{self[:url]} to #{self.wrk_dir}"
		puts `git clone #{self[:url]} #{self.wrk_dir}`
	end
end

#get_latest_unique_idObject



19
20
21
# File 'lib/project.rb', line 19

def get_latest_unique_id 
	'51ed9c9d45ba3979c808740d75ba1831c85aff5d'
end

#nameObject



15
16
17
# File 'lib/project.rb', line 15

def name
	self[:name]
end

#pullObject



27
28
29
30
31
32
33
34
# File 'lib/project.rb', line 27

def pull
	if(File.exists?(wrk_dir) && File.exists?("#{wrk_dir}/.git"))
		Dir.chdir(wrk_dir) do
			puts "git pull (#{wrk_dir})"
			puts `git pull`
		end
	end
end

#rakeObject



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/project.rb', line 50

def rake
	if(!File.exists?(self.wrk_dir))
		clone
		checkout
	end
	if(File.exists?(self.wrk_dir))
		Dir.chdir(self.wrk_dir) do
			rake = Command.new({ :input => 'rake', :timeout => 300, :ignore_failure => true })
			#puts "rake (#{self.wrk_dir})"
			#puts `rake`
			rake.execute
			puts rake.summary
		end
	end
end

#wrk_dirObject



23
24
25
# File 'lib/project.rb', line 23

def wrk_dir
	"#{Environment.dev_root}/wrk/#{self.name}"
end