def class_attribute(*attrs)
instance_writer = !attrs.last.is_a?(Hash) || attrs.pop[:instance_writer]
attrs.each do |name|
class_eval "def self.\#{name}() nil end\ndef self.\#{name}?() !!\#{name} end\n\ndef self.\#{name}=(val)\nsingleton_class.class_eval do\nremove_possible_method(:\#{name})\ndefine_method(:\#{name}) { val }\nend\nval\nend\n\ndef \#{name}\ndefined?(@\#{name}) ? @\#{name} : singleton_class.\#{name}\nend\n\ndef \#{name}?\n!!\#{name}\nend\n", __FILE__, __LINE__ + 1
attr_writer name if instance_writer
end
end