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 / 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
@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 / 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 / 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 / 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 / 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 / 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 / greed_dice_game.rb
Created January 4, 2011 18:47
My implementation of greed dice game for Ruby Koans
class Roll
FIFTY_POINTS = 50
HUNDRED_POINTS = 100
THOUSAND_POINTS = 1000
def initialize(rolls)
@ocurrences = ocurrences_of_each_number(rolls)
end
def score
@jacegu
jacegu / modules2.rb
Created January 18, 2011 18:06
Another example of ruby modules, this time to illustrate static and non static methods inside a module.
module ModuleExample
def self.hello_world
puts 'This is a static hello world from a module'
end
def hello_world
puts 'This is a non static hello world from a module'
end
end
@jacegu
jacegu / namespace.rb
Created January 18, 2011 18:09
An example to show the use of :: the namespace resolving operator in ruby.
class MyClass
CONSTANT = 'hello world'
end
puts MyClass::CONSTANT
begin
puts MyClass.CONSTANT
rescue NoMethodError
puts 'With dot notation we are sending a message to class MyClass'