Skip to content

Instantly share code, notes, and snippets.

View NikitaAvvakumov's full-sized avatar

Nikita Avvakumov NikitaAvvakumov

View GitHub Profile
class UserMailer < ActionMailer::Base
default from: 'notify@example.com'
def welcome_email(user)
@user = user
@url = 'https://myapp.herokuapp.com'
mail(to: @user.email, subject: 'Welcome to myapp.')
end
end
@NikitaAvvakumov
NikitaAvvakumov / sessions_helper.rb
Created February 22, 2014 07:41
sessions_helper.rb from Ruby on Rails Tutorial
module SessionsHelper
def sign_in(user)
remember_token = User.new_remember_token
cookies.permanent[:remember_token] = remember_token
user.update_attribute(:remember_token, User.encrypt(remember_token))
self.current_user = user
end
def current_user=(user)
# This file should contain all the record creation needed to seed the database with its default values.
# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
#
# Examples:
#
# cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
# Mayor.create(name: 'Emanuel', city: cities.first)
Teacher.create(name: 'Albus Dumbledore',
email: 'dumbledore@hogwarts.info',
@NikitaAvvakumov
NikitaAvvakumov / legacy_code_matches_province_validator.rb
Last active August 29, 2015 14:05
Proposed validator for legacy province codes for OSRA
# Spec is here: https://gist.github.com/3db3848deae0a3444a03.git
class LegacyCodeMatchesProvinceValidator < ActiveModel::Validator
def validate(record)
valid_matches = [['Damascus & Rif Dimashq', 11],
['Aleppo', 12],
['Homs', 13],
['Hama', 14],
['Latakia', 15],
['Deir Al-Zor', 16],
@NikitaAvvakumov
NikitaAvvakumov / legacy_code_matches_province_validator_spec.rb
Last active August 29, 2015 14:05
Spec for proposed validator for legacy province codes, OSRA
# Validator is here: https://gist.github.com/adc8cb0de0c6fa12dfb1.git
require 'rails_helper'
describe LegacyCodeMatchesProvinceValidator do
let(:test_class) do
Class.new do
include ActiveModel::Validations
attr_accessor :name
@NikitaAvvakumov
NikitaAvvakumov / osra_province.rb
Created September 1, 2014 09:25
OSRA Province & Partner
class Province < ActiveRecord::Base
validates :name, presence: true, uniqueness: true
validates :code, presence: true, uniqueness: true, inclusion: { in: 10..99 }
end
class Partner < ActiveRecord::Base
validates :name, presence: true, uniqueness: true
validates :province, presence: true
end
@NikitaAvvakumov
NikitaAvvakumov / sponsorship.rb
Created September 21, 2014 06:07
sponsor-orphan link
# config/routes.rb
post '/admin/sponsors/:sponsor_id/sponsorships/:orphan_id',
to: 'admin/sponsorships#create',
as: :admin_sponsorship_create
delete '/admin/sponsors/:sponsor_id/sponsorships/:orphan_id',
to: 'admin/sponsorships#destroy',
as: :admin_sponsorship_destroy
# app/admin/sponsorship.rb
@NikitaAvvakumov
NikitaAvvakumov / some_spec.rb
Created September 21, 2014 19:27
Limitation of Province codes
it 'adds up fast' do
puts "initial: #{Province.all.count}" # 0
create(:address)
puts "address: #{Province.all.count}" # 1 - belongs_to :province
create(:branch)
puts "branch: #{Province.all.count}" # 1
create(:organization)
puts "organization: #{Province.all.count}" # 1
create :orphan_sponsorship_status
puts "orphan_sponsorship_status: #{Province.all.count}" # 1
@NikitaAvvakumov
NikitaAvvakumov / orphan_osra_num.rb
Created October 3, 2014 09:32
Orphan OSRA number
# Solution 1
class Partner < ActiveRecord::Base
belongs_to :province
has_many :orphan_lists
delegate :code, to: :province, prefix: true
end
class Orphan < ActiveRecord::Base