module Whatdidconsole
Constants
- VERSION
Public Class Methods
configure() { |$wdc_config| ... }
click to toggle source
# File lib/whatdidconsole.rb, line 10 def self.configure $wdc_config = Struct.new(:application_id, :access_token).new yield($wdc_config) $wdc_commands = [] $wdc_session_id = "" IRB::Context.class_eval do alias wdc_old_evaluate evaluate alias wdc_old_initialize initialize def initialize(irb, workspace = nil, input_method = nil) begin uri = URI::HTTP.build( scheme: "https", host: "api.whatdidconsole.com", port: "443", path: "/api/v0/applications/sessions" ) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true http.read_timeout = 2 request = Net::HTTP::Post.new(uri.request_uri) request["Content-Type"] = "application/json" request.basic_auth($wdc_config.application_id, $wdc_config.access_token) request.body = JSON.generate({ hostname: Socket.gethostname }) response = http.request(request) data = JSON.parse(response.body) $wdc_session_id = data.fetch("session").fetch("id") at_exit { __wdc_send_session } rescue StandardError => e puts "Failed to initialize Whatdidconsole: #{e}" end wdc_old_initialize(irb, workspace, input_method) end def evaluate(line, line_no, exception: nil) $wdc_commands << { line: line, error: false, duration: 42 } wdc_old_evaluate(line, line_no, exception: exception) end def __wdc_send_session begin uri = URI::HTTP.build( scheme: "https", host: "api.whatdidconsole.com", port: "443", path: "/api/v0/applications/sessions/#{$wdc_session_id}/close" ) http = Net::HTTP.new(uri.host, uri.port) http.read_timeout = 2 http.use_ssl = true request = Net::HTTP::Post.new(uri.request_uri) request["Content-Type"] = "application/json" request.basic_auth($wdc_config.application_id, $wdc_config.access_token) request.body = JSON.generate({ hostname: Socket.gethostname, commands: $wdc_commands }) response = http.request(request) rescue StandardError => e puts "Failed to push session to Whatdidconsole: #{e}" end end end end
new(irb, workspace = nil, input_method = nil)
click to toggle source
# File lib/whatdidconsole.rb, line 21 def initialize(irb, workspace = nil, input_method = nil) begin uri = URI::HTTP.build( scheme: "https", host: "api.whatdidconsole.com", port: "443", path: "/api/v0/applications/sessions" ) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true http.read_timeout = 2 request = Net::HTTP::Post.new(uri.request_uri) request["Content-Type"] = "application/json" request.basic_auth($wdc_config.application_id, $wdc_config.access_token) request.body = JSON.generate({ hostname: Socket.gethostname }) response = http.request(request) data = JSON.parse(response.body) $wdc_session_id = data.fetch("session").fetch("id") at_exit { __wdc_send_session } rescue StandardError => e puts "Failed to initialize Whatdidconsole: #{e}" end wdc_old_initialize(irb, workspace, input_method) end
Public Instance Methods
__wdc_send_session()
click to toggle source
# File lib/whatdidconsole.rb, line 56 def __wdc_send_session begin uri = URI::HTTP.build( scheme: "https", host: "api.whatdidconsole.com", port: "443", path: "/api/v0/applications/sessions/#{$wdc_session_id}/close" ) http = Net::HTTP.new(uri.host, uri.port) http.read_timeout = 2 http.use_ssl = true request = Net::HTTP::Post.new(uri.request_uri) request["Content-Type"] = "application/json" request.basic_auth($wdc_config.application_id, $wdc_config.access_token) request.body = JSON.generate({ hostname: Socket.gethostname, commands: $wdc_commands }) response = http.request(request) rescue StandardError => e puts "Failed to push session to Whatdidconsole: #{e}" end end
evaluate(line, line_no, exception: nil)
click to toggle source
# File lib/whatdidconsole.rb, line 51 def evaluate(line, line_no, exception: nil) $wdc_commands << { line: line, error: false, duration: 42 } wdc_old_evaluate(line, line_no, exception: exception) end