Skip to content

Instantly share code, notes, and snippets.

@dobryakov
dobryakov / array_slicer.rb
Created August 8, 2018 10:38
array slicer by summary length of elements
arr = ['Эспоркам', 'Лаваж Маткевича', 'дермазол мазь', 'фуродолизон', 'Мазь от ворикоза', 'литолизин', 'Дженерик-левитра', 'бесопролол тева', 'вальпорат', 'Гестомакс', 'вазобра', 'деметилсулбфаксид', 'Неметалла', 'Иглы ново фвйн', 'фиксир', 'дипросалик 30', 'Бозирон ас 2', 'Дешёвый аналог тиаксевазин', 'воловир', 'де нол', 'Лориста,', 'Иикролакс', 'Тест-полоски ван тач ультра', 'testests', 'Йодомарин', 'Shop', 'Гексенал', 'Димексида', 'Корвамин', 'Марганцовокислый', 'ХлорофилиптХло', 'катария', 'Гептопюр', 'Метабалаза', 'изикар', 'ля рош spf', 'Телиста', 'спироналактон 50мг', 'канимицин', 'подмышечники', 'крем от солнеца', 'ксалинол гель', 'антибиотик капли', 'jrjvbwby', 'Масопатийный сбор', 'bioretin', 'шампунь кофеин', 'afcnev', 'бифидум бик', 'ОРУНГОМИН', 'Non stop', 'Биоойл масло', 'Целеконивее подушечки между пальцам', 'бензимидазолы', 'Солнцезащитный флюид', 'валидол в таблетках', 'Юниобин', 'мильдронат', 'голова', 'Бронхол', 'Витамин B 12', 'ESTHETIC HOU', 'Ацикловир ахрихин', 'Эдас 101', '95804385
{
"comments":[
{
"id": 1,
"body": "comment 1",
"likes": [
{
"id": 1,
"user": {
"id": 11,
@dobryakov
dobryakov / backend-app.conf
Last active September 30, 2016 12:08
Hide AWS S3 endpoint of your static content (Rails+Nginx example)
server {
valid_referers none blocked frontend.yourdomain.com *.frontend.yourdomain.com;
if ($invalid_referer) {
return 403;
}
map $http_x_project_private $prevent_hack {
default "1";
'SecretHeader' "0";
if (-f /projects/abc/public/maintenance.html) {
return 503;
}
error_page 503 @maintenance;
location @maintenance {
root /projects/abc/public;
rewrite ^(.*)$ /maintenance.html break;
}
@dobryakov
dobryakov / puma-dev.ini
Created February 26, 2016 13:51
supervisord puma config example
[program:puma-dev]
command=/usr/local/rvm/gems/ruby-2.2.0/bin/puma -b unix:///tmp/meetplay-dev.sock -e development -t 2:8
process_name=%(program_name)s
numprocs=1
directory=/home/dg/projects/meetplay
umask=022
priority=999
autostart=true
autorestart=unexpected
startsecs=10
@dobryakov
dobryakov / meetplay_events_observer.rb
Created February 4, 2016 16:37
delayed jobs observer (assert_triggering)
def initialize
@events = {}
ActiveSupport::Notifications.subscribe do |*args|
event_name = args[0]
payload = args[4]
@events[event_name] = {} if @events[event_name].nil?
@events[event_name]['pointer'] = 0 if @events[event_name]['pointer'].nil?
@events[event_name]['history'] = [] if @events[event_name]['history'].nil?
@dobryakov
dobryakov / .bashrc
Created January 18, 2016 11:22
Linux shell colors: red root, green user
PS1='\[\e[1;32m\][\u@\h \W]\$\[\e[0m\] '
@dobryakov
dobryakov / _sign_up.html.erb
Created January 18, 2016 11:15
rails time_zone_select with full timezone names (TZInfo)
<%= time_zone_select(:user, :time_zone, nil, { model: TZInfo::Timezone, default: 'Europe/Moscow' } ) %>
@dobryakov
dobryakov / meet.rb
Last active November 25, 2015 13:32
@items.to_json(:user => current_user)
attr_accessor :current_user
def serializable_hash(options={})
options = {} if options.nil?
self.current_user = options[:user]
options[:methods] ||= [ :participated_friends_ids ]
super(options)
end
def participated_friends_ids(user = self.current_user)
@dobryakov
dobryakov / url_sanitizer.rb
Created November 4, 2015 13:45
flexible url sanitizer
module UrlSanitizer
extend ActiveSupport::Concern
require 'uri'
# this concern creates a 'virtual' method, for example 'site_url=(arg)',
# which validates and sanitizes url by metaprogramming magic
# usage in model:
# include UrlSanitizer