Class: Projects

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

Overview

require ‘dev_environment’

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.



82
83
84
# File 'lib/dev_projects.rb', line 82

def initialize
  @filename=''
end

Instance Attribute Details

#filenameObject

Returns the value of attribute filename.



80
81
82
# File 'lib/dev_projects.rb', line 80

def filename
  @filename
end

Class Method Details

.currentObject



111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# File 'lib/dev_projects.rb', line 111

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



106
107
108
109
# File 'lib/dev_projects.rb', line 106

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



100
101
102
103
104
# File 'lib/dev_projects.rb', line 100

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

#pullObject



131
132
133
# File 'lib/dev_projects.rb', line 131

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

#rakeObject



134
135
136
# File 'lib/dev_projects.rb', line 134

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

#save(filename = '') ⇒ Object



95
96
97
98
# File 'lib/dev_projects.rb', line 95

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



86
87
88
89
90
91
92
93
# File 'lib/dev_projects.rb', line 86

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