Skip to content

Instantly share code, notes, and snippets.

View jacegu's full-sized avatar
🦖
Juggling shipping and parenting

Javier Acero jacegu

🦖
Juggling shipping and parenting
View GitHub Profile
@jacegu
jacegu / fizzbuzz4.rb
Created December 29, 2010 21:26
Yet another version of fizz buzz kata using open classes
class Fixnum
def divisible_by_3?
self % 3 == 0
end
def divisible_by_5?
self % 5 == 0
end
end
@jacegu
jacegu / fizzbuzz3.rb
Created December 29, 2010 21:20
Another fizzbuzz kata solution with improved readability and OO design
class FizzBuzzGame
FIZZ = 'fizz'
BUZZ = 'buzz'
FIZZBUZZ = 'fizzbuzz'
def answer_for(number)
return FIZZBUZZ if number.divisible_by_3? and number.divisible_by_5?
return FIZZ if number.divisible_by_3?
return BUZZ if number.divisible_by_5?
number.value
@jacegu
jacegu / fizzbuzz2.rb
Created December 29, 2010 20:53
Second solution for fizzbuzz kata with improved readability
class FizzBuzzGame
FIZZ = 'fizz'
BUZZ = 'buzz'
FIZZBUZZ = 'fizzbuzz'
def answer_for(number)
return FIZZBUZZ if divisible_by_3?(number) and divisible_by_5?(number)
return FIZZ if divisible_by_3?(number)
return BUZZ if divisible_by_5?(number)
number
@jacegu
jacegu / fizzbuzz1.rb
Created December 29, 2010 20:50
FizzBuzz kata solution for "lazy" developers
class FizzBuzzGame
def answer_for(number)
return 'fizzbuzz' if number % 3 == 0 and number % 5 == 0
return 'fizz' if number % 3 == 0
return 'buzz' if number % 5 == 0
number
end
end
@jacegu
jacegu / crazy_fixnum.rb
Created December 6, 2010 10:32
A little example to show how *, +, -, / and so on are just methods
class Fixnum
def +(other)
self - other
end
def *(other)
self / other
end
def ==(other)
@jacegu
jacegu / my_string.rb
Created December 3, 2010 15:03
More about open classes
class String
def to_camel_case
return self if self == ""
words = self.split
words[1..words.size].each { |word| word.capitalize! }
words.join('')
end
def to_snake_case
self.downcase.gsub(/\s/, '_')
@jacegu
jacegu / try_my_dog.rb
Created December 3, 2010 14:47
A little example about open Classes in Ruby
class Dog
def bark
puts 'guau'
end
end
def try_my_dog
dog = Dog.new
dog.bark
begin