Metafile serves as a base class for POM's YAML-formatted metadata files.
Alias an accessor.
# File lib/pom/metafile.rb, line 54 def self.alias_accessor(name, original) alias_method name, original alias_method "#{name}=", "#{original}=" end
Attributes are stored in a hash instead of instance variables.
# File lib/pom/metafile.rb, line 45 def self.attr_accessor(name, &default) module_eval %{ def #{name}; self['#{name}'] ; end def #{name}=(val); self['#{name}'] = val; end } defaults[name] = default if default end
Attributes are stored in a hash instead of instance variables.
# File lib/pom/metafile.rb, line 37 def self.attr_reader(name, &default) module_eval %{ def #{name}; self['#{name}'] ; end } defaults[name] = default if default end
# File lib/pom/metafile.rb, line 20 def self.default_filename name.split('::').last.upcase + '.yml' end
# File lib/pom/metafile.rb, line 32 def self.defaults @defaults ||= {} end
# File lib/pom/metafile.rb, line 14 def self.filename basename = name.split('::').last [basename.upcase, '.'+basename.downcase] end
# File lib/pom/metafile.rb, line 101 def [](name) @data[name.to_s] end
# File lib/pom/metafile.rb, line 106 def []=(name, value) @data[name.to_s] = value end
# File lib/pom/metafile.rb, line 157 def backup! if @file dir = @root + BACKUP_DIRECTORY FileUtils.mkdir(dir.dirname) unless dir.dirname.directory? FileUtils.mkdir(dir) unless dir.directory? save!(dir + self.class.filename.first) end end
# File lib/pom/metafile.rb, line 133 def each(&block) @data.each(&block) end
# File lib/pom/metafile.rb, line 111 def key?(name) @data.key?(name.to_s) end
# File lib/pom/metafile.rb, line 116 def merge!(hash) hash.each do |k,v| case v when Proc __send__("#{k}=", instance_eval(&v)) else __send__("#{k}=", v) end end end
# File lib/pom/metafile.rb, line 138 def read! if file && file.exist? data = YAML.load(File.new(file)) data.each do |k,v| __send__("#{k}=", v) end end end
Generated with the Darkfish Rdoc Generator 2.