diff options
Diffstat (limited to 'lib/irb/context.rb')
-rw-r--r-- | lib/irb/context.rb | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/lib/irb/context.rb b/lib/irb/context.rb index d755622f32..bf5b4c5708 100644 --- a/lib/irb/context.rb +++ b/lib/irb/context.rb @@ -154,8 +154,12 @@ module IRB def save_history=(val) IRB.conf[:SAVE_HISTORY] = val + if val - (IRB.conf[:MAIN_CONTEXT] || self).init_save_history + context = (IRB.conf[:MAIN_CONTEXT] || self) + if context.io.support_history_saving? && !context.io.singleton_class.include?(HistorySavingAbility) + context.io.extend(HistorySavingAbility) + end end end @@ -576,11 +580,5 @@ module IRB command = command_aliases.fetch(command.to_sym, command) ExtendCommandBundle.load_command(command)&.respond_to?(:transform_args) end - - def init_save_history# :nodoc: - unless (class<<@io;self;end).include?(HistorySavingAbility) - @io.extend(HistorySavingAbility) - end - end end end |