Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fase 1 completada en Ruby #69

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions ialcazar/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
He hecho las especificaciones de dos formas:
- fizzbuzz_spec.rb: contiene una versión sencilla de especificaciones utilizando it. El problema es que si se produce algún error en alguno de los ejemplos de la especificación las salida por pantalla no es muy clara.

- fizzbuzz2_spec.rb: Es otra solución utilizando contextos. Para cada escenario generamos un contexto. De esta forma la salida de rspec es mas clara. Si se produce algún error por la salida, tendrmeos mas claro el ejemplo que falla.
1 change: 1 addition & 0 deletions ialcazar/autotest/discover.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Autotest.add_discovery{"rspec2"}
29 changes: 29 additions & 0 deletions ialcazar/lib/fizzbuzz.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
class Fixnum
private

def divisible_por_tres?
self % 3 == 0
end

def divisible_por_cinco?
self % 5 == 0
end

def contiene_un_tres?
self.to_s.include? '3'
end

def contiene_un_cinco?
self.to_s.include? '5'
end

public

def fizzbuzz
return "FizzBuzz" if divisible_por_tres? and divisible_por_cinco?
return "Fizz" if divisible_por_tres? or contiene_un_tres?
return "Buzz" if divisible_por_cinco? or contiene_un_cinco?
self
end

end
4 changes: 4 additions & 0 deletions ialcazar/lib/fizzbuzz_program.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
require "fizzbuzz"
(1..100).each do |n|
puts n.fizzbuzz
end
33 changes: 33 additions & 0 deletions ialcazar/spec/fizzbuzz2_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
require 'fizzbuzz'

describe "FizzBuzz" do
context "Un numero es Fizz si es divisible por 3." do
[3,6,9,12].each do |n|
it "El #{n} es 'Fizz'" do
n.fizzbuzz.should == "Fizz"
end
end
end

context "Un numero es Fizz si contiene algun 3." do
[63,333,5986545543].each do |n|
it "El #{n} es 'Fizz'" do
n.fizzbuzz.should == "Fizz"
end
end
end
context "Un numero es Buzz si es divisible por 5." do
[5,10,20,25].each do |n|
it "El #{n} es 'Buzz'" do
n.fizzbuzz.should == "Buzz"
end
end
end
context "Un numero es FizzBuzz si es divisible por 3 y 5." do
[15,30,45,60].each do |n|
it "El #{n} es 'FizzBuzz'" do
n.fizzbuzz.should == "FizzBuzz"
end
end
end
end
32 changes: 32 additions & 0 deletions ialcazar/spec/fizzbuzz_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
require 'fizzbuzz'
describe "Kata FizzBuzz" do
it "Un numero es Fizz si es divisible entre 3" do
[3,6,9,12].each do |n|
n.fizzbuzz.should == "Fizz"
end
end

it "Un numero es Fizz si contiene un 3" do
[33,123,322,53].each do |n|
n.fizzbuzz.should == "Fizz"
end
end
it "Un numero es Buzz si es divisible entre 5" do
[5,10,20,25].each do |n|
n.fizzbuzz.should == "Buzz"
end
end

it "Un numero es Buzz si contiene un 5" do
[9550,125,5515].each do |n|
n.fizzbuzz.should == "Buzz"
end
end

it "Un numero es FizzBuzz si es divisible entre 3 y 5" do
[15,30].each do |n|
n.fizzbuzz.should == "FizzBuzz"
end
end

end