lib/rlyeh/utils.rb in rlyeh-0.0.1 vs lib/rlyeh/utils.rb in rlyeh-0.0.2
- old
+ new
@@ -1,9 +1,34 @@
module Rlyeh
module Utils
class << self
+ def singleton_class(obj)
+ if obj.respond_to?(:singleton_class)
+ obj.singleton_class
+ else
+ class << obj
+ self
+ end
+ end
+ end
+
+ def extract_options(args)
+ args.last.is_a?(::Hash) ? args.last : {}
+ end
+
def extract_options!(args)
args.last.is_a?(::Hash) ? args.pop : {}
+ end
+
+ def generate_method(obj, name, method = nil, &block)
+ name = name.to_s
+ method ||= block
+ obj.instance_eval do
+ define_method name, &method
+ method = instance_method name
+ remove_method name
+ method
+ end
end
end
end
end