Skip to content

Instantly share code, notes, and snippets.

View jemc's full-sized avatar

Joe Eli McIlvain jemc

  • TheoremOne
  • Cascadia
View GitHub Profile
@jemc
jemc / combine.rb
Last active December 31, 2015 07:49
A type of module combining distinct from include/extend
module HappehTheory
module SingleCell
def gelatin
trait
end
private
@jemc
jemc / bruteforce.rb
Created December 18, 2013 02:45
Generating all possible strings of characters with a given character set and length
class BruteForce
extend Enumerable
def initialize(size, alphabet)
@alphabet = alphabet
if size.respond_to?(:min) and size.respond_to?(:max)
@start_size = size.min
@end_size = size.max
module A
def initialize; super end
def self.extended(obj)
instance_method(:initialize).bind(obj).call
end
end
Object.new.extend A
@jemc
jemc / regexp_fill.rb
Created January 14, 2014 01:15
Reverse usage of Regexp named captures to generate strings
require 'regexp_parser'
require 'pry'
require 'pp'
regexp = /foo: (?<val>\d+)?\W{0,5}(?<other>\w+)/
filldata = {val: 88.99, other:"dog"}
class MyDecoratorHandler < YARD::Handlers::Ruby::Base
handles method_call(:my_decorator)
# my_decorator {meta:'data'}, def foo(a,b,c); end
def process
args = statement[1]
mdef = args[1]
metadata = args[0].source.gsub /[\r\n]/, ''
# Set build directory to ./build relative to working directory
qbs-config preferences.defaultBuildDirectory build
# Set build directory to /var/builds/@project (absolute)
qbs-config preferences.defaultBuildDirectory /var/builds/@project
@jemc
jemc / BigButton.qml
Last active August 5, 2023 09:26
Big Button example in QML using SVG and native layers
import QtQuick 2.0
import QtQuick.Controls 1.0
import QtQuick.Controls.Styles 1.0
import QtGraphicalEffects 1.0
Item {
height: 200
width: 200
import QtQuick 2.1
Item {
id: root
Item {
id: a
property var prop: console.log("a.prop property defined")
@jemc
jemc / Dockerfile
Last active August 29, 2015 14:04
Rubinius Dockerfile
FROM buildpack-deps
# Make a user, group, and home folder
RUN useradd user -g users -d /home/user -m
# Install build and test dependencies for rubinius.
# The ruby installed here is only for building and will be purged later.
RUN apt-get update && apt-get install -y llvm clang ruby ruby-dev bison procps libedit-dev
RUN gem install bundler --no-document
def load
@block_environment || (
@compiled_code || (
@generator || (
@ast || (
@string || (
make_string )
make_ast )
make_generator )
make_compiled_code )