Sha256: bbff92596f635624e24345503338f153f5b6d12e8ec27a714c0027b7637222bf

Contents?: true

Size: 612 Bytes

Versions: 2

Compression:

Stored size: 612 Bytes

Contents

# frozen_string_literal: true

require('console_tracker/log')

module ConsoleTracker
  class << self
    def connect
      with_irb if defined?(IRB)
      with_pry if defined?(Pry)
    end

    def with_irb
      IRB::Context.class_eval do
        alias_method :usual_evaluate, :evaluate

        def evaluate(*params)
          usual_evaluate(*params)
          ConsoleTracker::Log.call(command: params.first)
        end
      end
    end

    def with_pry
      Pry.hooks.add_hook(:after_read, 'console_tracker') do |string, _pry|
        ConsoleTracker::Log.call(command: string)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
console_tracker-0.0.0.pre.beta3 lib/console_tracker/connect.rb
console_tracker-0.0.0.pre.beta2 lib/console_tracker/connect.rb