fizz-buzz 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +0 -0
- data/VERSION +1 -1
- data/fizz-buzz.gemspec +2 -2
- data/lib/fizz-buzz.rb +17 -11
- data/test/test_fizz-buzz.rb +11 -0
- metadata +11 -11
data/README.rdoc
CHANGED
File without changes
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/fizz-buzz.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{fizz-buzz}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kerri Miller"]
|
12
|
-
s.date = %q{2011-11-
|
12
|
+
s.date = %q{2011-11-26}
|
13
13
|
s.description = %q{I got sick of doing this test in interviews, so next time someone asks me to do so, I'm going to instead hand them a business card with a URL for this gem on it.}
|
14
14
|
s.email = %q{kerrizor@kerrizor.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/fizz-buzz.rb
CHANGED
@@ -1,8 +1,12 @@
|
|
1
1
|
class FizzBuzz
|
2
|
-
|
2
|
+
|
3
|
+
# Returns an array solving the classic 1 to 100 FizzBuzz problem.
|
4
|
+
def crunch(start=1, stop=100)
|
5
|
+
return nil unless start < stop
|
6
|
+
|
3
7
|
return_values = Array.new
|
4
8
|
|
5
|
-
(
|
9
|
+
(start..stop).each do |n|
|
6
10
|
if n.fizzbuzz?
|
7
11
|
return_values << "FizzBuzz"
|
8
12
|
elsif n.buzz?
|
@@ -18,23 +22,25 @@ class FizzBuzz
|
|
18
22
|
end
|
19
23
|
end
|
20
24
|
|
25
|
+
|
26
|
+
|
21
27
|
class Fixnum
|
28
|
+
|
29
|
+
# For testing the Fizz-, Buzz-, or Fizzbuzz-ness of a Fixnum
|
30
|
+
# 3.fizz? # => true
|
31
|
+
# 5.buzz? # => nil
|
32
|
+
# 15.fizzbuzz? # => true
|
33
|
+
|
22
34
|
def fizz?
|
23
|
-
if (self % 3) == 0
|
24
|
-
return :true
|
25
|
-
end
|
35
|
+
return true if (self % 3) == 0
|
26
36
|
end
|
27
37
|
|
28
38
|
def buzz?
|
29
|
-
if (self % 5) == 0
|
30
|
-
return :true
|
31
|
-
end
|
39
|
+
return true if (self % 5) == 0
|
32
40
|
end
|
33
41
|
|
34
42
|
def fizzbuzz?
|
35
|
-
if (self % 15) == 0
|
36
|
-
return :true
|
37
|
-
end
|
43
|
+
return true if (self % 15) == 0
|
38
44
|
end
|
39
45
|
|
40
46
|
end
|
data/test/test_fizz-buzz.rb
CHANGED
@@ -22,6 +22,17 @@ class TestFizzBuzz < MiniTest::Unit::TestCase
|
|
22
22
|
end
|
23
23
|
|
24
24
|
|
25
|
+
def test_crunch_with_range
|
26
|
+
assert_equal 14, @fizzbuzz.crunch(4,17).length
|
27
|
+
assert_equal "Fizz", @fizzbuzz.crunch(4,17)[2]
|
28
|
+
assert_equal "4", @fizzbuzz.crunch(4,17)[0].to_s
|
29
|
+
assert_equal "Buzz", @fizzbuzz.crunch(4,17)[1]
|
30
|
+
assert_equal "FizzBuzz", @fizzbuzz.crunch(4,17)[11]
|
31
|
+
|
32
|
+
assert_nil @fizzbuzz.crunch(44,17)
|
33
|
+
end
|
34
|
+
|
35
|
+
|
25
36
|
def test_will_it_fizz
|
26
37
|
assert_respond_to 4, :fizz?
|
27
38
|
assert 3.fizz?
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fizz-buzz
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,12 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-11-
|
12
|
+
date: 2011-11-26 00:00:00.000000000 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: shoulda
|
17
|
-
requirement: &
|
17
|
+
requirement: &2152149300 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *2152149300
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: bundler
|
28
|
-
requirement: &
|
28
|
+
requirement: &2152148820 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 1.0.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *2152148820
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: jeweler
|
39
|
-
requirement: &
|
39
|
+
requirement: &2152148340 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: 1.6.4
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *2152148340
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: rcov
|
50
|
-
requirement: &
|
50
|
+
requirement: &2152147860 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,7 +55,7 @@ dependencies:
|
|
55
55
|
version: '0'
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *2152147860
|
59
59
|
description: I got sick of doing this test in interviews, so next time someone asks
|
60
60
|
me to do so, I'm going to instead hand them a business card with a URL for this
|
61
61
|
gem on it.
|
@@ -93,7 +93,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
93
93
|
version: '0'
|
94
94
|
segments:
|
95
95
|
- 0
|
96
|
-
hash:
|
96
|
+
hash: 1542606764575001063
|
97
97
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
98
|
none: false
|
99
99
|
requirements:
|