numbers_in_words 0.0.9 → 0.1.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/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>
|