We manage a set of attributes. Each attribute has a symbol name and a bit value.
Special attribute type. See RDoc::Markup#add_special
Returns a string representation of bitmap
# File lib/rdoc/markup/attribute.rb, line 31 def self.as_string(bitmap) return "none" if bitmap.zero? res = [] @@name_to_bitmap.each do |name, bit| res << name if (bitmap & bit) != 0 end res.join(",") end
Returns a unique bit for name
# File lib/rdoc/markup/attribute.rb, line 18 def self.bitmap_for(name) bitmap = @@name_to_bitmap[name] unless bitmap then bitmap = @@next_bitmap @@next_bitmap <<= 1 @@name_to_bitmap[name] = bitmap end bitmap end
yields each attribute name in bitmap
# File lib/rdoc/markup/attribute.rb, line 43 def self.each_name_of(bitmap) @@name_to_bitmap.each do |name, bit| next if bit == SPECIAL yield name.to_s if (bitmap & bit) != 0 end end