fizz-buzz 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
File without changes
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.3.0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{fizz-buzz}
8
- s.version = "0.2.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-20}
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 = [
@@ -1,8 +1,12 @@
1
1
  class FizzBuzz
2
- def crunch
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
- (1..100).each do |n|
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
@@ -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.2.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-20 00:00:00.000000000 -08:00
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: &2156283280 !ruby/object:Gem::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: *2156283280
25
+ version_requirements: *2152149300
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: bundler
28
- requirement: &2156282800 !ruby/object:Gem::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: *2156282800
36
+ version_requirements: *2152148820
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: jeweler
39
- requirement: &2156282320 !ruby/object:Gem::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: *2156282320
47
+ version_requirements: *2152148340
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: rcov
50
- requirement: &2156281840 !ruby/object:Gem::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: *2156281840
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: -3502492772257228668
96
+ hash: 1542606764575001063
97
97
  required_rubygems_version: !ruby/object:Gem::Requirement
98
98
  none: false
99
99
  requirements: