Sha256: 7ac3ab771a395bd5bf115eaffd680fbe0d9bb27831570775472efbd0df7e35f0
Contents?: true
Size: 1.11 KB
Versions: 1
Compression:
Stored size: 1.11 KB
Contents
require 'glue/flexob' # WARNING: this is under construction, DON'T use yet. module MetadataUtils end # Include this module to classes to add metadata/annotation # functionality. module MetadataMixin def self.included(base) base.module_eval do @metadata = Flexob.new @metadata[:self] = Flexob.new class << self def metadata @metadata end def selmetadata=(md) @metadata = md end end end =begin case base when Class: base.module_eval do def self.inherited(child) MetadataUtils.enchant(child) MetadataUtils.copy(self, child) # gmosx: super must stay at the end. super end end when Module: end =end end end class Module # Annotate (define metadata) for the given symbol/class. def ann(*args) if args.first.is_a? Symbol key = args.shift else key = :self end unless args.empty? self.metadata[key] = Flexob.new(args.first) end end end # * George Moschovitis <gm@navel.r>
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
glue-0.23.0 | lib/glue/metadata.rb |