Skip to content

Instantly share code, notes, and snippets.

View emdeeeks's full-sized avatar

Gareth Griffiths emdeeeks

View GitHub Profile
@emdeeeks
emdeeeks / compiler.rb
Created April 12, 2020 21:21 — forked from barnaby/compiler.rb
Compile & execute Ruby as bytecode. Works in 1.9.3
#
#
# Compile & execute Ruby as bytecode
#
#
require 'rbconfig'
require 'dl'
require 'fiddle'
require 'strscan'
require 'rubygems'
require 'eventmachine'
module Telnet
# :stopdoc:
IAC = 255.chr # "\377" # "\xff" # interpret as command
DONT = 254.chr # "\376" # "\xfe" # you are not to use option
DO = 253.chr # "\375" # "\xfd" # please, you use option
WONT = 252.chr # "\374" # "\xfc" # I won't use option
WILL = 251.chr # "\373" # "\xfb" # I will use option
@emdeeeks
emdeeeks / Gemfile
Created April 26, 2020 02:10 — forked from JohnMorales/Gemfile
ruby loco hack night project to convert an image to ascii art
source "https://rubygems.org"
gem 'pry'
# gem "ascii-image"
gem "rmagick", "=2.13.1"
gem "rainbow", "= 1.1.4"
gem "pry-rescue"
gem "paint"
@emdeeeks
emdeeeks / ConsoleMenu.rb
Created April 27, 2020 22:33
Customizable Terminal Menu implemented in Ruby
require File.expand_path('KeyListener.rb', File.dirname(__FILE__))
require File.expand_path('ConsoleMods.rb', File.dirname(__FILE__))
# TODO Colorizations
# TODO Eventsystem? Any standarts?
# Creates a console menu consisting of different items.
# ::Navigate using arrowkeys
# ::Select item by pressing enter
# ::Exit by pressing escape
@emdeeeks
emdeeeks / cursor.rb
Created April 29, 2020 23:57 — forked from KINGSABRI/cursor.rb
Controlling Terminal Cursor in Ruby
class String
def mv_up(n=1)
cursor(self, "\033[#{n}A")
end
def mv_down(n=1)
cursor(self, "\033[#{n}B")
end
def mv_fw(n=1)
@emdeeeks
emdeeeks / ansi_seq.rb
Created April 30, 2020 17:09 — forked from cabron/ansi_seq.rb
ANSI Escape Sequences
class String
def seq
gsub(%r{
%% |
% (?<bg> B )? (?<sgr> black|red|green|yellow|blue|magenta|cyan|white|[0bu!_]|clr ) |
% (?<n1> \d+ )? (?<c> [\^v><\|\-!fb]<? ) (?<n2> \d+ )?
}x) {
match, bg, sgr, n1, c, n2 = *$~
if sgr #Select Graphic Rendition (reset, bold, underline, negative, colors) TODO: xterm colors
# XTerm Control Sequences based on:
# - https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
# ========================================================================= #
# XTerm Control Sequences from invisible-island.net as pythonic code.
# Basic control sequences are string variables.
# - eg: ESC = '\033'
# CSI = ESC + '['
# Control sequences that have args can be called to return a string.
# - eg: sgr = CSI + Ps + 'm'
@emdeeeks
emdeeeks / 1_smtpd.rb
Created June 4, 2020 17:48 — forked from epitron/1_smtpd.rb
A 77 line SMTP server, and a 253 line POP3 server.
require 'gserver'
require 'rubygems'
require 'active_record'
dbconfig = YAML::load_file(File.dirname(__FILE__) + '/config/database.yml')
ActiveRecord::Base.establish_connection(dbconfig['development'])
# CREATE TABLE emails (id integer primary key autoincrement, mail_from, rcpt_to, subject, email, user_id integer);
# CREATE TABLE users (id integer primary key autoincrement, username, password, email);
@emdeeeks
emdeeeks / terminal-eyes.rb
Created March 7, 2021 11:31 — forked from jrunning/terminal-eyes.rb
terminal-eyes.rb
at_exit { stop! }
require "io/console"
$last_click_pos = nil
LEFT_EYE_OFFSET = -3
RIGHT_EYE_OFFSET = 3
EYE_CENTER_OFFSET = 2
# Xterm control sequences
"use strict";
// This file was originally written by @drudru (https://github.com/drudru/ansi_up), MIT, 2011
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var ANSI_COLORS = [[{ color: "0, 0, 0", "class": "ansi-black" }, { color: "187, 0, 0", "class": "ansi-red" }, { color: "0, 187, 0", "class": "ansi-green" }, { color: "187, 187, 0", "class": "an