Skip to content

Instantly share code, notes, and snippets.

#!/usr/bin/env bash
uninstall() {
list=`gem list --no-versions`
for gem in $list; do
gem uninstall $gem -aIx
done
gem list
gem install bundler
}
@AlexVPopov
AlexVPopov / polymorphic_fabricators.md
Last active August 29, 2015 14:24
How to define fabricators of models with polymorphic associations

Let's say you have the following models:

class Admin < ActiveRecord::Base
  has_one :login, as: :loginable
end

class User < ActiveRecord::Base
  has_one :login, as: :loginable
end
@AlexVPopov
AlexVPopov / Project Euler 3
Last active December 20, 2015 13:19
Project Euler 3
def FindLargestPrime(n)
return 1 if n == 1
prime_factor = 2
while prime_factor * prime_factor <= n do
if n % prime_factor == 0 then n /= prime_factor
else prime_factor += 1
end
end
n
end
@AlexVPopov
AlexVPopov / Project Euler 2
Last active December 20, 2015 13:29
Project Euler 2
fib1 = 1
fib2 = 2
sum = fib2
fib = 0
until (fib >= 4000000)
fib = fib1 + fib2
fib1 = fib2
fib2 = fib
sum += fib if fib.even?
@AlexVPopov
AlexVPopov / Project Euler 1
Last active December 20, 2015 13:29
Project Euler 1
Project Euler 1sum = 0
(1...1000).each do |num|
sum += num if num % 3 == 0 || num % 5 == 0
end
puts sum
@AlexVPopov
AlexVPopov / Project Euler 4
Last active December 21, 2015 22:59
Project Euler 4
def palindrome?(a)
a.to_s == a.to_s.reverse
end
def dev_by_3digit?(a)
999.downto(100) do |i|
if a % i == 0 && a / i < 999
return true
end
end
@AlexVPopov
AlexVPopov / Project Euler 5
Created September 24, 2013 11:55
Project Euler 5
def devisible?(num, limit)
devisible = true
limit.downto(1) do |i|
devisible = false if num % i != 0
break if !devisible
end
devisible
end
def smallest_multiple(limit)
@AlexVPopov
AlexVPopov / Project Euler 6a
Last active December 23, 2015 19:39
Project Euler 6a
def sum_of_squares(num)
(1..num).inject { |mem, var| mem + var ** 2 }
end
def square_of_sum(num)
sum = (1..num).inject { |mem, var| mem + var }
sum ** 2
end
p square_of_sum(100) - sum_of_squares(100)
@AlexVPopov
AlexVPopov / Project Euler 6b
Created September 24, 2013 12:34
Project Euler 6b
# Sum of first n numbers is n(n+1)/2
# Sum of squares of first n numbers is n(n+1)(2n + 1)/6
# Expanded form for sum ^ 2 - sum of squares = n^4/4+n^3/6-n^2/4-n/6
def formula(n)
(n ** 4) / 4 + (n ** 3) / 6 - (n ** 2) / 4 - n / 6
end
p formula(100)
@AlexVPopov
AlexVPopov / Project Euler 7
Created September 24, 2013 13:43
Project Euler 7
require 'prime'
primes = Prime.first 10001
p primes.last