diff options
Diffstat (limited to 'prelude.rb')
| -rw-r--r-- | prelude.rb | 54 |
1 files changed, 30 insertions, 24 deletions
diff --git a/prelude.rb b/prelude.rb index fdf401b56a..b6c610dd58 100644 --- a/prelude.rb +++ b/prelude.rb @@ -1,35 +1,41 @@ +class Binding + # :nodoc: + def irb(...) + suppress = Thread.current[:__bundled_gems_warning_suppression] + Thread.current[:__bundled_gems_warning_suppression] = ['reline', 'rdoc'] -# Mutex - -class Mutex - def synchronize - self.lock begin - yield - ensure - self.unlock rescue nil + require 'irb' + rescue LoadError, Gem::LoadError + Gem::BUNDLED_GEMS.force_activate 'irb' + require 'irb' end + irb(...) + ensure + Thread.current[:__bundled_gems_warning_suppression] = suppress end -end -# Thread + # suppress redefinition warning + alias irb irb # :nodoc: +end -class Thread - MUTEX_FOR_THREAD_EXCLUSIVE = Mutex.new - def self.exclusive - MUTEX_FOR_THREAD_EXCLUSIVE.synchronize{ - yield - } +module Kernel + # :stopdoc: + def pp(*objs) + require 'pp' + pp(*objs) end + + # suppress redefinition warning + alias pp pp + + private :pp + # :startdoc: end -def require_relative(relative_feature) - c = caller.first - e = c.rindex(/:\d+:in /) - file = $` - if /\A\((.*)\)/ =~ file # eval, etc. - raise LoadError, "require_relative is called in #{$1}" +module Enumerable + # Makes a set from the enumerable object with given arguments. + def to_set(&block) + Set.new(self, &block) end - absolute_feature = File.expand_path(File.join(File.dirname(file), relative_feature)) - require absolute_feature end |
