Skip to content

Instantly share code, notes, and snippets.

@abrahamsangha
Created April 18, 2013 18:30
Show Gist options
  • Save abrahamsangha/5415084 to your computer and use it in GitHub Desktop.
Save abrahamsangha/5415084 to your computer and use it in GitHub Desktop.
def longest_palindrome(string)
max = string.length
palindrome = ""
0.upto(max) do |n|
n.upto(max) do |m|
chunk = string[n..m]
palindrome = chunk if chunk == chunk.reverse && chunk.size > palindrome.size
end
end
palindrome
end
class Architect < Struct.new(:name, :works); end;
{}.tap { |hash| each { |n| hash[yield(n)] = n }}
def initialize(arg)
@stack = arg
end
def pop(*n)
r = @stack.pop(*n)
r.is_a?(Array) ? r.reverse : r
end
def push(arg)
@stack.push(*arg) && true
end
def to_a
@stack
end
def twenty_one?(*args)
args.inject(:+) == 21
end
{}.tap do |result|
array.each { |e| result[e] ? result[e] += 1 : result[e] = 1 }
end
Encoding.find("US-ASCII")
class NilClass
def length
false
end
def reverse
false
end
end
([]) { |n, arr| arr << n.reverse if n && n.length.even? }
if m == :name
nam
elsif m == :race=
@race = args.first
elsif m == :race
@race.capitalize
elsif m == :age
agE
result = ""
result << "Fizz" if x % 3 == 0
result << "Buzz" if x % 5 == 0
result
[/^\d{10}$/, /^\d{3}-\d{4}$/, /^\(\d{3}\) \d{3}-\d{4}$/, /^\d{3}-\d{3}-\d{4}$/].any? { |expr| expr =~ num }
def self.[](*args)
new(*args)
end
def initialize(*args)
@memory = Hash[Hash[*args].map { |k, v| [k.to_sym, v] }]
end
def [](key)
@memory[key.to_sym]
end
def []=(key, value)
@memory[key.to_sym] = value
end
(self + args.flatten).sort {|a,b| a.to_i <=> b.to_i}
inject(0) do |mem, x|
mem += x if x > 50
mem
end
"#{link}?" << url_parameters.to_a.map do |pair|
pair.join('=')
end.join('&')
split(/,/, -2)
parsed = []
if date =~ (regexp = /(\d{2})-(\d{2})-(\d{4})/)
n = date.scan(regexp).flatten
parsed = [n[2], n[0], n[1]]
end
if date =~ (regexp = /(\w+) (\d{2}), (\d{4})/)
n = date.scan(regexp).flatten
parsed = [n[2], n[0][0..2], n[1]]
end
if date =~ (regexp = /(\d{4})-(\d{2})-(\d{2})/)
n = date.scan(regexp).flatten
parsed = [n[0], n[1], n[2]]
end
if date =~ (regexp = /(\d{1,})\/(\d{2})\/(\d{4})/)
n = date.scan(regexp).flatten
parsed = [n[2], n[0], n[1]]
end
Time.new(*parsed).strftime("%b %d, %Y")
def initialize(args)
@queue = args
end
def pop(n = 1)
result = @queue.shift(n)
return result[0] if result.size == 1
result
end
def push(args)
@queue.push(args).flatten! && true
end
def to_a
@queue
end
[true, false].sample
class String
def to_a
[self.upcase]
end
def to_ary
[self.downcase]
end
end
'chunky bacon'
sentence.split(/ /).map(&:reverse).join(' ')
->(n) {n.to_i % 2 == 1}
"#{n}".reverse.gsub(/(\d{3})/, '\0,').gsub(/,$/, '').reverse
gsub pattern, replace.gsub(/\\\d/, '\\\\\\0')
.nil? ? "Not Irish" : "Irish"
class BasicObject
def ==(n)
true
end
end
even_check = lambda { |a, b=0| true if (a.even? && b.even?) }
(self.lower_right.x - self.upper_left.x) * (self.lower_right.y - self.upper_left.y)
return 0 if n == 0
return 1 if n == 1
fibo_finder(n-1) + fibo_finder(n-2)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment