arnoldc.rb 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +297 -0
- data/arnoldc.rb.gemspec +17 -0
- data/bin/arnoldc.rb +68 -0
- data/samples/HelloWorld.arnoldc +3 -0
- data/samples/file.arnoldc +25 -0
- data/samples/fizzbuzz.arnoldc +87 -0
- metadata +65 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 3bc9f4118a8f08481fa84f42e2dab588c56ac730
|
4
|
+
data.tar.gz: c2e9b18cfc1ca0bb1dec386d2349f14879784aca
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b32be5ecec2e527b37667fe77003b2f70fc3d52ba553713caadaebe856f772d1cb82254770cefdc9905639c9f608856a0fcfcda9a6fdf21475f21b06a589d047
|
7
|
+
data.tar.gz: fccc33994aa1a0a2cfb3e8183ce8af649ef6d2f61bd8e4c24fc64e485df9a0bace8359a55bb37d68e936e739d7e53b1a4e9682cd9c6086ebd049139c009d52c9
|
data/README.md
ADDED
@@ -0,0 +1,297 @@
|
|
1
|
+
# arnoldc.rb
|
2
|
+
|
3
|
+
[ArnoldC](https://github.com/lhartikk/ArnoldC) on top of any Ruby Virtual Machine.
|
4
|
+
|
5
|
+
## INSTALLATION
|
6
|
+
|
7
|
+
gem install arnoldc
|
8
|
+
|
9
|
+
## USAGE
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
λ arnoldc.rb my_script.arnoldc
|
13
|
+
```
|
14
|
+
|
15
|
+
Example:
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
λ arnoldc.rb samples/fizzbuzz.arnoldc
|
19
|
+
arnoldc.rb...
|
20
|
+
|
21
|
+
1
|
22
|
+
2
|
23
|
+
Fizz
|
24
|
+
4
|
25
|
+
Buzz
|
26
|
+
Fizz
|
27
|
+
7
|
28
|
+
8
|
29
|
+
Fizz
|
30
|
+
Buzz
|
31
|
+
11
|
32
|
+
Fizz
|
33
|
+
13
|
34
|
+
14
|
35
|
+
FizzBuzz
|
36
|
+
16
|
37
|
+
17
|
38
|
+
Fizz
|
39
|
+
19
|
40
|
+
Buzz
|
41
|
+
Fizz
|
42
|
+
22
|
43
|
+
23
|
44
|
+
Fizz
|
45
|
+
Buzz
|
46
|
+
26
|
47
|
+
Fizz
|
48
|
+
28
|
49
|
+
29
|
50
|
+
FizzBuzz
|
51
|
+
31
|
52
|
+
32
|
53
|
+
Fizz
|
54
|
+
34
|
55
|
+
Buzz
|
56
|
+
Fizz
|
57
|
+
37
|
58
|
+
38
|
59
|
+
Fizz
|
60
|
+
Buzz
|
61
|
+
41
|
62
|
+
Fizz
|
63
|
+
43
|
64
|
+
44
|
65
|
+
FizzBuzz
|
66
|
+
46
|
67
|
+
47
|
68
|
+
Fizz
|
69
|
+
49
|
70
|
+
Buzz
|
71
|
+
Fizz
|
72
|
+
52
|
73
|
+
53
|
74
|
+
Fizz
|
75
|
+
Buzz
|
76
|
+
56
|
77
|
+
Fizz
|
78
|
+
58
|
79
|
+
59
|
80
|
+
FizzBuzz
|
81
|
+
61
|
82
|
+
62
|
83
|
+
Fizz
|
84
|
+
64
|
85
|
+
Buzz
|
86
|
+
Fizz
|
87
|
+
67
|
88
|
+
68
|
89
|
+
Fizz
|
90
|
+
Buzz
|
91
|
+
71
|
92
|
+
Fizz
|
93
|
+
73
|
94
|
+
74
|
95
|
+
FizzBuzz
|
96
|
+
76
|
97
|
+
77
|
98
|
+
Fizz
|
99
|
+
79
|
100
|
+
Buzz
|
101
|
+
Fizz
|
102
|
+
82
|
103
|
+
83
|
104
|
+
Fizz
|
105
|
+
Buzz
|
106
|
+
86
|
107
|
+
Fizz
|
108
|
+
88
|
109
|
+
89
|
110
|
+
FizzBuzz
|
111
|
+
91
|
112
|
+
92
|
113
|
+
Fizz
|
114
|
+
94
|
115
|
+
Buzz
|
116
|
+
Fizz
|
117
|
+
97
|
118
|
+
98
|
119
|
+
Fizz
|
120
|
+
Buzz
|
121
|
+
|
122
|
+
Exiting.
|
123
|
+
```
|
124
|
+
|
125
|
+
You can turn on debug mode by using the -w option of the Ruby VM:
|
126
|
+
|
127
|
+
```ruby
|
128
|
+
/tmp/arnoldc.rb [±] λ ruby arnoldc.rb samples/fizzbuzz.arnoldc
|
129
|
+
arnoldc.rb...
|
130
|
+
L0000: def main
|
131
|
+
L0001: isLessThan100 = true
|
132
|
+
L0002: n = 0
|
133
|
+
L0003: multiple = true
|
134
|
+
L0004: while isLessThan100
|
135
|
+
L0005: n = \
|
136
|
+
L0006: n\
|
137
|
+
L0007: + 1
|
138
|
+
L0008: isLessThan100 = \
|
139
|
+
L0009: 100\
|
140
|
+
L0010: > n
|
141
|
+
L0011: multiple = \
|
142
|
+
L0012: divisible(n, 15)
|
143
|
+
L0013: if multiple
|
144
|
+
L0014: puts "FizzBuzz"
|
145
|
+
L0015: else
|
146
|
+
L0016: multiple = \
|
147
|
+
L0017: divisible(n, 3)
|
148
|
+
L0018: if multiple
|
149
|
+
L0019: puts "Fizz"
|
150
|
+
L0020: else
|
151
|
+
L0021: multiple = \
|
152
|
+
L0022: divisible(n, 5)
|
153
|
+
L0023: if multiple
|
154
|
+
L0024: puts "Buzz"
|
155
|
+
L0025: else
|
156
|
+
L0026: puts n
|
157
|
+
L0027: end
|
158
|
+
L0028: end
|
159
|
+
L0029: end
|
160
|
+
L0030: end
|
161
|
+
L0031: end
|
162
|
+
L0032: def modulo(
|
163
|
+
L0033: dividend,
|
164
|
+
L0034: divisor,
|
165
|
+
L0035: unused=0)
|
166
|
+
L0036: quotient = 0
|
167
|
+
L0037: remainder = 0
|
168
|
+
L0038: product = 0
|
169
|
+
L0039: quotient = \
|
170
|
+
L0040: dividend\
|
171
|
+
L0041: * 1/divisor
|
172
|
+
L0042: product = \
|
173
|
+
L0043: divisor\
|
174
|
+
L0044: * quotient
|
175
|
+
L0045: remainder = \
|
176
|
+
L0046: dividend\
|
177
|
+
L0047: - product
|
178
|
+
L0048: return remainder
|
179
|
+
L0049: end
|
180
|
+
L0050: def divisible(
|
181
|
+
L0051: dividend,
|
182
|
+
L0052: divisor,
|
183
|
+
L0053: unused=0)
|
184
|
+
L0054: result = 0
|
185
|
+
L0055: result = \
|
186
|
+
L0056: modulo(dividend, divisor)
|
187
|
+
L0057: isZero = 0
|
188
|
+
L0058: isZero = \
|
189
|
+
L0059: result\
|
190
|
+
L0060: == 0
|
191
|
+
L0061: return isZero
|
192
|
+
L0062: end
|
193
|
+
L0063: main
|
194
|
+
|
195
|
+
1
|
196
|
+
2
|
197
|
+
Fizz
|
198
|
+
4
|
199
|
+
Buzz
|
200
|
+
Fizz
|
201
|
+
7
|
202
|
+
8
|
203
|
+
Fizz
|
204
|
+
Buzz
|
205
|
+
11
|
206
|
+
Fizz
|
207
|
+
13
|
208
|
+
14
|
209
|
+
FizzBuzz
|
210
|
+
16
|
211
|
+
17
|
212
|
+
Fizz
|
213
|
+
19
|
214
|
+
Buzz
|
215
|
+
Fizz
|
216
|
+
22
|
217
|
+
23
|
218
|
+
Fizz
|
219
|
+
Buzz
|
220
|
+
26
|
221
|
+
Fizz
|
222
|
+
28
|
223
|
+
29
|
224
|
+
FizzBuzz
|
225
|
+
31
|
226
|
+
32
|
227
|
+
Fizz
|
228
|
+
34
|
229
|
+
Buzz
|
230
|
+
Fizz
|
231
|
+
37
|
232
|
+
38
|
233
|
+
Fizz
|
234
|
+
Buzz
|
235
|
+
41
|
236
|
+
Fizz
|
237
|
+
43
|
238
|
+
44
|
239
|
+
FizzBuzz
|
240
|
+
46
|
241
|
+
47
|
242
|
+
Fizz
|
243
|
+
49
|
244
|
+
Buzz
|
245
|
+
Fizz
|
246
|
+
52
|
247
|
+
53
|
248
|
+
Fizz
|
249
|
+
Buzz
|
250
|
+
56
|
251
|
+
Fizz
|
252
|
+
58
|
253
|
+
59
|
254
|
+
FizzBuzz
|
255
|
+
61
|
256
|
+
62
|
257
|
+
Fizz
|
258
|
+
64
|
259
|
+
Buzz
|
260
|
+
Fizz
|
261
|
+
67
|
262
|
+
68
|
263
|
+
Fizz
|
264
|
+
Buzz
|
265
|
+
71
|
266
|
+
Fizz
|
267
|
+
73
|
268
|
+
74
|
269
|
+
FizzBuzz
|
270
|
+
76
|
271
|
+
77
|
272
|
+
Fizz
|
273
|
+
79
|
274
|
+
Buzz
|
275
|
+
Fizz
|
276
|
+
82
|
277
|
+
83
|
278
|
+
Fizz
|
279
|
+
Buzz
|
280
|
+
86
|
281
|
+
Fizz
|
282
|
+
88
|
283
|
+
89
|
284
|
+
FizzBuzz
|
285
|
+
91
|
286
|
+
92
|
287
|
+
Fizz
|
288
|
+
94
|
289
|
+
Buzz
|
290
|
+
Fizz
|
291
|
+
97
|
292
|
+
98
|
293
|
+
Fizz
|
294
|
+
Buzz
|
295
|
+
|
296
|
+
Exiting.
|
297
|
+
```
|
data/arnoldc.rb.gemspec
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
Gem::Specification.new do |spec|
|
4
|
+
spec.name = "arnoldc.rb"
|
5
|
+
spec.version = "1.0.0"
|
6
|
+
spec.authors = ["Franck Verrot"]
|
7
|
+
spec.email = ["franck@verrot.fr"]
|
8
|
+
spec.summary = %q{arnoldc Ruby implementation}
|
9
|
+
spec.description = spec.summary
|
10
|
+
spec.homepage = "https://github.com/franckverrot/arnoldc.rb"
|
11
|
+
spec.license = "GPLv3"
|
12
|
+
|
13
|
+
spec.files = `git ls-files -z`.split("\x0")
|
14
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
15
|
+
|
16
|
+
spec.add_development_dependency "bundler", "~> 1.5"
|
17
|
+
end
|
data/bin/arnoldc.rb
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# COMPUTE FILE NAME
|
3
|
+
filename = ARGV.fetch(0) { raise ArgumentError, 'You should provide a script name. eg: ./arnoldc.rb my_file.arnoldc' }
|
4
|
+
|
5
|
+
# READ FILE
|
6
|
+
data = File.read(filename)
|
7
|
+
|
8
|
+
# DROP LEADING SPACES
|
9
|
+
data.gsub!(/^\s*(.*)/) { $1 }
|
10
|
+
|
11
|
+
# MAIN PROGRAM
|
12
|
+
data.gsub!(/IT'S SHOWTIME/,"def main")
|
13
|
+
data.gsub!(/(HASTA LA VISTA, BABY|CHILL|YOU HAVE BEEN TERMINATED|YOU HAVE NO RESPECT FOR LOGIC)/,"end")
|
14
|
+
|
15
|
+
# MACROS
|
16
|
+
data.gsub!(/@NO PROBLEMO/,"true")
|
17
|
+
data.gsub!(/@I LIED/,"false")
|
18
|
+
|
19
|
+
# CONDITIONALS
|
20
|
+
data.gsub!(/BECAUSE I'M GOING TO SAY PLEASE (\w*)/) { "if #{$1}" }
|
21
|
+
data.gsub!(/BULLSHIT/,"else")
|
22
|
+
|
23
|
+
# LOOP
|
24
|
+
data.gsub!(/STICK AROUND (\w*)/) { "while #{$1}" }
|
25
|
+
|
26
|
+
# ASSIGNMENTS
|
27
|
+
data.gsub!(/HEY CHRISTMAS TREE (\w+)\nYOU SET US UP (\w*)/) { "#{$1} = #{$2}" }
|
28
|
+
data.gsub!(/GET TO THE CHOPPER (\w+)/) { "#{$1} = \\" }
|
29
|
+
data.gsub!(/GET YOUR ASS TO MARS (\w+)/) { "#{$1} = \\" }
|
30
|
+
|
31
|
+
# METHODS
|
32
|
+
data.gsub!(/LISTEN TO ME VERY CAREFULLY (\w+)/) { "def #{$1}(" }
|
33
|
+
data.gsub!(/I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE (\w+)/) { "#{$1}," }
|
34
|
+
|
35
|
+
# METHOD CALLS
|
36
|
+
data.gsub!(/DO IT NOW (\w*) (\w+) (\w+)/) { "#{$1}(#{$2}, #{$3})" }
|
37
|
+
data.gsub!(/HERE IS MY INVITATION (\w+)/) { "#{$1}\\" }
|
38
|
+
|
39
|
+
# ARITHMETICS
|
40
|
+
data.gsub!(/GET DOWN (\w+)/) { "- #{$1}" }
|
41
|
+
data.gsub!(/GET UP (\w+)/) { "+ #{$1}" }
|
42
|
+
data.gsub!(/YOU'RE FIRED (\w+)/) { "* #{$1}" }
|
43
|
+
data.gsub!(/HE HAD TO SPLIT (\w+)/) { "* 1/#{$1}" }
|
44
|
+
|
45
|
+
# COMPARISONS
|
46
|
+
data.gsub!(/YOU ARE NOT YOU YOU ARE ME (\w+)/) { "== #{$1}" }
|
47
|
+
data.gsub!(/LET OFF SOME STEAM BENNET (\w+)/) { "> #{$1}" }
|
48
|
+
data.gsub!(/CONSIDER THAT A DIVORCE (\w+)/) { "|| #{$1}" }
|
49
|
+
data.gsub!(/KNOCK KNOCK (\w+)/) { "&& #{$1}" }
|
50
|
+
|
51
|
+
# HACKS :-D
|
52
|
+
data.gsub!(/ENOUGH TALK/) { "" }
|
53
|
+
data.gsub!(/GIVE THESE PEOPLE AIR/) { "unused=0)" }
|
54
|
+
data.gsub!(/I'LL BE BACK (\w+)/) { "return #{$1}" }
|
55
|
+
data.gsub!(/TALK TO THE HAND (.*)/) { "puts #{$1}" }
|
56
|
+
|
57
|
+
# WRAPPING THE SH*T UP
|
58
|
+
locs = data.split("\n").reject { |l| l.empty? } + ["main"]
|
59
|
+
data = locs.map.with_index { |l,i| "L%04d: %s" % [i, l] }.join("\n")
|
60
|
+
|
61
|
+
code = locs.join("\n")
|
62
|
+
puts "arnoldc.rb..."
|
63
|
+
puts data if $-w
|
64
|
+
puts
|
65
|
+
|
66
|
+
eval(code)
|
67
|
+
|
68
|
+
puts "\nExiting."
|
@@ -0,0 +1,25 @@
|
|
1
|
+
IT'S SHOWTIME
|
2
|
+
HEY CHRISTMAS TREE limit
|
3
|
+
YOU SET US UP 10
|
4
|
+
HEY CHRISTMAS TREE index
|
5
|
+
YOU SET US UP 1
|
6
|
+
HEY CHRISTMAS TREE squared
|
7
|
+
YOU SET US UP 1
|
8
|
+
HEY CHRISTMAS TREE loop
|
9
|
+
YOU SET US UP @NO PROBLEMO
|
10
|
+
STICK AROUND loop
|
11
|
+
GET TO THE CHOPPER squared
|
12
|
+
HERE IS MY INVITATION index
|
13
|
+
YOU'RE FIRED index
|
14
|
+
ENOUGH TALK
|
15
|
+
TALK TO THE HAND squared
|
16
|
+
GET TO THE CHOPPER loop
|
17
|
+
HERE IS MY INVITATION limit
|
18
|
+
LET OFF SOME STEAM BENNET index
|
19
|
+
ENOUGH TALK
|
20
|
+
GET TO THE CHOPPER index
|
21
|
+
HERE IS MY INVITATION index
|
22
|
+
GET UP 1
|
23
|
+
ENOUGH TALK
|
24
|
+
CHILL
|
25
|
+
YOU HAVE BEEN TERMINATED
|
@@ -0,0 +1,87 @@
|
|
1
|
+
IT'S SHOWTIME
|
2
|
+
|
3
|
+
HEY CHRISTMAS TREE isLessThan100
|
4
|
+
YOU SET US UP @NO PROBLEMO
|
5
|
+
HEY CHRISTMAS TREE n
|
6
|
+
YOU SET US UP 0
|
7
|
+
HEY CHRISTMAS TREE multiple
|
8
|
+
YOU SET US UP @NO PROBLEMO
|
9
|
+
|
10
|
+
STICK AROUND isLessThan100
|
11
|
+
GET TO THE CHOPPER n
|
12
|
+
HERE IS MY INVITATION n
|
13
|
+
GET UP 1
|
14
|
+
ENOUGH TALK
|
15
|
+
|
16
|
+
GET TO THE CHOPPER isLessThan100
|
17
|
+
HERE IS MY INVITATION 100
|
18
|
+
LET OFF SOME STEAM BENNET n
|
19
|
+
ENOUGH TALK
|
20
|
+
|
21
|
+
GET YOUR ASS TO MARS multiple
|
22
|
+
DO IT NOW divisible n 15
|
23
|
+
BECAUSE I'M GOING TO SAY PLEASE multiple
|
24
|
+
TALK TO THE HAND "FizzBuzz"
|
25
|
+
BULLSHIT
|
26
|
+
GET YOUR ASS TO MARS multiple
|
27
|
+
DO IT NOW divisible n 3
|
28
|
+
BECAUSE I'M GOING TO SAY PLEASE multiple
|
29
|
+
TALK TO THE HAND "Fizz"
|
30
|
+
BULLSHIT
|
31
|
+
GET YOUR ASS TO MARS multiple
|
32
|
+
DO IT NOW divisible n 5
|
33
|
+
BECAUSE I'M GOING TO SAY PLEASE multiple
|
34
|
+
TALK TO THE HAND "Buzz"
|
35
|
+
BULLSHIT
|
36
|
+
TALK TO THE HAND n
|
37
|
+
YOU HAVE NO RESPECT FOR LOGIC
|
38
|
+
YOU HAVE NO RESPECT FOR LOGIC
|
39
|
+
YOU HAVE NO RESPECT FOR LOGIC
|
40
|
+
CHILL
|
41
|
+
|
42
|
+
YOU HAVE BEEN TERMINATED
|
43
|
+
|
44
|
+
LISTEN TO ME VERY CAREFULLY modulo
|
45
|
+
I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE dividend
|
46
|
+
I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE divisor
|
47
|
+
GIVE THESE PEOPLE AIR
|
48
|
+
HEY CHRISTMAS TREE quotient
|
49
|
+
YOU SET US UP 0
|
50
|
+
HEY CHRISTMAS TREE remainder
|
51
|
+
YOU SET US UP 0
|
52
|
+
HEY CHRISTMAS TREE product
|
53
|
+
YOU SET US UP 0
|
54
|
+
GET TO THE CHOPPER quotient
|
55
|
+
HERE IS MY INVITATION dividend
|
56
|
+
HE HAD TO SPLIT divisor
|
57
|
+
ENOUGH TALK
|
58
|
+
GET TO THE CHOPPER product
|
59
|
+
HERE IS MY INVITATION divisor
|
60
|
+
YOU'RE FIRED quotient
|
61
|
+
ENOUGH TALK
|
62
|
+
GET TO THE CHOPPER remainder
|
63
|
+
HERE IS MY INVITATION dividend
|
64
|
+
GET DOWN product
|
65
|
+
ENOUGH TALK
|
66
|
+
I'LL BE BACK remainder
|
67
|
+
HASTA LA VISTA, BABY
|
68
|
+
|
69
|
+
LISTEN TO ME VERY CAREFULLY divisible
|
70
|
+
I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE dividend
|
71
|
+
I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE divisor
|
72
|
+
GIVE THESE PEOPLE AIR
|
73
|
+
|
74
|
+
HEY CHRISTMAS TREE result
|
75
|
+
YOU SET US UP 0
|
76
|
+
GET YOUR ASS TO MARS result
|
77
|
+
DO IT NOW modulo dividend divisor
|
78
|
+
|
79
|
+
HEY CHRISTMAS TREE isZero
|
80
|
+
YOU SET US UP 0
|
81
|
+
GET TO THE CHOPPER isZero
|
82
|
+
HERE IS MY INVITATION result
|
83
|
+
YOU ARE NOT YOU YOU ARE ME 0
|
84
|
+
ENOUGH TALK
|
85
|
+
|
86
|
+
I'LL BE BACK isZero
|
87
|
+
HASTA LA VISTA, BABY
|
metadata
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: arnoldc.rb
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Franck Verrot
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-02-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.5'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.5'
|
27
|
+
description: arnoldc Ruby implementation
|
28
|
+
email:
|
29
|
+
- franck@verrot.fr
|
30
|
+
executables:
|
31
|
+
- arnoldc.rb
|
32
|
+
extensions: []
|
33
|
+
extra_rdoc_files: []
|
34
|
+
files:
|
35
|
+
- README.md
|
36
|
+
- arnoldc.rb.gemspec
|
37
|
+
- bin/arnoldc.rb
|
38
|
+
- samples/HelloWorld.arnoldc
|
39
|
+
- samples/file.arnoldc
|
40
|
+
- samples/fizzbuzz.arnoldc
|
41
|
+
homepage: https://github.com/franckverrot/arnoldc.rb
|
42
|
+
licenses:
|
43
|
+
- GPLv3
|
44
|
+
metadata: {}
|
45
|
+
post_install_message:
|
46
|
+
rdoc_options: []
|
47
|
+
require_paths:
|
48
|
+
- lib
|
49
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: '0'
|
59
|
+
requirements: []
|
60
|
+
rubyforge_project:
|
61
|
+
rubygems_version: 2.2.0
|
62
|
+
signing_key:
|
63
|
+
specification_version: 4
|
64
|
+
summary: arnoldc Ruby implementation
|
65
|
+
test_files: []
|