class Class
Public Instance Methods
add_a_child_class(class_name, class_definitions="")
click to toggle source
# File lib/rubyhacks.rb, line 165 def add_a_child_class(class_name, class_definitions="") class_eval("class #{class_name} < #{self}; end") new_class = const_get(class_name) new_class.class_eval(class_definitions) new_class end
aliold(sym)
click to toggle source
# File lib/rubyhacks.rb, line 138 def aliold(sym) (eputs "Warning: This method: #{:old_+sym} already exists"; return) if instance_methods.include?(:old_+sym) alias_method((:old_+sym),sym) end
class_accessor(*args)
click to toggle source
# File lib/rubyhacks.rb, line 156 def class_accessor(*args) args.each do |variable| new_class_method(variable){class_variable_get(variable)} new_class_method(variable+"=".to_sym) do |value| class_variable_set(variable,value) end end end
class_variable_get(var, *args)
click to toggle source
# File lib/rubyhacks.rb, line 145 def class_variable_get(var, *args) var = var.to_s=~ /^@@/ ? var : "@@" + var.to_s old_class_variable_get(var, *args) end
class_variable_set(var,*args)
click to toggle source
# File lib/rubyhacks.rb, line 151 def class_variable_set(var,*args) var = var.to_s=~ /^@@/ ? var : "@@" + var.to_s old_class_variable_set(var, *args) end
instance_method?(meth)
click to toggle source
# File lib/rubyhacks.rb, line 179 def instance_method?(meth) return instance_methods.include?(meth.to_sym) end
new_class_method(method, &block)
click to toggle source
def new_class_method
(method, &block)
self.class.send(:define_method,method, &block)
end
# File lib/rubyhacks.rb, line 133 def new_class_method(method, &block) define_singleton_method(method, &block) end
phoenix(file_name) { |obj| ... }
click to toggle source
# File lib/rubyhacks.rb, line 881 def phoenix(file_name, &block) if FileTest.exist? file_name obj = eval(File.read(file_name), binding, file_name) raise "Corrupt File: #{file_name}" unless obj.class == self else obj = new obj.phoenix(file_name) end if block yield(obj) obj.phoenix(file_name) else return obj end end
recursive_const_get(string)
click to toggle source
# File lib/rubyhacks.rb, line 172 def recursive_const_get(string) string.split(/::/).inject(nil){|const, name| const ? const.const_get(name) : const_get(name)} end