Skip to content

Instantly share code, notes, and snippets.

View morr's full-sized avatar
🏠
Working from home

Andrey Sidorov morr

🏠
Working from home
View GitHub Profile
# encoding: utf-8
class Recommendations::Metrics::Svd < Recommendations::Metrics::MetricBase
def initialize(klass, svd)
@klass = klass
@svd = svd
end
def compare(user_id, user_rates, sampler_id, sampler_rates)
(@svd.user_ids.include?(sampler_id) ? @svd.rank(user_rates)[sampler_id] : nil) || 0
end
class Svd < ActiveRecord::Base
Full = 'full'
Partial = 'partial'
serialize :lsa
serialize :entry_ids
serialize :user_ids
attr_accessible :scale, :kind
# encoding: utf-8
class ProxyTest
SuccessConfirmationMessage = "test_passed"
TestPage = "/proxy_test"
WhatIsMyIpPage = "/what_is_my_ip"
def initialize(app)
@app = app
.l-topics {
$total-columns: 12;
$column-width: 54px;
$gutter-width: 30px;
$grid-padding: 10px;
.page {
@include container;
aside {
@include span-columns(3 omega, $total-columns);
@morr
morr / gist:dfe49324d53112d2a234
Last active December 21, 2015 20:59
Требования к вёрстке

У нас в проекте вся вёрстка из сделанного вами макета будет переводиться из html в slim (http://slim-lang.com/), а css стили в sass (http://sass-lang.com/).

Общие требования

  1. Верстать дивами, без таблиц, без css фреймворков. Таблицы использовать только в случае, если надо сверстать таблицу.
  2. Мы используем при вёрстке независимые блоки по аналогии с БЭМ. Блоки именуем с префиксом b-.

Каждый блок помещается в отдельный файл. Префиксы для дочерних классов блока, как в оригинальном БЭМ, не используем (используем вложенные классы sass).

Используем лейауты с префиксом l- для каких-то верхних элементов, которые глобально определяют композицию страницы.

@morr
morr / gist:6461562
Last active December 22, 2015 10:49
config
sudo dpkg-reconfigure locales
sudo apt-get install openssl readline-common libc6-dev libssl-dev libmysql++-dev libsqlite3-dev make build-essential libssl-dev libreadline6-dev zlib1g-dev libyaml-dev
mkdir /tmp/ruby && cd /tmp/ruby
curl --progress ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz | tar xz
cd ruby-2.0.0-p247
./configure
make
describe 'backbone', js: true do
it 'success auth' do
visit new_user_registration_path
click_link 'Войдите'
fill_backbone_field '#auth .sign-in #user_email', user.email
fill_backbone_field '#auth .sign-in #user_password', user.password
page.evaluate_script "$('#auth .sign-in .submit').trigger('click')"
# shows flash
page.should have_selector '.flash.success'
@morr
morr / init.sh
Last active August 29, 2015 13:56
настройка osx для работы с rails проектом
# запустить app store
# установить xcode из апстора
# в консоли:
# homebrew
~ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
~ brew install curl
~ brew install libyaml
~ brew doctor
# исправить все проблемы, о которых сообщил brew-doctor
@morr
morr / cacher.rb
Last active August 29, 2015 13:57
module Cacher
def self.prepended target
target.send :define_singleton_method, :cache do |method|
Cacher.send :define_method, method do |*args|
instance_variable_get("@#{method}") || instance_variable_set("@#{method}", super(*args))
end
end
end
end
@morr
morr / active_dispatch_fix.rb
Created March 6, 2014 21:04
ActionController::BadRequest fix for specific locale
module ActionDispatch::Routing::RouteSet::DispatcherFix
def call env
params = env[ActionDispatch::Routing::RouteSet::PARAMETERS_KEY]
params.each do |key,value|
next unless value.respond_to? :valid_encoding?
next if value.valid_encoding?
russian = value.force_encoding 'cp1251'
params[key] = if russian.valid_encoding?
russian.encode 'utf-8'