Module: Inlay::IRBIntegration
- Defined in:
- lib/inlay/irb.rb
Class Attribute Summary collapse
-
.original ⇒ Object
readonly
Returns the value of attribute original.
-
.wrapper ⇒ Object
readonly
Returns the value of attribute wrapper.
Class Method Summary collapse
Class Attribute Details
.original ⇒ Object (readonly)
Returns the value of attribute original.
10 11 12 |
# File 'lib/inlay/irb.rb', line 10 def original @original end |
.wrapper ⇒ Object (readonly)
Returns the value of attribute wrapper.
10 11 12 |
# File 'lib/inlay/irb.rb', line 10 def wrapper @wrapper end |
Class Method Details
.install ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/inlay/irb.rb', line 12 def install mode = IRB.conf[:INSPECT_MODE] selected = mode.is_a?(IRB::Inspector) ? mode : IRB::Inspector::INSPECTORS[mode] || IRB::Inspector::INSPECTORS[mode.to_s] || IRB::Inspector::INSPECTORS[:p] return false unless selected unless mode.equal?(@wrapper) @original = selected @original.init end @protocol = TerminalOutput.protocol @wrapper = IRB::Inspector.new(proc do |value, output, colorize: true| begin if Inlay.displayable?(value) output << Inlay.show(value, protocol: @protocol) else @original.inspect_value(value, output, colorize: colorize) end rescue StandardError @original.inspect_value(value, output, colorize: colorize) end end) IRB.conf[:INSPECT_MODE] = @wrapper context = IRB.CurrentContext if IRB.respond_to?(:CurrentContext) context.inspect_mode = @wrapper if context&.respond_to?(:inspect_mode=) true end |
.uninstall ⇒ Object
39 40 41 42 43 44 45 46 47 |
# File 'lib/inlay/irb.rb', line 39 def uninstall return false unless @wrapper && IRB.conf[:INSPECT_MODE].equal?(@wrapper) IRB.conf[:INSPECT_MODE] = @original context = IRB.CurrentContext if IRB.respond_to?(:CurrentContext) context.inspect_mode = @original if context&.respond_to?(:inspect_mode=) @wrapper = @original = @protocol = nil true end |