diff options
author | a_matsuda <a_matsuda@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-06-15 10:43:17 +0000 |
---|---|---|
committer | a_matsuda <a_matsuda@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-06-15 10:43:17 +0000 |
commit | 358dd2d705478026bdac55f7ee0690364363f25e (patch) | |
tree | 17ead6b2af6068c03937b9c0d023f0064588be98 /lib | |
parent | 7778451946437450475dd8595bf50f06c72b5fdc (diff) | |
download | ruby-358dd2d705478026bdac55f7ee0690364363f25e.tar.gz |
Don't pollute toplevel by an IRB internal method
There actually are some libraries that requires 'irb' such as byebug, and when
'irb' is required, it requires irb/src_encoding.rb, then it defines the toplevel
default_src_encoding method that is visible from anywhere in the end users' apps.
Here's a quick oneliner that shows what's happening.
% ruby -rpry-byebug -e 'p private_methods(false)'
[:include, :using, :define_method, :public, :private, :DelegateClass, :default_src_encoding]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r-- | lib/irb/magic-file.rb | 2 | ||||
-rw-r--r-- | lib/irb/src_encoding.rb | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/lib/irb/magic-file.rb b/lib/irb/magic-file.rb index 2dee684657..34e06d64b3 100644 --- a/lib/irb/magic-file.rb +++ b/lib/irb/magic-file.rb @@ -10,7 +10,7 @@ module IRB line = io.gets if line[0,2] == "#!" encoding = detect_encoding(line) internal_encoding = encoding - encoding ||= default_src_encoding + encoding ||= IRB.default_src_encoding io.rewind io.set_encoding(encoding, internal_encoding) diff --git a/lib/irb/src_encoding.rb b/lib/irb/src_encoding.rb index 32f997fc7c..99aea2b43e 100644 --- a/lib/irb/src_encoding.rb +++ b/lib/irb/src_encoding.rb @@ -1,5 +1,7 @@ # frozen_string_literal: false # DO NOT WRITE ANY MAGIC COMMENT HERE. -def default_src_encoding - return __ENCODING__ +module IRB + def self.default_src_encoding + return __ENCODING__ + end end |