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.
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: