Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View tokenvolt's full-sized avatar

Alex Khrustalev tokenvolt

View GitHub Profile
@tokenvolt
tokenvolt / simple_form_bootstrap3.rb
Last active November 2, 2023 11:55
Bootstrap 3 simple form initializer
inputs = %w[
CollectionSelectInput
DateTimeInput
FileInput
GroupedCollectionSelectInput
NumericInput
PasswordInput
RangeInput
StringInput
TextInput
{
"window.zoomLevel": -1,
"window.title": "${activeEditorLong}${separator}${rootName}",
"workbench.iconTheme": "vscode-great-icons",
"editor.tabSize": 2,
"files.trimTrailingWhitespace": true,
"emmet.syntaxProfiles": {
"javascript": "jsx"
},
"files.associations": {
@tokenvolt
tokenvolt / createHierarchy.js
Created April 9, 2020 19:43
Create Hierarchy challange
const TOPIC = "topic"
const CATEGORY = "category"
const typeName = levels => (levels >= 3 ? TOPIC : CATEGORY)
const createNode = ({ perLevel, levels, remainingLevels }) => {
if (remainingLevels === 0) return { type: TOPIC, children: [] }
return {
type: typeName(levels - remainingLevels),
@tokenvolt
tokenvolt / asyncMessage.js
Created October 22, 2017 00:34
Example of resetted promise
function asyncMessage(msg) {
let deferred
const onMessage = function (msg) {
if (deferred) {
deferred.resolve(msg)
deferred = null
}
}
@tokenvolt
tokenvolt / vanillajs-ajax.js
Last active December 6, 2016 19:29
VanillaJS ajax wrapper.
// http://stackoverflow.com/questions/8567114/how-to-make-an-ajax-call-without-jquery/18078705#18078705
var ajax = {};
ajax.xhr = function() {
try {
return new ActiveXObject('Msxml2.XMLHTTP')
} catch (e1) {
try {
return new ActiveXObject('Microsoft.XMLHTTP')
} catch (e2) {
// Run like this:
// cd client && webpack-dev-server --config webpack.development.config.js --hot --colors --progress --inline
var config = require("./webpack.base.config");
var webpack = require("webpack");
var path = require("path");
var autoprefixer = require('autoprefixer');
var precss = require('precss')
var autoprefixer = require('autoprefixer');
@tokenvolt
tokenvolt / redux-utils.js
Created August 23, 2016 09:14
Redux action types generator
import R from 'ramda'
/*
Example
createAsyncActionType('LOGIN')
will return an object
{
@tokenvolt
tokenvolt / sidekiq_colorful_logger.rb
Created September 18, 2014 12:07
Sidekiq Colorful Logger Formatter
Sidekiq.logger.formatter = proc do |severity, time, context, message|
colorized_time = "#{time.utc.iso8601}".colorize(:cyan)
case severity
when 'INFO'
colorized_severity = "#{severity}:".colorize(:green)
"#{colorized_time} #{Process.pid} TID-#{Thread.current.object_id.to_s(36)}#{context} #{colorized_severity} #{message}\n"
when 'ERROR'
colorized_severity = "#{severity}:".colorize(:red)
"#{colorized_time} #{Process.pid} TID-#{Thread.current.object_id.to_s(36)}#{context} #{colorized_severity} #{message}\n"
@tokenvolt
tokenvolt / gist:0df491c4c144c48bae46
Created March 2, 2016 11:54
Patial build for ramda.js for endpoint
./scripts/build -- src/pick.js src/equals.js src/isEmpty.js src/curry.js src/omit.js src/merge.js src/append.js > dist/ramda.custom.js
@tokenvolt
tokenvolt / endpoint.js
Created January 31, 2016 15:29
REST endpoint generators
import fetch from 'isomorphic-fetch'
import { camelizeKeys } from 'humps'
import R from 'ramda'
import { normalize, arrayOf } from 'normalizr'
import Path from 'path-parser'
import { encode } from 'querystring'
import pluralize from 'pluralize'
import { playlistSchema } from 'schemas'
import { assocUid, mapValues } from 'utils/helpers'
import cuid from 'cuid'