Sha256: c59541e9be565cfe5fe0af4b11f209da64ff89c95f88e1f97c8c7a2adf34e371
Contents?: true
Size: 1.39 KB
Versions: 1
Compression:
Stored size: 1.39 KB
Contents
class Ginst::Project class << self def projects @@projects end def save_all f = File.open(File.join(Ginst::Ginst.working_dir,'projects.yml'),'w') p = @@projects.dup.map do |p| p.send(:instance_variables).each do |var| p.send(:remove_instance_variable,var) unless %w(@name @dir @build_process).include? var end p end f.write(p.to_yaml) f.close true end def load_projects projects = YAML::load(File.read(File.join(Ginst::Ginst.working_dir,'projects.yml'))) projects = [] unless projects.kind_of? Array if projects.empty? || projects.map{|c| c.class}.uniq == [Ginst::Project] @@projects = projects else STDERR.write "There is an error in projects.yml" @@projects = [] end rescue Errno::ENOENT @@projects = [] end end attr_accessor :name, :dir # Generate a new project # Ginst::Project.new("name" => "My Super Project", "dir" => "asdf") def initialize(params = {}) params.each{|k,v| send("#{k}=".to_sym, v) } @errors = {} end def save if self.class.projects.select{|p| p == self}.empty? self.class.projects << self end self.class.save_all end def destroy unless self.class.projects.select{|p| p == self}.empty? self.class.projects.delete(self) self.class.save_all end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ginst-0.2.2 | lib/ginst/project/base.rb |