Skip to content

Instantly share code, notes, and snippets.

@cfleschhut
Created November 27, 2011 13:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cfleschhut/1397582 to your computer and use it in GitHub Desktop.
Save cfleschhut/1397582 to your computer and use it in GitHub Desktop.
Ruby Snippets
# Ruby classes
# Class inheritance
class Word < String
def palindrome?
self == self.reverse
end
end
s = Word.new("level")
puts s.length
puts s.palindrome?
puts s.class.superclass.superclass.superclass
# Modifying built-in classes
class String
def palindrome?
self == self.reverse
end
end
puts "deified".palindrome?
class String
def shuffle
self.split("").shuffle.join
end
end
puts "foobar".shuffle
# # Blocks
#
# (1..5).each { |i| puts i * 2 }
#
# (1..5).each do |num|
# puts num * 2
# end
#
# 3.times { puts "hello world" }
#
# (1..5).map { |i| puts i**2 }
#
# %w[a b c].map { |char| puts char.upcase }
#
# puts ("a".."z").to_a.shuffle[0..7].join
#
#
# # Hashes & Symbols
#
# puts user = { "first_name" => "foo", "last_name" => "bar" }
#
# user = { :name => "foobar", :email => "foobar@example.com" }
# puts user[:email]
#
# params = {}
# params[:user] = user
# puts params[:user][:email]
#
# flash = { :success => "it worked!", :error => "it failed." }
# flash.each do |key, value|
# puts "key #{key.inspect} has value #{value.inspect}"
# end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment