Sha256: 992675254bb671358fd3fb8168784514a64bc129a326e394f607e83121ca88da

Contents?: true

Size: 1.58 KB

Versions: 16

Compression:

Stored size: 1.58 KB

Contents

Irbtools.add_library :hirb, thread: :paint do
  Hirb::View.enable output: { "Object" => { ancestor: true, options: { unicode: true }}},
                    pager_command: 'less -R'
  extend Hirb::Console

  def page(what, options = {})
    Hirb::Pager.command_pager(what, options = {})
  end

  # Workaround for newer IRB versions
  if defined? IRB::Irb
    IRB::Irb.class_eval do
      def output_value(_ = false)
        Hirb::View.view_or_page_output(@context.last_value) || non_hirb_view_output
      end
    end
  end

  # page wirb output hacks
  class Hirb::Pager
    alias original_activated_by? activated_by?
    def activated_by?(string_to_page, inspect_mode=false)
      original_activated_by?(Paint.unpaint(string_to_page || ''), inspect_mode)
    end
  end

  class << Hirb::View
    def view_or_page_output(val)
      if defined?(val.inspect)
        unless view_output(val)
          if defined?(Wirb) && Wirb.running?
            page_output Wirb.colorize_result_with_timeout(val.inspect), true
          else
            page_output val.inspect, true
          end
        end
      end
    end
  end

  # colorful border
  table_color = :yellow
  Hirb::Helpers::UnicodeTable::CHARS.each do |place, group|
    Hirb::Helpers::UnicodeTable::CHARS[place] =
    group.each do |name, part|
      if part.kind_of? String
        Hirb::Helpers::UnicodeTable::CHARS[place][name] = Paint[part, *table_color]
      elsif part.kind_of? Hash
        part.each do |special, char|
          Hirb::Helpers::UnicodeTable::CHARS[place][name][special] = Paint[char, *table_color]
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
irbtools-4.1.0 lib/irbtools/hirb.rb
irbtools-4.0.11 lib/irbtools/hirb.rb
irbtools-4.0.10 lib/irbtools/hirb.rb
irbtools-4.0.9 lib/irbtools/hirb.rb
irbtools-4.0.8 lib/irbtools/hirb.rb
irbtools-4.0.7 lib/irbtools/hirb.rb
irbtools-4.0.6 lib/irbtools/hirb.rb
irbtools-4.0.5 lib/irbtools/hirb.rb
irbtools-4.0.4 lib/irbtools/hirb.rb
irbtools-4.0.3 lib/irbtools/hirb.rb
irbtools-4.0.2 lib/irbtools/hirb.rb
irbtools-4.0.1 lib/irbtools/hirb.rb
irbtools-4.0.0 lib/irbtools/hirb.rb
irbtools-3.0.5 lib/irbtools/hirb.rb
irbtools-3.0.4 lib/irbtools/hirb.rb
irbtools-3.0.3 lib/irbtools/hirb.rb