class NilClass def is_set key return false end alias is_set? is_set # prefix is used to tell teh method the MXP command if it's not the default path. def display_flags key, prefix="flags", how_much_buffer=0 str = "" total = how_much_buffer key.each do |flag| # if this flag is set here then we return it green. Otherwise red. str << " " node_prefix = mxptag("send \"#{prefix} #{flag}\"") node = "#R[ ]#{flag}" total += node.length - 1 if total >= 74 str << ENDL total = node.length - 1 end str << node_prefix + node str << mxptag('/send') end return str end end class Hash # returns true if flag is set. # false if flag is removed. def toggle sym if self[sym] self.delete(sym) # remove the flag return false end self[sym] = true return true end def is_set sym return true if self[sym] != nil return false end alias is_set? is_set # set a flag def set sym self[sym] = true end # remove a flag def remove sym self.delete(sym) end # prefix is used to tell teh method the MXP command if it's not the default path. def display_flags key, prefix="flags", how_much_buffer=0 str = "" key = self.keys + key key.uniq! total = how_much_buffer key.each do |flag| str << " " # if this flag is set here then we return it green. Otherwise red. node_prefix = mxptag("send \"#{prefix} #{flag}\"") node = ("%s" % ("%s#{flag}" % (if self.include?(flag) then "#G[x]" else "#R[ ]" end))) node += "=#{self[flag]}" if self[flag] != nil and self[flag] != false and self[flag] != true total += node.length - 1 if total >= 79 str << ENDL total = node.length - 1 end str << node_prefix + node str << "#n"+mxptag('/send') end return str end end