summaryrefslogtreecommitdiff
path: root/prelude.rb
diff options
context:
space:
mode:
Diffstat (limited to 'prelude.rb')
-rw-r--r--prelude.rb44
1 files changed, 18 insertions, 26 deletions
diff --git a/prelude.rb b/prelude.rb
index 02d93efdd9..b6c610dd58 100644
--- a/prelude.rb
+++ b/prelude.rb
@@ -1,49 +1,41 @@
class Binding
# :nodoc:
- def irb
- if defined?(Bundler) && !Gem.loaded_specs["irb"]
- unless force_activate "irb"
- warn "irb is not found. Install irb from RubyGems or add irb to Gemfile."
- end
+ def irb(...)
+ suppress = Thread.current[:__bundled_gems_warning_suppression]
+ Thread.current[:__bundled_gems_warning_suppression] = ['reline', 'rdoc']
+
+ begin
+ require 'irb'
+ rescue LoadError, Gem::LoadError
+ Gem::BUNDLED_GEMS.force_activate 'irb'
+ require 'irb'
end
- require 'irb'
- irb
+ irb(...)
+ ensure
+ Thread.current[:__bundled_gems_warning_suppression] = suppress
end
# suppress redefinition warning
alias irb irb # :nodoc:
-
- private def force_activate(gem)
- gemspecs = (Gem::Specification.dirs + [Gem.default_specifications_dir]).map{|d|
- Dir.glob("#{d}/#{gem}*.gemspec").reverse
- }.flatten
- if gemspecs.empty?
- false
- else
- gemspec = Gem::Specification.load(gemspecs[0])
- gemspec.dependencies.each{|dep| force_activate dep.name }
- gemspec.activate
- end
- end
end
module Kernel
+ # :stopdoc:
def pp(*objs)
require 'pp'
pp(*objs)
end
# suppress redefinition warning
- alias pp pp # :nodoc:
+ alias pp pp
private :pp
+ # :startdoc:
end
-autoload :Set, 'set'
-
module Enumerable
# Makes a set from the enumerable object with given arguments.
- def to_set(klass = Set, *args, &block)
- klass.new(self, *args, &block)
- end unless instance_methods.include?(:to_set) # RJIT could already load this from builtin prelude
+ def to_set(&block)
+ Set.new(self, &block)
+ end
end