Skip to content

Instantly share code, notes, and snippets.

View dux's full-sized avatar

Dino Reić dux

  • Trifolium
  • London, Zagreb, Berlin
View GitHub Profile
@dux
dux / asmodeus.rb
Created July 4, 2019 10:46
check if process pid is running and exit
class Asmodeus
attr_accessor :pid_file
def info text
puts 'Asmodeus: %s' % text
end
def pid_check no_check=false
return unless @pid_file
@dux
dux / _usage.js
Last active May 20, 2019 21:13
DOM create customElement or polyfil for older browsers. passes node + attributes
// for svelte js, or any othe widget provider
let bindSvelteToDOM = function(name, klass) {
DOMCustomElement.define(name, function(node, opts) {
node.classList.add('mounted')
new klass({ target: node, props: opts })
})
}
import SvelteCheckbox from './svelte/checkbox.svelte'
bindSvelteToDOM('s-checkbox', SvelteCheckbox)
@dux
dux / rollup.config.js
Last active May 23, 2019 10:02
multi file rollup config with coffeescript, svelte, react and livereload
import babel from 'rollup-plugin-babel'
import svelte from 'rollup-plugin-svelte'
import { scss } from '@kazzkiq/svelte-preprocess-scss';
import nodeResolve from 'rollup-plugin-node-resolve'
import commonjs from 'rollup-plugin-commonjs'
import { terser } from 'rollup-plugin-terser'
import coffee from 'rollup-plugin-coffee-script'
import livereload from 'rollup-plugin-livereload'
const production = !process.env.ROLLUP_WATCH;
@dux
dux / _threaded.rb
Last active July 31, 2021 22:02
Simple threaded/promisse-like runner for Ruby
class Thread::Simple
attr_accessor :que, :size, :named
def initialize size: 5, sleep: 0.01
@sync = Mutex.new
@sleep = sleep
@size = size
@que = []
@threds = []
@named = {}
@dux
dux / demo.bash
Last active November 4, 2018 17:10
CLI demo builder, useful for asciinema.org - demo > https://asciinema.org/a/IanaNAq9CDKvUg7dweqxzhoAV
# asciinema rec --overwrite tmp/demo.case
# bash demo.bash
type_and_run () {
printf '\033[01;37m@app $\033[0m '
for ((i=0; i<${#1}; i++)); do echo "after `jot -r 1 20 60`" | tclsh; printf "${1:$i:1}"; done;
echo;
$1;
echo;
}
# Defines class variable
def Object.class_attribute name, default=nil, &block
raise ArgumentError.new('name must be symbol') unless name.class == Symbol
ivar = "@cattr_#{name}"
instance_variable_set ivar, block || default
define_singleton_method(name) do |arg=:_undefined|
# define and set if argument given
@dux
dux / folder_model.rb
Last active October 28, 2018 16:24
Foder and Generic models
# frozen_string_literal: true
class FolderModel
class << self
def find(key)
new(key)
end
def all
@dux
dux / class_callbacks.rb
Last active October 29, 2018 14:14
Simple and effective class callbacks
# Rails style callbacks
# for controllers, execute from AppController to MainController
# class_callback :before
# before do
# ...
# end
# before :method_name
# instance = new
# Object.class_callback :before, instance
@dux
dux / _set_media_body_class.coffee
Last active October 28, 2018 16:29
Sets media classes to HTML body tag. Example for mobile <body class="mobile not-tablet not-desktop">
# call just after body tag or $ -> window.MediaBodyClass.init()
# sets body class for
# mobile to "mobile not-tablet not-desktop"
# tablet to "not-mobile tablet not-desktop"
# desktop to "not-mobile not-tablet desktop"
@MediaBodyClass =
sizes: [['mobile'], ['tablet', 767], ['desktop', 1023]]
init: ->
@dux
dux / example.rb
Last active June 10, 2018 09:35
Html menu builder helper
menu = HtmlMenu.new request.path
menu.add 'Home', '/'
menu.add 'People', '/people', lambda { |path| path.index('peor') }
menu.add 'Jobs', '/jbos'
menu.to_a -> [["Home", "/", false], ["People", "/people", true], ["Jobs", "/jbos", false]]
menu.to_h -> [{:name=>"Home", :path=>"/", :active=>true}, {:name=>"People", :path=>"/people", :active=>false}, {:name=>"Jobs", :path=>"/jbos", :active=>false}]