roman 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/.index ADDED
@@ -0,0 +1,72 @@
1
+ ---
2
+ revision: 2013
3
+ type: ruby
4
+ sources:
5
+ - var
6
+ authors:
7
+ - name: Trans
8
+ email: transfire@gmail.com
9
+ organizations:
10
+ - name: Rubyworks
11
+ requirements:
12
+ - groups:
13
+ - build
14
+ development: true
15
+ name: detroit
16
+ - groups:
17
+ - build
18
+ development: true
19
+ name: ergo
20
+ - groups:
21
+ - test
22
+ development: true
23
+ name: rubytest-cli
24
+ - groups:
25
+ - test
26
+ development: true
27
+ name: lemon
28
+ - groups:
29
+ - test
30
+ development: true
31
+ name: ae
32
+ conflicts: []
33
+ alternatives: []
34
+ resources:
35
+ - type: home
36
+ uri: http://rubyworks.github.com/roman
37
+ label: Homepage
38
+ - type: code
39
+ uri: http://github.com/rubyworks/roman
40
+ label: Source Code
41
+ - type: docs
42
+ uri: http://rubydoc.info/gems/roman
43
+ label: Documentation
44
+ - type: wiki
45
+ uri: http://wiki.github.com/rubyworks/roman
46
+ label: User Guide
47
+ - type: bugs
48
+ uri: http://github.com/rubyworks/roman/issues
49
+ label: Issue Tracker
50
+ - type: mail
51
+ uri: http://groups.google.com/group/rubyworks-mailinglist
52
+ label: Mailing List
53
+ repositories:
54
+ - name: upstream
55
+ scm: git
56
+ uri: git://github.com/rubyworks/roman.git
57
+ categories: []
58
+ copyrights:
59
+ - holder: Rubyworks
60
+ year: '2007'
61
+ license: BSD-2-Clause
62
+ customs: []
63
+ paths:
64
+ lib:
65
+ - lib
66
+ created: '2010-03-02'
67
+ summary: Real Roman Numerals
68
+ title: Roman
69
+ version: 0.2.0
70
+ name: roman
71
+ description: RomanNumeral class for working with roman numerals in a native form.
72
+ date: '2013-03-09'
@@ -0,0 +1,19 @@
1
+ # RELEASE HISTORY
2
+
3
+
4
+ ## 0.2.0 / 2013-03-10
5
+
6
+ This release fixes the conversion of lower-case letters.
7
+
8
+ Changes:
9
+
10
+ * Fixed conversion of lower-case letters.
11
+
12
+
13
+ ## 0.1.0 / 2010-10-10
14
+
15
+ Initialize release.
16
+
17
+ Changes:
18
+
19
+ * All of them ;)
@@ -0,0 +1,22 @@
1
+ (BSD-2-Clause License)
2
+
3
+ Redistribution and use in source and binary forms, with or without modification,
4
+ are permitted provided that the following conditions are met:
5
+
6
+ 1. Redistributions of source code must retain the above copyright notice,
7
+ this list of conditions and the following disclaimer.
8
+
9
+ 2. Redistributions in binary form must reproduce the above copyright notice,
10
+ this list of conditions and the following disclaimer in the documentation
11
+ and/or other materials provided with the distribution.
12
+
13
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
14
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
15
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
16
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
17
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
18
+ OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
19
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
20
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
21
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22
+
@@ -0,0 +1,73 @@
1
+ # Roman Numerals
2
+
3
+ [Website](http://rubyworks.github.com/roman) /
4
+ [Documentation](http://rubydoc.info/gems/roman/frames) /
5
+ [Report Issue](http://github.com/rubyworks/roman/issues) /
6
+ [Source Code](http://github.com/rubyworks/roman)    
7
+ [![Flattr Me](http://api.flattr.com/button/flattr-badge-large.png)](http://flattr.com/thing/324911/Rubyworks-Ruby-Development-Fund)
8
+
9
+ ## STATUS
10
+
11
+ [![Gem Version](https://badge.fury.io/rb/roman.png)](http://badge.fury.io/rb/roman)
12
+ [![Build Status](https://travis-ci.org/rubyworks/roman.png)](https://travis-ci.org/rubyworks/roman)
13
+
14
+
15
+ ## ABOUT
16
+
17
+ The Roman library provides a full-fledged Numeric subclass
18
+ for working in Roman Numerals.
19
+
20
+ In most cases this library is probably overkill. Instead,
21
+ [Ruby Facets](http://rubyworks.github.com/facets) provides Roman numeral
22
+ core extension methods for the `Integer` and `String` classes which are
23
+ likely to do everything that one really needs. However, the RomanNumeral
24
+ class has one advantage. It can be maniputated like any other Numeric
25
+ object without having to switch back and forth between representations.
26
+ Moreover, and probably most importantly, it makes an excellect example of
27
+ how to create a Numeric subclass in Ruby.
28
+
29
+
30
+ ## HOW TO USE
31
+
32
+ We can create Roman numerals via the usual instantiation.
33
+
34
+ RomanNumeral.new(1) #=> #<RomanNumeral:0x7f10e378ad48 @i=1>
35
+
36
+ But to make it easier the Integer class is extended with #to_roman.
37
+
38
+ 1.to_roman #=> #<RomanNumeral:0x7f10e378ad48 @i=1>
39
+
40
+ Roman numerals can also be formed from their String represnetation.
41
+
42
+ RomanNumeral.new('I') #=> #<RomanNumeral:0x7f10e378ad48 @i=1>
43
+
44
+ 'I'.to_roman #=> #<RomanNumeral:0x7f10e378ad48 @i=1>
45
+
46
+ Because +RomanNumeral+ is a full-fledged subclass of Numeric,
47
+ we can work with them like we can an Integer.
48
+
49
+ a = 2.to_roman #=> #<RomanNumeral:0x7f10e378ad48 @i=2>
50
+ b = 3.to_roman #=> #<RomanNumeral:0x7f10e378ad48 @i=3>
51
+ r = a + b #=> #<RomanNumeral:0x7f10e378ad48 @i=5>
52
+
53
+ When we want to see the actual Romanized figure, we simple
54
+ call #to_s.
55
+
56
+ r.to_s #=> "IV"
57
+
58
+
59
+ ## HOW TO INSTALL
60
+
61
+ Using RubyGems:
62
+
63
+ gem install roman
64
+
65
+
66
+ ## COPYRIGHT & LICENSE
67
+
68
+ Copyright (c) 2007 Rubyworks
69
+
70
+ Roman is destributed under the terms of the
71
+ [BSD-2-Clause](http://spdx.org/license/BSD-2-Clause) license.
72
+
73
+ Please see LICENSE.txt file for details.
@@ -0,0 +1,285 @@
1
+ # Work with Roman numerals just like normal Integers.
2
+ class RomanNumeral < Numeric
3
+
4
+ include Comparable
5
+
6
+ # The largest integer representable as a roman
7
+ # numerable by this module.
8
+ MAX = 3999
9
+
10
+ # Taken from O'Reilly's Perl Cookbook 6.23. Regular Expression Grabbag.
11
+ REGEXP = /^M*(D?C{0,3}|C[DM])(L?X{0,3}|X[LC])(V?I{0,3}|I[VX])$/i
12
+
13
+ #
14
+ ROMAN_VALUES_ASSOC = [
15
+ ["M", 1000],
16
+ ["CM", 900],
17
+ ["D", 500],
18
+ ["CD", 400],
19
+ ["C", 100],
20
+ ["XC", 90],
21
+ ["L", 50],
22
+ ["XL", 40],
23
+ ["X", 10],
24
+ ["IX", 9],
25
+ ["V", 5],
26
+ ["IV", 4],
27
+ ["I", 1]
28
+ ]
29
+
30
+ #
31
+ ROMAN_VALUES = ROMAN_VALUES_ASSOC.inject({}){ |h,(r,a)| h[r] = a; h }
32
+
33
+ #
34
+ def self.from_integer(int)
35
+ #return nil if integer > MAX
36
+ return "-#{(-int).roman}" if int < 0
37
+ return "" if int == 0
38
+ ROMAN_VALUES_ASSOC.each do |(i, v)|
39
+ return(i + from_integer(int-v)) if v <= int
40
+ end
41
+ end
42
+
43
+ #
44
+ def self.to_integer(roman)
45
+ #return nil unless roman_string.is_roman_numeral?
46
+ last = roman[-1,1].upcase
47
+ roman.reverse.split('').inject(0) do |result, c|
48
+ c = c.upcase
49
+ if ROMAN_VALUES[c] < ROMAN_VALUES[last]
50
+ result -= ROMAN_VALUES[c]
51
+ else
52
+ last = c
53
+ result += ROMAN_VALUES[c]
54
+ end
55
+ end
56
+ end
57
+
58
+ # Returns true if +string+ is a roman numeral.
59
+ def self.is_roman_numeral?(string)
60
+ REGEXP =~ string
61
+ end
62
+
63
+
64
+ # Create a new instance from an Integer, String
65
+ # or other RomanNumeral.
66
+ def initialize(val)
67
+ case val
68
+ when String
69
+ @i = self.class.to_integer(val)
70
+ @s = val.frozen? ? val : val.dup.freeze
71
+ when Numeric
72
+ @i = val.to_i
73
+ else
74
+ raise ArgumentError, 'Cannot convert %p' % val
75
+ end
76
+ end
77
+
78
+ # hash code calculation
79
+
80
+ def hash
81
+ @i.hash
82
+ end
83
+
84
+ #
85
+ def to_s
86
+ @s ||= self.class.from_integer(@i)
87
+ end
88
+
89
+ #
90
+ def to_num ; @i ; end
91
+
92
+ #
93
+ def to_i ; @i ; end
94
+
95
+ #
96
+ def to_int ; @i ; end
97
+
98
+ #
99
+ def to_arabic ; @i ; end
100
+
101
+ #
102
+ def to_roman
103
+ self
104
+ end
105
+
106
+ #
107
+ def eql?(num)
108
+ self.class.equal?(num.class) && @i == num.to_i
109
+ end
110
+
111
+ #
112
+ def ==(num)
113
+ @i == num.to_num
114
+ end
115
+
116
+ #
117
+ def coerce(o)
118
+ [self.class.new(o.to_int), self]
119
+ end
120
+
121
+ #
122
+ def <=>(o)
123
+ case o
124
+ when Numeric
125
+ @i <=> o.to_num
126
+ else
127
+ a, b = o.coerce(self)
128
+ a <=> b
129
+ end rescue nil
130
+ end
131
+
132
+ # various tests that Fixnum also has
133
+
134
+ def zero?
135
+ @i.zero?
136
+ end
137
+
138
+ def nonzero?
139
+ @i.nonzero?
140
+ end
141
+
142
+ def odd?
143
+ @i.odd?
144
+ end
145
+
146
+ def even?
147
+ @i.even?
148
+ end
149
+
150
+ def between?(a, b)
151
+ @i.between? a, b
152
+ end
153
+
154
+ def integer?
155
+ true
156
+ end
157
+
158
+ def real?
159
+ true
160
+ end
161
+
162
+ def +@
163
+ self
164
+ end
165
+
166
+ def -@
167
+ self.class.new(-@i)
168
+ end
169
+
170
+ #
171
+ def +(o)
172
+ if Numeric === o
173
+ self.class.new(@i + o.to_num)
174
+ else
175
+ a, b = o.coerce(self)
176
+ a + b
177
+ end
178
+ end
179
+
180
+ #
181
+ def -(o)
182
+ if Numeric === o
183
+ self.class.new(@i - o.to_num)
184
+ else
185
+ a, b = o.coerce(self)
186
+ a - b
187
+ end
188
+ end
189
+
190
+ #
191
+ def *(o)
192
+ if Numeric === o
193
+ self.class.new(@i * o.to_num)
194
+ else
195
+ a, b = o.coerce(self)
196
+ a * b
197
+ end
198
+ end
199
+
200
+ #
201
+ def /(o)
202
+ if Numeric === o
203
+ self.class.new(@i / o.to_num)
204
+ else
205
+ a, b = o.coerce(self)
206
+ a / b
207
+ end
208
+ end
209
+
210
+ def **(o)
211
+ if Numeric === o
212
+ self.class.new(@i / o.to_num)
213
+ else
214
+ a, b = o.coerce(self)
215
+ a / b
216
+ end
217
+ end
218
+
219
+ def <<(o)
220
+ self.class.new(@i << o.to_int)
221
+ end
222
+
223
+ def >>(o)
224
+ self.class.new(@i >> o.to_int)
225
+ end
226
+
227
+ # bit operators
228
+
229
+ def &(o)
230
+ self.class.new(@i & o.to_int)
231
+ end
232
+
233
+ def |(o)
234
+ self.class.new(@i | o.to_int)
235
+ end
236
+
237
+ # Freeze
238
+ def freeze
239
+ to_s
240
+ super
241
+ end
242
+
243
+ end
244
+
245
+
246
+ class Integer
247
+
248
+ #
249
+ def self.from_roman(roman)
250
+ RomanNumeral.to_integer(roman)
251
+ end
252
+
253
+ # Converts this integer to a roman numeral.
254
+ def to_roman
255
+ RomanNumeral.new(self)
256
+ end
257
+
258
+ end
259
+
260
+
261
+ class String
262
+
263
+ # Considers string a roman numeral numeral,
264
+ # and converts it to the corresponding integer.
265
+ def to_roman
266
+ RomanNumeral.new(self)
267
+ end
268
+
269
+ # Returns true if a valid roman numeral.
270
+ def is_roman_numeral?
271
+ RomanNumeral.is_roman_numeral?(self)
272
+ end
273
+
274
+ end
275
+
276
+
277
+ class Numeric
278
+
279
+ #
280
+ def to_num
281
+ self
282
+ end
283
+
284
+ end
285
+
@@ -0,0 +1,72 @@
1
+ ---
2
+ revision: 2013
3
+ type: ruby
4
+ sources:
5
+ - var
6
+ authors:
7
+ - name: Trans
8
+ email: transfire@gmail.com
9
+ organizations:
10
+ - name: Rubyworks
11
+ requirements:
12
+ - groups:
13
+ - build
14
+ development: true
15
+ name: detroit
16
+ - groups:
17
+ - build
18
+ development: true
19
+ name: ergo
20
+ - groups:
21
+ - test
22
+ development: true
23
+ name: rubytest-cli
24
+ - groups:
25
+ - test
26
+ development: true
27
+ name: lemon
28
+ - groups:
29
+ - test
30
+ development: true
31
+ name: ae
32
+ conflicts: []
33
+ alternatives: []
34
+ resources:
35
+ - type: home
36
+ uri: http://rubyworks.github.com/roman
37
+ label: Homepage
38
+ - type: code
39
+ uri: http://github.com/rubyworks/roman
40
+ label: Source Code
41
+ - type: docs
42
+ uri: http://rubydoc.info/gems/roman
43
+ label: Documentation
44
+ - type: wiki
45
+ uri: http://wiki.github.com/rubyworks/roman
46
+ label: User Guide
47
+ - type: bugs
48
+ uri: http://github.com/rubyworks/roman/issues
49
+ label: Issue Tracker
50
+ - type: mail
51
+ uri: http://groups.google.com/group/rubyworks-mailinglist
52
+ label: Mailing List
53
+ repositories:
54
+ - name: upstream
55
+ scm: git
56
+ uri: git://github.com/rubyworks/roman.git
57
+ categories: []
58
+ copyrights:
59
+ - holder: Rubyworks
60
+ year: '2007'
61
+ license: BSD-2-Clause
62
+ customs: []
63
+ paths:
64
+ lib:
65
+ - lib
66
+ created: '2010-03-02'
67
+ summary: Real Roman Numerals
68
+ title: Roman
69
+ version: 0.2.0
70
+ name: roman
71
+ description: RomanNumeral class for working with roman numerals in a native form.
72
+ date: '2013-03-09'
@@ -0,0 +1,13 @@
1
+ require 'roman'
2
+
3
+ TestCase Fixnum do
4
+
5
+ Method :to_roman do
6
+ test do
7
+ 1.to_roman.assert == RomanNumeral.new(1)
8
+ 2.to_roman.assert == RomanNumeral.new(2)
9
+ end
10
+ end
11
+
12
+ end
13
+
@@ -0,0 +1,59 @@
1
+ require 'roman'
2
+
3
+ TestCase RomanNumeral do
4
+
5
+ Method :to_s do
6
+ test "one to three" do
7
+ 1.to_roman.to_s.assert == 'I'
8
+ 2.to_roman.to_s.assert == 'II'
9
+ 3.to_roman.to_s.assert == 'III'
10
+ end
11
+ end
12
+
13
+ Method :to_s do
14
+ test "four" do
15
+ 4.to_roman.to_s.assert == 'IV'
16
+ end
17
+ end
18
+
19
+ Method :to_s do
20
+ test "five to eight" do
21
+ 5.to_roman.to_s.assert == 'V'
22
+ 6.to_roman.to_s.assert == 'VI'
23
+ 7.to_roman.to_s.assert == 'VII'
24
+ 8.to_roman.to_s.assert == 'VIII'
25
+ end
26
+ end
27
+
28
+ Method :to_s do
29
+ test "nine" do
30
+ 9.to_roman.to_s.assert == 'IX'
31
+ end
32
+ end
33
+
34
+ Method :to_s do
35
+ test "ten to thriteen" do
36
+ 10.to_roman.to_s.assert == 'X'
37
+ 11.to_roman.to_s.assert == 'XI'
38
+ 12.to_roman.to_s.assert == 'XII'
39
+ 13.to_roman.to_s.assert == 'XIII'
40
+ end
41
+ end
42
+
43
+ Method :to_s do
44
+ test "fourteen plus" do
45
+ 14.to_roman.to_s.assert == 'XIV'
46
+ 15.to_roman.to_s.assert == 'XV'
47
+ 16.to_roman.to_s.assert == 'XVI'
48
+ end
49
+ end
50
+
51
+ Method :+ do
52
+ test do
53
+ (5.to_roman + 6).assert == 11
54
+ (2.to_roman + 3.to_roman).assert == 5
55
+ end
56
+ end
57
+
58
+ end
59
+
@@ -0,0 +1,33 @@
1
+ require 'roman'
2
+
3
+ TestCase String do
4
+
5
+ Method :to_roman do
6
+ test "single digit conversions" do
7
+ "I".to_roman.assert == RomanNumeral.new(1)
8
+ "V".to_roman.assert == RomanNumeral.new(5)
9
+ "X".to_roman.assert == RomanNumeral.new(10)
10
+
11
+ "i".to_roman.assert == RomanNumeral.new(1)
12
+ "v".to_roman.assert == RomanNumeral.new(5)
13
+ "x".to_roman.assert == RomanNumeral.new(10)
14
+ end
15
+
16
+ test "simple mulit-digit conversions" do
17
+ "IV".to_roman.assert == RomanNumeral.new(4)
18
+ "VI".to_roman.assert == RomanNumeral.new(6)
19
+ "VII".to_roman.assert == RomanNumeral.new(7)
20
+ "VIII".to_roman.assert == RomanNumeral.new(8)
21
+ "IX".to_roman.assert == RomanNumeral.new(9)
22
+ "XI".to_roman.assert == RomanNumeral.new(11)
23
+ "XII".to_roman.assert == RomanNumeral.new(12)
24
+ "XIII".to_roman.assert == RomanNumeral.new(13)
25
+ end
26
+
27
+ test "complex conversions" do
28
+ "XXIV".to_roman.assert == RomanNumeral.new(24)
29
+ end
30
+ end
31
+
32
+ end
33
+
metadata ADDED
@@ -0,0 +1,142 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: roman
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Trans
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-03-09 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: detroit
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: ergo
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rubytest-cli
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: lemon
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: ae
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ description: RomanNumeral class for working with roman numerals in a native form.
95
+ email:
96
+ - transfire@gmail.com
97
+ executables: []
98
+ extensions: []
99
+ extra_rdoc_files:
100
+ - LICENSE.txt
101
+ - HISTORY.md
102
+ - README.md
103
+ files:
104
+ - .index
105
+ - lib/roman.rb
106
+ - lib/roman.yml
107
+ - test/string_case.rb
108
+ - test/fixnum_case.rb
109
+ - test/roman_case.rb
110
+ - LICENSE.txt
111
+ - HISTORY.md
112
+ - README.md
113
+ homepage: http://rubyworks.github.com/roman
114
+ licenses:
115
+ - BSD-2-Clause
116
+ post_install_message:
117
+ rdoc_options: []
118
+ require_paths:
119
+ - lib
120
+ required_ruby_version: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ required_rubygems_version: !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ requirements: []
133
+ rubyforge_project:
134
+ rubygems_version: 1.8.24
135
+ signing_key:
136
+ specification_version: 3
137
+ summary: Real Roman Numerals
138
+ test_files:
139
+ - test/string_case.rb
140
+ - test/fixnum_case.rb
141
+ - test/roman_case.rb
142
+ has_rdoc: