diff options
author | Takashi Kokubun <takashikkbn@gmail.com> | 2019-04-26 18:28:54 +0900 |
---|---|---|
committer | Takashi Kokubun <takashikkbn@gmail.com> | 2019-04-26 18:28:57 +0900 |
commit | 52cfb17086998b9434c9c786bfcf827197216c9a (patch) | |
tree | a94e98569e51a9b4cccc8b6ba481b3f7080061ab /lib | |
parent | a6805771ec202a8b8586d6624b05342029cace0d (diff) | |
download | ruby-52cfb17086998b9434c9c786bfcf827197216c9a.tar.gz |
make sync-default-gems GEM=irb
from https://github.com/ruby/irb/commit/e6739d8c66dc78562930adb0b96935c9b38acf74
Diffstat (limited to 'lib')
-rw-r--r-- | lib/irb.rb | 6 | ||||
-rw-r--r-- | lib/irb/cmd/fork.rb | 2 | ||||
-rw-r--r-- | lib/irb/color.rb | 42 | ||||
-rw-r--r-- | lib/irb/irb.gemspec | 2 | ||||
-rw-r--r-- | lib/irb/workspace.rb | 8 |
5 files changed, 34 insertions, 26 deletions
diff --git a/lib/irb.rb b/lib/irb.rb index ba12bdbcab..a7e7944cc4 100644 --- a/lib/irb.rb +++ b/lib/irb.rb @@ -750,8 +750,8 @@ class Binding # # Potato.new # - # Running <code>ruby potato.rb</code> will open an IRB session where - # +binding.irb+ is called, and you will see the following: + # Running +ruby potato.rb+ will open an IRB session where +binding.irb+ is + # called, and you will see the following: # # $ ruby potato.rb # @@ -781,7 +781,7 @@ class Binding # irb(#<Potato:0x00007feea1916670>):004:0> @cooked = true # => true # - # You can exit the IRB session with the +exit+ command. Note that exiting will + # You can exit the IRB session with the `exit` command. Note that exiting will # resume execution where +binding.irb+ had paused it, as you can see from the # output printed to standard output in this example: # diff --git a/lib/irb/cmd/fork.rb b/lib/irb/cmd/fork.rb index 31d53dcaba..ae4d51b5d1 100644 --- a/lib/irb/cmd/fork.rb +++ b/lib/irb/cmd/fork.rb @@ -21,7 +21,7 @@ module IRB class << self alias_method :exit, ExtendCommand.irb_original_method_name('exit') end - if block_given? + if iterator? begin yield ensure diff --git a/lib/irb/color.rb b/lib/irb/color.rb index 9606c7b68c..2e7a3e8bab 100644 --- a/lib/irb/color.rb +++ b/lib/irb/color.rb @@ -17,24 +17,28 @@ module IRB # :nodoc: on_const: ['ENV'], } - TOKEN_SEQ_EXPRS = { - on_CHAR: [[BLUE, BOLD], [Ripper::EXPR_END]], - on_const: [[BLUE, BOLD, UNDERLINE], [Ripper::EXPR_ARG, Ripper::EXPR_CMDARG]], - on_embexpr_beg: [[RED], [Ripper::EXPR_BEG, Ripper::EXPR_END]], - on_embexpr_end: [[RED], [Ripper::EXPR_END, Ripper::EXPR_ENDFN]], - on_ident: [[BLUE, BOLD], [Ripper::EXPR_ENDFN]], - on_int: [[BLUE, BOLD], [Ripper::EXPR_END]], - on_float: [[MAGENTA, BOLD], [Ripper::EXPR_END]], - on_kw: [[GREEN], [Ripper::EXPR_ARG, Ripper::EXPR_CLASS, Ripper::EXPR_BEG, Ripper::EXPR_END, Ripper::EXPR_FNAME]], - on_label: [[MAGENTA], [Ripper::EXPR_LABELED]], - on_qwords_beg: [[RED], [Ripper::EXPR_BEG]], - on_regexp_beg: [[RED, BOLD], [Ripper::EXPR_BEG]], - on_regexp_end: [[RED, BOLD], [Ripper::EXPR_BEG]], - on_symbeg: [[BLUE, BOLD], [Ripper::EXPR_FNAME]], - on_tstring_beg: [[RED], [Ripper::EXPR_BEG, Ripper::EXPR_END, Ripper::EXPR_ARG, Ripper::EXPR_CMDARG]], - on_tstring_content: [[RED], [Ripper::EXPR_BEG, Ripper::EXPR_ARG, Ripper::EXPR_CMDARG]], - on_tstring_end: [[RED], [Ripper::EXPR_END]], - } + begin + TOKEN_SEQ_EXPRS = { + on_CHAR: [[BLUE, BOLD], [Ripper::EXPR_END]], + on_const: [[BLUE, BOLD, UNDERLINE], [Ripper::EXPR_ARG, Ripper::EXPR_CMDARG]], + on_embexpr_beg: [[RED], [Ripper::EXPR_BEG, Ripper::EXPR_END]], + on_embexpr_end: [[RED], [Ripper::EXPR_END, Ripper::EXPR_ENDFN]], + on_ident: [[BLUE, BOLD], [Ripper::EXPR_ENDFN]], + on_int: [[BLUE, BOLD], [Ripper::EXPR_END]], + on_float: [[MAGENTA, BOLD], [Ripper::EXPR_END]], + on_kw: [[GREEN], [Ripper::EXPR_ARG, Ripper::EXPR_CLASS, Ripper::EXPR_BEG, Ripper::EXPR_END, Ripper::EXPR_FNAME]], + on_label: [[MAGENTA], [Ripper::EXPR_LABELED]], + on_qwords_beg: [[RED], [Ripper::EXPR_BEG]], + on_regexp_beg: [[RED, BOLD], [Ripper::EXPR_BEG]], + on_regexp_end: [[RED, BOLD], [Ripper::EXPR_BEG]], + on_symbeg: [[BLUE, BOLD], [Ripper::EXPR_FNAME]], + on_tstring_beg: [[RED], [Ripper::EXPR_BEG, Ripper::EXPR_END, Ripper::EXPR_ARG, Ripper::EXPR_CMDARG]], + on_tstring_content: [[RED], [Ripper::EXPR_BEG, Ripper::EXPR_ARG, Ripper::EXPR_CMDARG]], + on_tstring_end: [[RED], [Ripper::EXPR_END]], + } + rescue NameError + TOKEN_SEQ_EXPRS = {} + end class << self def colorable? @@ -85,7 +89,7 @@ module IRB # :nodoc: [BLUE, BOLD] elsif TOKEN_KEYWORDS.fetch(token, []).include?(str) [CYAN, BOLD] - elsif (seq, exprs = TOKEN_SEQ_EXPRS[token]; exprs&.any? { |e| (expr & e) != Ripper::EXPR_NONE }) + elsif (seq, exprs = TOKEN_SEQ_EXPRS[token]; exprs&.any? { |e| (expr & e) != 0 }) seq else nil diff --git a/lib/irb/irb.gemspec b/lib/irb/irb.gemspec index 57a44fecb7..d16d6b0ecc 100644 --- a/lib/irb/irb.gemspec +++ b/lib/irb/irb.gemspec @@ -16,7 +16,7 @@ Gem::Specification.new do |spec| spec.homepage = "https://github.com/ruby/irb" spec.license = "BSD-2-Clause" - spec.files = [".gitignore", ".travis.yml", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "bin/console", "bin/setup", "exe/irb", "irb.gemspec", "lib/irb.rb", "lib/irb/cmd/chws.rb", "lib/irb/cmd/fork.rb", "lib/irb/cmd/help.rb", "lib/irb/cmd/load.rb", "lib/irb/cmd/nop.rb", "lib/irb/cmd/pushws.rb", "lib/irb/cmd/subirb.rb", "lib/irb/completion.rb", "lib/irb/context.rb", "lib/irb/ext/change-ws.rb", "lib/irb/ext/history.rb", "lib/irb/ext/loader.rb", "lib/irb/ext/multi-irb.rb", "lib/irb/ext/save-history.rb", "lib/irb/ext/tracer.rb", "lib/irb/ext/use-loader.rb", "lib/irb/ext/workspaces.rb", "lib/irb/extend-command.rb", "lib/irb/frame.rb", "lib/irb/help.rb", "lib/irb/init.rb", "lib/irb/input-method.rb", "lib/irb/inspector.rb", "lib/irb/lc/.document", "lib/irb/lc/error.rb", "lib/irb/lc/help-message", "lib/irb/lc/ja/encoding_aliases.rb", "lib/irb/lc/ja/error.rb", "lib/irb/lc/ja/help-message", "lib/irb/locale.rb", "lib/irb/magic-file.rb", "lib/irb/notifier.rb", "lib/irb/output-method.rb", "lib/irb/ruby-lex.rb", "lib/irb/ruby-token.rb", "lib/irb/slex.rb", "lib/irb/src_encoding.rb", "lib/irb/version.rb", "lib/irb/workspace.rb", "lib/irb/ws-for-case-2.rb", "lib/irb/xmp.rb"] + spec.files = ["LICENSE.txt", "README.md", "exe/irb", "irb.gemspec", "lib/irb.rb", "lib/irb/cmd/chws.rb", "lib/irb/cmd/fork.rb", "lib/irb/cmd/help.rb", "lib/irb/cmd/load.rb", "lib/irb/cmd/nop.rb", "lib/irb/cmd/pushws.rb", "lib/irb/cmd/subirb.rb", "lib/irb/completion.rb", "lib/irb/context.rb", "lib/irb/ext/change-ws.rb", "lib/irb/ext/history.rb", "lib/irb/ext/loader.rb", "lib/irb/ext/multi-irb.rb", "lib/irb/ext/save-history.rb", "lib/irb/ext/tracer.rb", "lib/irb/ext/use-loader.rb", "lib/irb/ext/workspaces.rb", "lib/irb/extend-command.rb", "lib/irb/frame.rb", "lib/irb/help.rb", "lib/irb/init.rb", "lib/irb/input-method.rb", "lib/irb/inspector.rb", "lib/irb/lc/.document", "lib/irb/lc/error.rb", "lib/irb/lc/help-message", "lib/irb/lc/ja/encoding_aliases.rb", "lib/irb/lc/ja/error.rb", "lib/irb/lc/ja/help-message", "lib/irb/locale.rb", "lib/irb/magic-file.rb", "lib/irb/notifier.rb", "lib/irb/output-method.rb", "lib/irb/ruby-lex.rb", "lib/irb/ruby-token.rb", "lib/irb/slex.rb", "lib/irb/src_encoding.rb", "lib/irb/version.rb", "lib/irb/workspace.rb", "lib/irb/ws-for-case-2.rb", "lib/irb/xmp.rb"] spec.bindir = "exe" spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = ["lib"] diff --git a/lib/irb/workspace.rb b/lib/irb/workspace.rb index ff8f5da64f..bee59b9c3f 100644 --- a/lib/irb/workspace.rb +++ b/lib/irb/workspace.rb @@ -49,7 +49,7 @@ EOF @binding = BINDING_QUEUE.pop when 3 # binding in function on TOPLEVEL_BINDING(default) - @binding = eval("self.class.remove_method(:irb_binding) if defined?(irb_binding); def irb_binding; private; binding; end; irb_binding", + @binding = eval("def irb_binding; private; binding; end; irb_binding", TOPLEVEL_BINDING, __FILE__, __LINE__ - 3) @@ -116,7 +116,11 @@ EOF end def code_around_binding - file, pos = @binding.source_location + if @binding.respond_to?(:source_location) + file, pos = @binding.source_location + else + file, pos = @binding.eval('[__FILE__, __LINE__]') + end if defined?(::SCRIPT_LINES__[file]) && lines = ::SCRIPT_LINES__[file] code = ::SCRIPT_LINES__[file].join('') |