class Projects

Attributes

filename[RW]

Public Class Methods

current() click to toggle source
# 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
new() click to toggle source
# File lib/projects.rb, line 12
def initialize
        @filename=''
end
user_projects_filename() click to toggle source
# 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

Public Instance Methods

open(filename='') click to toggle source
# 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
pull() click to toggle source
# File lib/projects.rb, line 61
def pull
        self.each{|k,v| v.pull if v.respond_to?("pull".to_sym)}
end
rake() click to toggle source
# File lib/projects.rb, line 64
def rake
        self.each{|k,v| v.rake if v.respond_to?("rake".to_sym)}
end
save(filename='') click to toggle source
# 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
update() click to toggle source
# 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