Sha256: ebf94de936e75b6994f43a1fb4fd240eb4e1563cc523a340070fae1ddbfd10b7
Contents?: true
Size: 1.33 KB
Versions: 2
Compression:
Stored size: 1.33 KB
Contents
module Kernel def raise_without_self *args error, message, the_self = nil if args.size == 1 error = RuntimeError message = args[0] the_self = self elsif args.size == 2 message, the_self = args error = RuntimeError elsif args.size == 3 error, message, the_self = args else raise RuntimeError, "Invalid arguments!", caller end the_self = the_self.is_a?(Array) ? the_self : [the_self] list = [] the_self.each do |s| klass = (s.class == Class or s.class == Module) ? s : s.class klass.ancestors.each do |a| next if a == Object or a == Module name = a.name path = nil if RubyExt::Resource.class_exist?(name) path = RubyExt::Resource.class_to_virtual_file(name) path.sub!(".rb", "") else path = name.gsub("::", "/") end list << /#{path}/ end end stack = caller stack = stack.delete_if do |line| list.any?{|re| line =~ re} and line !~ /\/spec\// # Do not exclude Spec stacktrace. end raise error, message, stack end def respond_to sym, *args return nil if not respond_to? sym send sym, *args end # def _ &b # raise "Block isn't provided!" unless b # return b # end def singleton_class(&block) if block_given? (class << self; self; end).class_eval(&block) self else (class << self; self; end) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
RubyExt-0.1.1 | lib/RubyExt/kernel.rb |
RubyExt-0.1.2 | lib/RubyExt/kernel.rb |