closestfib 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/VERSION +1 -1
  2. data/lib/closestfib.rb +15 -12
  3. data/test/test_closestfib.rb +1 -1
  4. metadata +54 -60
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.0.3
data/lib/closestfib.rb CHANGED
@@ -7,19 +7,19 @@ module ClosestFib
7
7
  class Error < RuntimeError
8
8
  end
9
9
 
10
- class Fibs
10
+ class Fibs
11
11
  @@fibs = [0,1]
12
12
 
13
13
  class << self
14
14
  def fib n
15
- if n > 1
16
- while @@fibs[n] == nil do
17
- next_fib
18
- end
19
- end
15
+ next_fib while ! @@fibs[n]
20
16
  @@fibs[n]
21
17
  end
22
18
 
19
+ def next_fib
20
+ @@fibs[@@fibs.length] = last_fib + prev_fib
21
+ end
22
+
23
23
  def last_fib
24
24
  @@fibs[@@fibs.length-1]
25
25
  end
@@ -28,20 +28,23 @@ module ClosestFib
28
28
  @@fibs[@@fibs.length-2]
29
29
  end
30
30
 
31
- def next_fib
32
- @@fibs[@@fibs.length] = prev_fib + last_fib
31
+ def all
32
+ @@fibs
33
+ end
34
+
35
+ def flush
36
+ @@fibs = [0,1]
33
37
  end
34
38
  end
35
39
  end
36
40
 
37
41
  def self.closestfib x
38
- raise(Error, "no fibonacci numbers are negative") if x <= 0
42
+ raise(Error, "no Fibonacci numbers are less than 0") if x <= 0
39
43
  n=0
40
- while (Fibs.fib n) < x do
41
- n += 1
42
- end
44
+ n+=1 while (Fibs.fib n) < x
43
45
  Fibs.fib n-1
44
46
  end
47
+
45
48
  end
46
49
 
47
50
  class Fixnum
@@ -10,7 +10,7 @@ class TestClosestFib < Test::Unit::TestCase
10
10
  assert_equal( 89, 99.closest_fibonacci )
11
11
  assert_equal( 956722026041, 956722026042.closest_fibonacci )
12
12
  ex = assert_raise(ClosestFib::Error) { 0.closest_fibonacci }
13
- assert_match( /no fibonacci numbers are negative/, ex.message )
13
+ assert_match( /no Fibonacci numbers are less than 0/, ex.message )
14
14
  end
15
15
  end
16
16
 
metadata CHANGED
@@ -1,82 +1,79 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: closestfib
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
4
5
  prerelease:
5
- version: 0.0.2
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Richard Nygord
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-09-10 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2011-11-16 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: shoulda
17
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &2164646140 !ruby/object:Gem::Requirement
18
17
  none: false
19
- requirements:
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
23
22
  type: :development
24
23
  prerelease: false
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
24
+ version_requirements: *2164646140
25
+ - !ruby/object:Gem::Dependency
27
26
  name: bundler
28
- requirement: &id002 !ruby/object:Gem::Requirement
27
+ requirement: &2164645660 !ruby/object:Gem::Requirement
29
28
  none: false
30
- requirements:
29
+ requirements:
31
30
  - - ~>
32
- - !ruby/object:Gem::Version
31
+ - !ruby/object:Gem::Version
33
32
  version: 1.0.0
34
33
  type: :development
35
34
  prerelease: false
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
35
+ version_requirements: *2164645660
36
+ - !ruby/object:Gem::Dependency
38
37
  name: jeweler
39
- requirement: &id003 !ruby/object:Gem::Requirement
38
+ requirement: &2164645180 !ruby/object:Gem::Requirement
40
39
  none: false
41
- requirements:
40
+ requirements:
42
41
  - - ~>
43
- - !ruby/object:Gem::Version
42
+ - !ruby/object:Gem::Version
44
43
  version: 1.6.4
45
44
  type: :development
46
45
  prerelease: false
47
- version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
46
+ version_requirements: *2164645180
47
+ - !ruby/object:Gem::Dependency
49
48
  name: rcov
50
- requirement: &id004 !ruby/object:Gem::Requirement
49
+ requirement: &2164644700 !ruby/object:Gem::Requirement
51
50
  none: false
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- version: "0"
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
56
55
  type: :development
57
56
  prerelease: false
58
- version_requirements: *id004
59
- - !ruby/object:Gem::Dependency
57
+ version_requirements: *2164644700
58
+ - !ruby/object:Gem::Dependency
60
59
  name: rdoc
61
- requirement: &id005 !ruby/object:Gem::Requirement
60
+ requirement: &2164644200 !ruby/object:Gem::Requirement
62
61
  none: false
63
- requirements:
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: "0"
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
67
66
  type: :development
68
67
  prerelease: false
69
- version_requirements: *id005
68
+ version_requirements: *2164644200
70
69
  description: Adds closest_fibonacci to Fixnum and Bignum
71
70
  email: rvnygord@yahoo.com
72
71
  executables: []
73
-
74
72
  extensions: []
75
-
76
- extra_rdoc_files:
73
+ extra_rdoc_files:
77
74
  - LICENSE.txt
78
75
  - README.rdoc
79
- files:
76
+ files:
80
77
  - .document
81
78
  - Gemfile
82
79
  - LICENSE.txt
@@ -87,34 +84,31 @@ files:
87
84
  - test/helper.rb
88
85
  - test/test_closestfib.rb
89
86
  homepage: http://github.com/RichNygord/closestfib
90
- licenses:
87
+ licenses:
91
88
  - MIT
92
89
  post_install_message:
93
90
  rdoc_options: []
94
-
95
- require_paths:
91
+ require_paths:
96
92
  - lib
97
- required_ruby_version: !ruby/object:Gem::Requirement
93
+ required_ruby_version: !ruby/object:Gem::Requirement
98
94
  none: false
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- hash: 314006893
103
- segments:
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ segments:
104
100
  - 0
105
- version: "0"
106
- required_rubygems_version: !ruby/object:Gem::Requirement
101
+ hash: 369767982031233074
102
+ required_rubygems_version: !ruby/object:Gem::Requirement
107
103
  none: false
108
- requirements:
109
- - - ">="
110
- - !ruby/object:Gem::Version
111
- version: "0"
104
+ requirements:
105
+ - - ! '>='
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
112
108
  requirements: []
113
-
114
109
  rubyforge_project:
115
- rubygems_version: 1.8.10
110
+ rubygems_version: 1.8.11
116
111
  signing_key:
117
112
  specification_version: 3
118
113
  summary: Finds the closest fibonacci < n
119
114
  test_files: []
120
-