Skip to content

Instantly share code, notes, and snippets.

View achempion's full-sized avatar
✍️
Writing software

Boris Kuznetsov achempion

✍️
Writing software
View GitHub Profile
@achempion
achempion / carrierwave_selectel.rb
Created November 14, 2018 20:37 — forked from leemour/carrierwave_selectel.rb
Carrierwave integration with Selectel using fog-openstack
CarrierWave.configure do |config|
if Rails.env.test? || Rails.env.cucumber?
config.storage = :file
config.enable_processing = false
else
config.asset_host = Rails.application.secrets.asset_host
config.fog_provider = 'fog/openstack'
config.fog_credentials = {
provider: 'OpenStack',
openstack_auth_url: 'https://api.selcdn.ru/v3',
@achempion
achempion / carrierwave.rb
Created November 14, 2018 20:37 — forked from kzaitsev/carrierwave.rb
Carrierwave + Selectel
CarrierWave.configure do |config|
if Rails.env.development? || Rails.env.test?
config.storage = :file
else
config.storage = :fog
config.fog_credentials = {
:provider => 'OpenStack',
:openstack_auth_url => 'https://auth.selcdn.ru/v1.0',
:openstack_username => Rails.application.secrets.openstack_username,
:openstack_api_key => Rails.application.secrets.openstack_api_key
alias gs='git status '
alias ga='git add '
alias gb='git branch '
alias gc='git commit'
alias gd='git diff'
alias gco='git checkout '
alias gp='git push '
alias gpf='git push --force '
alias gpr='git pull --rebase '
$ ->
$(document).on 'ajax:error', '.js-form-validation', (e, xhr, status, error) ->
$form = $(@)
resource_name = $form.attr('data-js-form-validation-resource')
$form.find('.field_with_errors').removeClass('field_with_errors')
$form.find('.error-message').removeClass('is_showed').text('')
setTimeout ->
$.each xhr.responseJSON, (key, value) ->
@achempion
achempion / gist:c0bdb0a173bd106de955
Created February 16, 2016 21:26
pfctl cheat sheet
# basic pfctl control
# ==
# Related: http://www.OpenBSD.org
# Last update: Tue Dec 28, 2004
# ==
# Note:
# this document is only provided as a basic overview
# for some common pfctl commands and is by no means
# a replacement for the pfctl and pf manual pages.
@achempion
achempion / i18n_builder_method.rb
Last active December 14, 2015 14:38
i18n builder method
def set_contents_builder model_obj
model_name = model_obj.class.name.downcase
accociation = model_obj.send("#{model_name}_contents").group_by {|content| content.lang}
if accociation['ru'].nil?
model_obj.send("#{model_name}_contents").build(lang: 'ru')
end
if accociation['en'].nil?
model_obj.send("#{model_name}_contents").build(lang: 'en')
end
end
@achempion
achempion / internalization_helper.rb
Created October 22, 2012 20:00
simple db localization
module InternalizationHelper
# let's imagine that some methods defined in your model like 'title_en' and 'title_ru' for different locales
# helper will create 'title' method depending on current I18n.locale
# Model.rb
# extend InternalizationHelper
# define_translations_for 'title', 'description', ...
def define_translations_for *methods
methods.each do |method_name|
@achempion
achempion / content_tag.js
Created October 14, 2012 14:15
Простой метод, позволяет создавать теги как с помощью рельсового метода `content_tag`
var content_tag;
content_tag = function(tag, content, params){
var tag, content, params, res;
var insert_params = '';
for(var key in params){
insert_params += ' '+key+'='+'"'+params[key]+'"';
}
if(content){
res = '<'+tag+insert_params+'>'+content+'</'+tag+'>';
} else {
#!/usr/bin/env bash
# This script prints out all of your Redis keys and their size in a human readable format
# Copyright 2013 Brent O'Connor
# License: http://www.apache.org/licenses/LICENSE-2.0
human_size() {
awk -v sum="$1" ' BEGIN {hum[1024^3]="Gb"; hum[1024^2]="Mb"; hum[1024]="Kb"; for (x=1024^3; x>=1024; x/=1024) { if (sum>=x) { printf "%.2f %s\n",sum/x,hum[x]; break; } } if (sum<1024) print "1kb"; } '
}
module Enumerable
class Lazy < Enumerator
def initialize(obj)
super() do |yielder|
obj.each do |val|
if block_given?
yield(yielder, val)
else
yielder << val