numbers_in_words 0.0.9 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +1 -0
- data/Manifest +1 -3
- data/Rakefile +2 -2
- data/lib/numbers.rb +33 -4
- data/lib/words.rb +136 -109
- data/numbers_in_words.gemspec +4 -4
- data/spec/numbers_in_words_spec.rb +8 -3
- data/spec/words_in_numbers_spec.rb +34 -1
- metadata +5 -8
- data/index_cyclo.html +0 -83
- data/lib/numbers_in_words.rb_cyclo.html +0 -100
- data/lib/words_in_numbers.rb_cyclo.html +0 -92
data/CHANGELOG
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
v0.1.0. Handles decimals
|
data/Manifest
CHANGED
@@ -1,14 +1,12 @@
|
|
1
|
+
CHANGELOG
|
1
2
|
Manifest
|
2
3
|
README
|
3
4
|
Rakefile
|
4
5
|
examples/display_numbers_in_words.rb
|
5
|
-
index_cyclo.html
|
6
6
|
init.rb
|
7
7
|
lib/numbers.rb
|
8
8
|
lib/numbers_in_words.rb
|
9
|
-
lib/numbers_in_words.rb_cyclo.html
|
10
9
|
lib/words.rb
|
11
|
-
lib/words_in_numbers.rb_cyclo.html
|
12
10
|
numbers_in_words.gemspec
|
13
11
|
spec/numbers_in_words_spec.rb
|
14
12
|
spec/words_in_numbers_spec.rb
|
data/Rakefile
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'rake'
|
3
3
|
require 'echoe'
|
4
|
-
Echoe.new('numbers_in_words','0.0
|
4
|
+
Echoe.new('numbers_in_words','0.1.0') do |e|
|
5
5
|
e.description = "#in_words method for integers and #in_numbers for strings"
|
6
|
-
e.summary = "Example: 123.in_words #=> \"one hundred and twenty three\", \"seventy-five\".in_numbers #=> 75"
|
6
|
+
e.summary = "Example: 123.in_words #=> \"one hundred and twenty three\", \"seventy-five point eight\".in_numbers #=> 75.8"
|
7
7
|
e.url = "http://rubygems.org/gems/numbers_in_words"
|
8
8
|
e.author = "Mark Burns"
|
9
9
|
e.email = "markthedeveloper@googlemail.com"
|
data/lib/numbers.rb
CHANGED
@@ -158,16 +158,41 @@ module NumbersInWords
|
|
158
158
|
return output
|
159
159
|
end
|
160
160
|
|
161
|
+
def handle_decimal value
|
162
|
+
if value.is_a? Float
|
163
|
+
int = value.to_i
|
164
|
+
decimal = value - int
|
165
|
+
return int.in_english + " point " + decimal_portion(decimal)
|
166
|
+
end
|
167
|
+
return nil
|
168
|
+
end
|
169
|
+
|
170
|
+
def decimal_portion decimal
|
171
|
+
decimal = decimal.to_s.split(".")[1]
|
172
|
+
digits = decimal.to_s.split //
|
173
|
+
out= digits.inject([]) {|out, digit|
|
174
|
+
out<< digit.to_i.in_english
|
175
|
+
out
|
176
|
+
}
|
177
|
+
out.join " "
|
178
|
+
|
179
|
+
end
|
180
|
+
|
161
181
|
def in_english
|
182
|
+
#decimals
|
183
|
+
d= handle_decimal(self)
|
184
|
+
return d unless d.nil?
|
185
|
+
|
186
|
+
|
162
187
|
number = self.to_i # make a copy
|
163
|
-
#
|
164
|
-
if number < 0
|
165
|
-
|
166
|
-
end
|
188
|
+
#negative numbers
|
189
|
+
return "minus " + (-number).in_english if number < 0
|
190
|
+
|
167
191
|
#handle 0-10
|
168
192
|
return DIGITS[number] if number < 10
|
169
193
|
return EXCEPTIONS[number] if EXCEPTIONS[number]
|
170
194
|
|
195
|
+
#longer numbers
|
171
196
|
output = ""
|
172
197
|
length = number.to_s.length
|
173
198
|
if length == 2 #20-99
|
@@ -206,3 +231,7 @@ end
|
|
206
231
|
class Bignum
|
207
232
|
include NumbersInWords
|
208
233
|
end
|
234
|
+
|
235
|
+
class Float
|
236
|
+
include NumbersInWords
|
237
|
+
end
|
data/lib/words.rb
CHANGED
@@ -64,133 +64,160 @@ module WordsInNumbers
|
|
64
64
|
"googol"=> 100
|
65
65
|
}
|
66
66
|
|
67
|
-
|
68
|
-
#
|
69
|
-
text = self.to_s
|
67
|
+
def strip_punctuation text
|
68
|
+
#ignore punctuation
|
70
69
|
text.downcase!
|
71
70
|
text.gsub! /[^a-z ]/, " "
|
72
71
|
to_remove = true
|
73
72
|
until to_remove.nil?
|
74
73
|
to_remove=text.gsub! " ", " " until to_remove.nil?
|
75
74
|
end
|
75
|
+
return text
|
76
|
+
end
|
77
|
+
|
78
|
+
def decimal_portion text
|
79
|
+
words = text.split " "
|
80
|
+
integers = word_array_to_integers words
|
81
|
+
decimal = "0." + integers.join()
|
82
|
+
decimal.to_f
|
83
|
+
end
|
76
84
|
|
85
|
+
def in_numbers
|
86
|
+
text = self.to_s
|
87
|
+
text = strip_punctuation text
|
88
|
+
#negative numbers
|
77
89
|
if text =~ /^minus /
|
78
90
|
return -1 * (text.gsub(/^minus /, "")).in_numbers
|
79
91
|
end
|
92
|
+
|
93
|
+
#easy single word case
|
80
94
|
word = word_to_integer(text)
|
81
95
|
return word unless word.nil?
|
96
|
+
|
97
|
+
#decimals
|
98
|
+
match = text.match(/\spoint\s/)
|
99
|
+
if match
|
100
|
+
integer = match.pre_match
|
101
|
+
integer = integer.in_numbers
|
102
|
+
|
103
|
+
decimal = match.post_match
|
104
|
+
decimal = decimal_portion(decimal)
|
105
|
+
return integer + decimal
|
106
|
+
end
|
107
|
+
|
108
|
+
#multiple word case
|
82
109
|
words = text.split " "
|
83
110
|
integers = word_array_to_integers words
|
84
111
|
|
85
112
|
i= parse_numbers(integers)
|
86
113
|
return i unless i.nil?
|
87
114
|
return nil
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
#Example
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
115
|
+
end
|
116
|
+
|
117
|
+
|
118
|
+
# Example: 364,895,457,898
|
119
|
+
#three hundred and sixty four billion eight hundred and ninety five million
|
120
|
+
#four hundred and fifty seven thousand eight hundred and ninety eight
|
121
|
+
#
|
122
|
+
#3 100 60 4 10^9, 8 100 90 5 10^6, 4 100 50 7 1000, 8 100 90 8
|
123
|
+
# memory answer
|
124
|
+
#x1. 3 add to memory because answer and memory are zero 3 0
|
125
|
+
#x2. memory * 100 (because memory<100) 300 0
|
126
|
+
#x3. 60 add to memory because memory > 60 360 0
|
127
|
+
#x3. 4 add to memory because memory > 4 364 0
|
128
|
+
#x4. multiply memory by 10^9 because memory < power of ten 364*10^9 0
|
129
|
+
#x5. add memory to answer (and reset)memory > 8 (memory pow of ten > 2) 0 364*10^9
|
130
|
+
#x6. 8 add to memory because not finished 8 ''
|
131
|
+
#x7. multiply memory by 100 because memory < 100 800 ''
|
132
|
+
#x8. add 90 to memory because memory > 90 890 ''
|
133
|
+
#x9. add 5 to memory because memory > 5 895 ''
|
134
|
+
#x10. multiply memory by 10^6 because memory < power of ten 895*10^6 ''
|
135
|
+
#x11. add memory to answer (and reset) because memory power ten > 2 0 364895 * 10^6
|
136
|
+
#x12. 4 add to memory because not finished 4 ''
|
137
|
+
#x13. memory * 100 because memory < 100 400 ''
|
138
|
+
#x14. memory + 50 because memory > 50 450 ''
|
139
|
+
#x15. memory + 7 because memory > 7 457 ''
|
140
|
+
#x16. memory * 1000 because memory < 1000 457000 ''
|
141
|
+
#x17. add memory to answer (and reset)memory > 8 (memory pow of ten > 2) 0 364895457000
|
142
|
+
#x18. 8 add to memory because not finished 8 ''
|
143
|
+
#x19. memory * 100 because memory < 100 800 ''
|
144
|
+
#x14. memory + 90 because memory > 90 890 ''
|
145
|
+
#x15. memory + 8 because memory > 8 898 ''
|
146
|
+
#16. finished so add memory to answer
|
147
|
+
|
148
|
+
#Example
|
149
|
+
#2001
|
150
|
+
#two thousand and one
|
151
|
+
#2 1000 1
|
152
|
+
# memory answer
|
153
|
+
#1. add 2 to memory because first 2 0
|
154
|
+
#2. multiply memory by 1000 because memory < 1000 2000 0
|
155
|
+
#3. add memory to answer,reset, because power of ten>2 0 2000
|
156
|
+
#4. add 1 to memory 1 2000
|
157
|
+
#5. finish - add memory to answer 0 2001
|
158
|
+
def parse_numbers(integers)
|
159
|
+
memory = 0
|
160
|
+
answer = 0
|
161
|
+
reset = true #reset each time memory is reset
|
162
|
+
integers.each_with_index do |i, index|
|
163
|
+
if reset
|
164
|
+
reset = false
|
165
|
+
memory += i
|
166
|
+
else
|
167
|
+
#x4. multiply memory by 10^9 because memory < power of ten
|
168
|
+
if is_power_of_ten?(i)
|
169
|
+
if power_of_ten(i)> 2
|
170
|
+
memory *= i
|
171
|
+
#17. add memory to answer (and reset) (memory pow of ten > 2)
|
172
|
+
answer += memory
|
173
|
+
memory = 0
|
174
|
+
reset = true
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
178
|
+
if memory < i
|
179
|
+
memory *= i
|
180
|
+
else
|
181
|
+
memory += i
|
182
|
+
end
|
183
|
+
end
|
184
|
+
end
|
185
|
+
answer += memory
|
186
|
+
end
|
187
|
+
|
188
|
+
def power_of_ten integer
|
189
|
+
Math.log10(integer)
|
190
|
+
end
|
191
|
+
|
192
|
+
def is_power_of_ten? integer
|
193
|
+
power_of_ten(integer)==power_of_ten(integer).to_i
|
194
|
+
end
|
195
|
+
|
196
|
+
#handles simple single word numbers
|
197
|
+
#e.g. one, seven, twenty, eight, thousand etc
|
198
|
+
def word_to_integer word
|
199
|
+
text = word.to_s.chomp.strip
|
200
|
+
#digits 0-9
|
201
|
+
digit = DIGITS.index(text)
|
202
|
+
return digit unless digit.nil?
|
203
|
+
|
204
|
+
#digits which are exceptions
|
205
|
+
exception = EXCEPTIONS[text]
|
206
|
+
return exception unless exception.nil?
|
207
|
+
|
208
|
+
power = POWERS_OF_TEN[text]
|
209
|
+
return 10**power unless power.nil?
|
210
|
+
return nil
|
211
|
+
end
|
212
|
+
|
213
|
+
def word_array_to_integers words
|
214
|
+
out = []
|
215
|
+
words.map do |i|
|
216
|
+
word = word_to_integer(i)
|
217
|
+
out << word unless word.nil?
|
218
|
+
end
|
219
|
+
return out
|
220
|
+
end
|
194
221
|
end
|
195
222
|
|
196
223
|
class String
|
data/numbers_in_words.gemspec
CHANGED
@@ -2,21 +2,21 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{numbers_in_words}
|
5
|
-
s.version = "0.0
|
5
|
+
s.version = "0.1.0"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Mark Burns"]
|
9
9
|
s.date = %q{2010-04-06}
|
10
10
|
s.description = %q{#in_words method for integers and #in_numbers for strings}
|
11
11
|
s.email = %q{markthedeveloper@googlemail.com}
|
12
|
-
s.extra_rdoc_files = ["
|
13
|
-
s.files = ["Manifest", "README", "Rakefile", "examples/display_numbers_in_words.rb", "
|
12
|
+
s.extra_rdoc_files = ["CHANGELOG", "README", "lib/numbers.rb", "lib/numbers_in_words.rb", "lib/words.rb"]
|
13
|
+
s.files = ["CHANGELOG", "Manifest", "README", "Rakefile", "examples/display_numbers_in_words.rb", "init.rb", "lib/numbers.rb", "lib/numbers_in_words.rb", "lib/words.rb", "numbers_in_words.gemspec", "spec/numbers_in_words_spec.rb", "spec/words_in_numbers_spec.rb"]
|
14
14
|
s.homepage = %q{http://rubygems.org/gems/numbers_in_words}
|
15
15
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Numbers_in_words", "--main", "README"]
|
16
16
|
s.require_paths = ["lib"]
|
17
17
|
s.rubyforge_project = %q{numbers_in_words}
|
18
18
|
s.rubygems_version = %q{1.3.6}
|
19
|
-
s.summary = %q{Example: 123.in_words #=> "one hundred and twenty three", "seventy-five".in_numbers #=> 75}
|
19
|
+
s.summary = %q{Example: 123.in_words #=> "one hundred and twenty three", "seventy-five point eight".in_numbers #=> 75.8}
|
20
20
|
|
21
21
|
if s.respond_to? :specification_version then
|
22
22
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
@@ -37,13 +37,18 @@ describe Fixnum do
|
|
37
37
|
(-1*(10**100)).in_words.should == "minus one googol"
|
38
38
|
-123456789.in_words.should == "minus one hundred and twenty three million four hundred and fifty six thousand seven hundred and eighty nine"
|
39
39
|
end
|
40
|
+
|
40
41
|
it "should handle decimals" do
|
41
|
-
|
42
|
+
#because of lack of absolute accuracy with floats
|
43
|
+
#the output won't be exactly as you might expect
|
44
|
+
#so we will match rather than find equivalents
|
42
45
|
1.1.in_words.should == "one point one"
|
43
46
|
1.2345678.in_words.should == "one point two three four five six seven eight"
|
44
|
-
1000.2345678.in_words.should
|
45
|
-
12345.2345678.in_words.should
|
47
|
+
1000.2345678.in_words.should match "one thousand point two three four five six seven eight"
|
48
|
+
12345.2345678.in_words.should match "twelve thousand three hundred and forty five point two three four five six seven eight"
|
49
|
+
(10**9 + 0.1).in_words.should match "one billion point one"
|
46
50
|
end
|
51
|
+
|
47
52
|
it "should split into group of three digit numbers" do
|
48
53
|
1.groups_of(3).should == {0=>1}
|
49
54
|
12.groups_of(3).should == {0=>12}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'lib/
|
1
|
+
require 'lib/words'
|
2
2
|
describe WordsInNumbers do
|
3
3
|
it "should do the digits 0-10" do
|
4
4
|
"zero".in_numbers.should == 0
|
@@ -89,6 +89,39 @@ describe WordsInNumbers do
|
|
89
89
|
"Minus one".in_numbers.should == -1
|
90
90
|
"FIVE Million, three hundred and fifty-seVen Thousand".in_numbers.should == 5357000
|
91
91
|
"FIVE,,./';';';[] Million, three hundred and fifty-seVen Thousand".in_numbers.should == 5357000
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
it "should handle decimal points" do
|
96
|
+
"one point one".in_numbers.should == 1.1
|
92
97
|
|
98
|
+
"zero point seven six five three four".in_numbers.should == 0.76534
|
99
|
+
"one trillion point six".in_numbers.should == 10**12 + 0.6
|
100
|
+
long_number = <<-NUMBER
|
101
|
+
nine duotrigintillion seven hundred and seventy seven untrigintillion
|
102
|
+
fifty nine trigintillion one hundred and sixty novemvigintillion
|
103
|
+
eight hundred and six octovigintillion seven hundred and thirty six
|
104
|
+
septenvigintillion four hundred and seventy one sexvigintillion
|
105
|
+
nine hundred and seventy quinvigintillion six hundred and thirty two
|
106
|
+
quattuorvigintillion eight hundred and twenty seven trevigintillion
|
107
|
+
eight hundred and thirty six duovigintillion nine hundred and fifty
|
108
|
+
two unvigintillion seven hundred and ten vigintillion eight hundred and one
|
109
|
+
novemdecillion nine hundred and forty eight octodecillion seven hundred
|
110
|
+
and five septendecillion six hundred and eighty three sexdecillion
|
111
|
+
one hundred and six quindecillion seven hundred and seven quattuordecillion
|
112
|
+
seven hundred and fifty seven tredecillion four hundred and twenty six
|
113
|
+
duodecillion seven hundred and ninety five undecillion seven hundred
|
114
|
+
and forty six decillion eight hundred and thirteen nonillion one hundred
|
115
|
+
and twenty seven octillion four hundred and sixty five septillion two
|
116
|
+
hundred and thirty seven sextillion one hundred and thirty nine
|
117
|
+
quintillion one hundred and fifty three quadrillion forty six
|
118
|
+
trillion seven hundred and fifty two billion eight hundred and three
|
119
|
+
million ninety three thousand seven hundred and ninety one point
|
120
|
+
eight nine five six four three two one eight nine five six seven eight
|
121
|
+
NUMBER
|
122
|
+
long_number.in_numbers.should == 9777059160806736471970632827836952710801948705683106707757426795746813127465237139153046752803093791.89564321895678
|
123
|
+
"seventy five point eight four three two seven six nine four five one eight".in_numbers.should ==
|
124
|
+
75.84327694518
|
93
125
|
end
|
126
|
+
|
94
127
|
end
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
+
- 1
|
7
8
|
- 0
|
8
|
-
|
9
|
-
version: 0.0.9
|
9
|
+
version: 0.1.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Mark Burns
|
@@ -36,24 +36,21 @@ executables: []
|
|
36
36
|
extensions: []
|
37
37
|
|
38
38
|
extra_rdoc_files:
|
39
|
+
- CHANGELOG
|
39
40
|
- README
|
40
41
|
- lib/numbers.rb
|
41
42
|
- lib/numbers_in_words.rb
|
42
|
-
- lib/numbers_in_words.rb_cyclo.html
|
43
43
|
- lib/words.rb
|
44
|
-
- lib/words_in_numbers.rb_cyclo.html
|
45
44
|
files:
|
45
|
+
- CHANGELOG
|
46
46
|
- Manifest
|
47
47
|
- README
|
48
48
|
- Rakefile
|
49
49
|
- examples/display_numbers_in_words.rb
|
50
|
-
- index_cyclo.html
|
51
50
|
- init.rb
|
52
51
|
- lib/numbers.rb
|
53
52
|
- lib/numbers_in_words.rb
|
54
|
-
- lib/numbers_in_words.rb_cyclo.html
|
55
53
|
- lib/words.rb
|
56
|
-
- lib/words_in_numbers.rb_cyclo.html
|
57
54
|
- numbers_in_words.gemspec
|
58
55
|
- spec/numbers_in_words_spec.rb
|
59
56
|
- spec/words_in_numbers_spec.rb
|
@@ -92,6 +89,6 @@ rubyforge_project: numbers_in_words
|
|
92
89
|
rubygems_version: 1.3.6
|
93
90
|
signing_key:
|
94
91
|
specification_version: 3
|
95
|
-
summary: "Example: 123.in_words #=> \"one hundred and twenty three\", \"seventy-five\".in_numbers #=> 75"
|
92
|
+
summary: "Example: 123.in_words #=> \"one hundred and twenty three\", \"seventy-five point eight\".in_numbers #=> 75.8"
|
96
93
|
test_files: []
|
97
94
|
|
data/index_cyclo.html
DELETED
@@ -1,83 +0,0 @@
|
|
1
|
-
<html><head><title>Index for cyclomatic complexity</title></head>
|
2
|
-
<style>
|
3
|
-
body {
|
4
|
-
margin: 20px;
|
5
|
-
padding: 0;
|
6
|
-
font-size: 12px;
|
7
|
-
font-family: bitstream vera sans, verdana, arial, sans serif;
|
8
|
-
background-color: #efefef;
|
9
|
-
}
|
10
|
-
|
11
|
-
table {
|
12
|
-
border-collapse: collapse;
|
13
|
-
/*border-spacing: 0;*/
|
14
|
-
border: 1px solid #666;
|
15
|
-
background-color: #fff;
|
16
|
-
margin-bottom: 20px;
|
17
|
-
}
|
18
|
-
|
19
|
-
table, th, th+th, td, td+td {
|
20
|
-
border: 1px solid #ccc;
|
21
|
-
}
|
22
|
-
|
23
|
-
table th {
|
24
|
-
font-size: 12px;
|
25
|
-
color: #fc0;
|
26
|
-
padding: 4px 0;
|
27
|
-
background-color: #336;
|
28
|
-
}
|
29
|
-
|
30
|
-
th, td {
|
31
|
-
padding: 4px 10px;
|
32
|
-
}
|
33
|
-
|
34
|
-
td {
|
35
|
-
font-size: 13px;
|
36
|
-
}
|
37
|
-
|
38
|
-
.class_name {
|
39
|
-
font-size: 17px;
|
40
|
-
margin: 20px 0 0;
|
41
|
-
}
|
42
|
-
|
43
|
-
.class_complexity {
|
44
|
-
margin: 0 auto;
|
45
|
-
}
|
46
|
-
|
47
|
-
.class_complexity>.class_complexity {
|
48
|
-
margin: 0;
|
49
|
-
}
|
50
|
-
|
51
|
-
.class_total_complexity, .class_total_lines, .start_token_count, .file_count {
|
52
|
-
font-size: 13px;
|
53
|
-
font-weight: bold;
|
54
|
-
}
|
55
|
-
|
56
|
-
.class_total_complexity, .class_total_lines {
|
57
|
-
color: #c00;
|
58
|
-
}
|
59
|
-
|
60
|
-
.start_token_count, .file_count {
|
61
|
-
color: #333;
|
62
|
-
}
|
63
|
-
|
64
|
-
.warning {
|
65
|
-
background-color: yellow;
|
66
|
-
}
|
67
|
-
|
68
|
-
.error {
|
69
|
-
background-color: #f00;
|
70
|
-
}
|
71
|
-
</style>
|
72
|
-
|
73
|
-
<body>
|
74
|
-
<h1>Index for cyclomatic complexity</h1>
|
75
|
-
|
76
|
-
<hr/>
|
77
|
-
<h2 class="class_name">Analyzed Files</h2>
|
78
|
-
<ul>
|
79
|
-
<li>
|
80
|
-
<p class="file_name"><a href="./lib/words_in_numbers.rb_cyclo.html">lib/words_in_numbers.rb</a>
|
81
|
-
</li>
|
82
|
-
</ul>
|
83
|
-
</body></html>
|
@@ -1,100 +0,0 @@
|
|
1
|
-
<html><head><title>Cyclometric Complexity</title></head>
|
2
|
-
<style>
|
3
|
-
body {
|
4
|
-
margin: 20px;
|
5
|
-
padding: 0;
|
6
|
-
font-size: 12px;
|
7
|
-
font-family: bitstream vera sans, verdana, arial, sans serif;
|
8
|
-
background-color: #efefef;
|
9
|
-
}
|
10
|
-
|
11
|
-
table {
|
12
|
-
border-collapse: collapse;
|
13
|
-
/*border-spacing: 0;*/
|
14
|
-
border: 1px solid #666;
|
15
|
-
background-color: #fff;
|
16
|
-
margin-bottom: 20px;
|
17
|
-
}
|
18
|
-
|
19
|
-
table, th, th+th, td, td+td {
|
20
|
-
border: 1px solid #ccc;
|
21
|
-
}
|
22
|
-
|
23
|
-
table th {
|
24
|
-
font-size: 12px;
|
25
|
-
color: #fc0;
|
26
|
-
padding: 4px 0;
|
27
|
-
background-color: #336;
|
28
|
-
}
|
29
|
-
|
30
|
-
th, td {
|
31
|
-
padding: 4px 10px;
|
32
|
-
}
|
33
|
-
|
34
|
-
td {
|
35
|
-
font-size: 13px;
|
36
|
-
}
|
37
|
-
|
38
|
-
.class_name {
|
39
|
-
font-size: 17px;
|
40
|
-
margin: 20px 0 0;
|
41
|
-
}
|
42
|
-
|
43
|
-
.class_complexity {
|
44
|
-
margin: 0 auto;
|
45
|
-
}
|
46
|
-
|
47
|
-
.class_complexity>.class_complexity {
|
48
|
-
margin: 0;
|
49
|
-
}
|
50
|
-
|
51
|
-
.class_total_complexity, .class_total_lines, .start_token_count, .file_count {
|
52
|
-
font-size: 13px;
|
53
|
-
font-weight: bold;
|
54
|
-
}
|
55
|
-
|
56
|
-
.class_total_complexity, .class_total_lines {
|
57
|
-
color: #c00;
|
58
|
-
}
|
59
|
-
|
60
|
-
.start_token_count, .file_count {
|
61
|
-
color: #333;
|
62
|
-
}
|
63
|
-
|
64
|
-
.warning {
|
65
|
-
background-color: yellow;
|
66
|
-
}
|
67
|
-
|
68
|
-
.error {
|
69
|
-
background-color: #f00;
|
70
|
-
}
|
71
|
-
</style>
|
72
|
-
<body>
|
73
|
-
<div class="class_complexity">
|
74
|
-
<h2 class="class_name">Module : NumbersInWords</h2>
|
75
|
-
<div class="class_total_complexity">Total Complexity: 36</div>
|
76
|
-
<div class="class_total_lines">Total Lines: 197</div>
|
77
|
-
<table width="100%" border="1">
|
78
|
-
<tr><th>Method</th><th>Complexity</th><th># Lines</th></tr>
|
79
|
-
<tr><td>english_group</td><td>5</td><td>13</td></tr>
|
80
|
-
<tr><td>in_english</td><td class="warning">10</td><td>31</td></tr>
|
81
|
-
</table>
|
82
|
-
</div>
|
83
|
-
<div class="class_complexity">
|
84
|
-
<h2 class="class_name">Class : Fixnum</h2>
|
85
|
-
<div class="class_total_complexity">Total Complexity: 0</div>
|
86
|
-
<div class="class_total_lines">Total Lines: 2</div>
|
87
|
-
<table width="100%" border="1">
|
88
|
-
<tr><th>Method</th><th>Complexity</th><th># Lines</th></tr>
|
89
|
-
</table>
|
90
|
-
</div>
|
91
|
-
<div class="class_complexity">
|
92
|
-
<h2 class="class_name">Class : Bignum</h2>
|
93
|
-
<div class="class_total_complexity">Total Complexity: 0</div>
|
94
|
-
<div class="class_total_lines">Total Lines: 2</div>
|
95
|
-
<table width="100%" border="1">
|
96
|
-
<tr><th>Method</th><th>Complexity</th><th># Lines</th></tr>
|
97
|
-
</table>
|
98
|
-
</div>
|
99
|
-
</body>
|
100
|
-
</html>
|
@@ -1,92 +0,0 @@
|
|
1
|
-
<html><head><title>Cyclometric Complexity</title></head>
|
2
|
-
<style>
|
3
|
-
body {
|
4
|
-
margin: 20px;
|
5
|
-
padding: 0;
|
6
|
-
font-size: 12px;
|
7
|
-
font-family: bitstream vera sans, verdana, arial, sans serif;
|
8
|
-
background-color: #efefef;
|
9
|
-
}
|
10
|
-
|
11
|
-
table {
|
12
|
-
border-collapse: collapse;
|
13
|
-
/*border-spacing: 0;*/
|
14
|
-
border: 1px solid #666;
|
15
|
-
background-color: #fff;
|
16
|
-
margin-bottom: 20px;
|
17
|
-
}
|
18
|
-
|
19
|
-
table, th, th+th, td, td+td {
|
20
|
-
border: 1px solid #ccc;
|
21
|
-
}
|
22
|
-
|
23
|
-
table th {
|
24
|
-
font-size: 12px;
|
25
|
-
color: #fc0;
|
26
|
-
padding: 4px 0;
|
27
|
-
background-color: #336;
|
28
|
-
}
|
29
|
-
|
30
|
-
th, td {
|
31
|
-
padding: 4px 10px;
|
32
|
-
}
|
33
|
-
|
34
|
-
td {
|
35
|
-
font-size: 13px;
|
36
|
-
}
|
37
|
-
|
38
|
-
.class_name {
|
39
|
-
font-size: 17px;
|
40
|
-
margin: 20px 0 0;
|
41
|
-
}
|
42
|
-
|
43
|
-
.class_complexity {
|
44
|
-
margin: 0 auto;
|
45
|
-
}
|
46
|
-
|
47
|
-
.class_complexity>.class_complexity {
|
48
|
-
margin: 0;
|
49
|
-
}
|
50
|
-
|
51
|
-
.class_total_complexity, .class_total_lines, .start_token_count, .file_count {
|
52
|
-
font-size: 13px;
|
53
|
-
font-weight: bold;
|
54
|
-
}
|
55
|
-
|
56
|
-
.class_total_complexity, .class_total_lines {
|
57
|
-
color: #c00;
|
58
|
-
}
|
59
|
-
|
60
|
-
.start_token_count, .file_count {
|
61
|
-
color: #333;
|
62
|
-
}
|
63
|
-
|
64
|
-
.warning {
|
65
|
-
background-color: yellow;
|
66
|
-
}
|
67
|
-
|
68
|
-
.error {
|
69
|
-
background-color: #f00;
|
70
|
-
}
|
71
|
-
</style>
|
72
|
-
<body>
|
73
|
-
<div class="class_complexity">
|
74
|
-
<h2 class="class_name">Module : WordsInNumbers</h2>
|
75
|
-
<div class="class_total_complexity">Total Complexity: 21</div>
|
76
|
-
<div class="class_total_lines">Total Lines: 194</div>
|
77
|
-
<table width="100%" border="1">
|
78
|
-
<tr><th>Method</th><th>Complexity</th><th># Lines</th></tr>
|
79
|
-
<tr><td>in_numbers</td><td>6</td><td>22</td></tr>
|
80
|
-
<tr><td>parse_numbers</td><td>6</td><td>28</td></tr>
|
81
|
-
</table>
|
82
|
-
</div>
|
83
|
-
<div class="class_complexity">
|
84
|
-
<h2 class="class_name">Class : String</h2>
|
85
|
-
<div class="class_total_complexity">Total Complexity: 0</div>
|
86
|
-
<div class="class_total_lines">Total Lines: 2</div>
|
87
|
-
<table width="100%" border="1">
|
88
|
-
<tr><th>Method</th><th>Complexity</th><th># Lines</th></tr>
|
89
|
-
</table>
|
90
|
-
</div>
|
91
|
-
</body>
|
92
|
-
</html>
|