shen-ruby 0.3.1 → 0.4.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/.gitignore +2 -0
- data/.travis.yml +5 -0
- data/Gemfile +2 -2
- data/HISTORY.md +12 -0
- data/README.md +10 -7
- data/Rakefile +92 -0
- data/bin/srrepl +2 -2
- data/k_lambda_spec/primitives/arithmetic_spec.rb +175 -0
- data/k_lambda_spec/primitives/assignments_spec.rb +44 -0
- data/k_lambda_spec/primitives/generic_functions_spec.rb +115 -2
- data/k_lambda_spec/primitives/lists_spec.rb +40 -0
- data/k_lambda_spec/primitives/strings_spec.rb +77 -0
- data/k_lambda_spec/primitives/symbols_spec.rb +24 -0
- data/k_lambda_spec/primitives/vectors_spec.rb +92 -0
- data/k_lambda_spec/support/shared_examples.rb +93 -2
- data/k_lambda_spec/tail_recursion_spec.rb +30 -0
- data/lib/kl/compiler.rb +19 -33
- data/lib/kl/environment.rb +1 -0
- data/lib/kl/primitives/assignments.rb +1 -0
- data/lib/kl/primitives/generic_functions.rb +7 -0
- data/lib/kl/primitives/lists.rb +2 -0
- data/lib/kl/primitives/strings.rb +13 -5
- data/lib/kl/primitives/symbols.rb +1 -0
- data/lib/kl/primitives/vectors.rb +5 -0
- data/lib/shen_ruby/version.rb +1 -1
- data/shen-ruby.gemspec +1 -1
- data/shen/lib/shen_ruby/shen.rb +5 -6
- data/shen/release/benchmarks/benchmarks.shen +0 -4
- data/shen/release/benchmarks/interpreter.shen +2 -2
- data/shen/release/benchmarks/plato.jpg +0 -0
- data/shen/release/k_lambda/core.kl +171 -1000
- data/shen/release/k_lambda/declarations.kl +90 -992
- data/shen/release/k_lambda/load.kl +69 -81
- data/shen/release/k_lambda/macros.kl +113 -478
- data/shen/release/k_lambda/prolog.kl +250 -1307
- data/shen/release/k_lambda/reader.kl +115 -996
- data/shen/release/k_lambda/sequent.kl +154 -554
- data/shen/release/k_lambda/sys.kl +246 -562
- data/shen/release/k_lambda/t-star.kl +114 -3643
- data/shen/release/k_lambda/toplevel.kl +136 -221
- data/shen/release/k_lambda/track.kl +101 -206
- data/shen/release/k_lambda/types.kl +143 -298
- data/shen/release/k_lambda/writer.kl +93 -106
- data/shen/release/k_lambda/yacc.kl +77 -252
- data/shen/release/test_programs/README.shen +1 -1
- data/shen/release/test_programs/classes-typed.shen +1 -1
- data/shen/release/test_programs/interpreter.shen +2 -2
- data/shen/release/test_programs/metaprog.shen +2 -2
- data/shen/release/test_programs/prolog.shen +79 -0
- data/shen/release/test_programs/structures-typed.shen +2 -2
- data/shen/release/test_programs/tests.shen +19 -80
- data/shen/release/test_programs/yacc.shen +11 -15
- metadata +14 -6
- data/Gemfile.lock +0 -20
- data/shen/release/benchmarks/br.shen +0 -13
@@ -1,7 +1,7 @@
|
|
1
1
|
(declare defclass [symbol --> [list [symbol * symbol]] --> symbol])
|
2
2
|
|
3
3
|
(define defclass
|
4
|
-
Class ClassDef -> (let Attributes (map fst ClassDef)
|
4
|
+
Class ClassDef -> (let Attributes (map (function fst) ClassDef)
|
5
5
|
Types (record-attribute-types Class ClassDef)
|
6
6
|
Assoc (map (/. Attribute [Attribute | fail]) Attributes)
|
7
7
|
ClassDef [[class | Class] | Assoc]
|
@@ -10,7 +10,7 @@
|
|
10
10
|
[_ Output] -> Output)
|
11
11
|
|
12
12
|
(define generate_parser
|
13
|
-
Grammar -> (map compile_rules (group_rules (parenthesise_rules Grammar))))
|
13
|
+
Grammar -> (map (/. X (compile_rules X)) (group_rules (parenthesise_rules Grammar))))
|
14
14
|
|
15
15
|
(define parenthesise_rules
|
16
16
|
[S --> | Rest] -> (parenthesise_rules1 [S -->] Rest))
|
@@ -76,7 +76,7 @@
|
|
76
76
|
(define generate_code_for_lex
|
77
77
|
Rules -> (eval (append [define (get_characteristic_non_terminal Rules)
|
78
78
|
(protect X) -> [fail] where [= (protect X) [fail]]
|
79
|
-
| (mapapp gcfl_help Rules)]
|
79
|
+
| (mapapp (function gcfl_help) Rules)]
|
80
80
|
[(protect X) -> [fail]])))
|
81
81
|
|
82
82
|
(define gcfl_help
|
@@ -0,0 +1,79 @@
|
|
1
|
+
(defprolog f
|
2
|
+
a <--;)
|
3
|
+
|
4
|
+
(defprolog g
|
5
|
+
a <-- ! (f b);
|
6
|
+
X <-- (f a);)
|
7
|
+
|
8
|
+
(defprolog mem
|
9
|
+
X [X | _] <--;
|
10
|
+
X [Y | Z] <-- (mem X Z);)
|
11
|
+
|
12
|
+
(defprolog app
|
13
|
+
[] X X <--;
|
14
|
+
[X | Y] W [X | Z] <-- (app Y W Z);)
|
15
|
+
|
16
|
+
(defprolog rev
|
17
|
+
[] [] <--;
|
18
|
+
[X | Y] Z <-- (rev Y W) (app W [X] Z);)
|
19
|
+
|
20
|
+
(defprolog enjoys
|
21
|
+
willi X <-- (likes mark X);
|
22
|
+
mark chocolate <--;
|
23
|
+
mark tea <--;) enjoys
|
24
|
+
|
25
|
+
(defprolog fads
|
26
|
+
X <-- (findall Y [enjoys X Y] Friends) (return Friends);) fads
|
27
|
+
|
28
|
+
(defprolog prop
|
29
|
+
A C <-- (proph [[~ C] | A]);) prop
|
30
|
+
|
31
|
+
(defprolog proph
|
32
|
+
A <-- (mem [~ P] A) (mem P A) !;
|
33
|
+
A <-- (consistent A) ! (when false);
|
34
|
+
(mode [[P & Q] | A] -) <-- ! (proph [P Q | A]);
|
35
|
+
(mode [[P <=> Q] | A] -) <-- ! (proph [[P => Q] [Q => P] | A]);
|
36
|
+
(mode [[P => Q] | A] -) <-- ! (proph [[[~ P] v Q] | A]);
|
37
|
+
(mode [[~ [P v Q]] | A] -) <-- ! (proph [[~ P] [~ Q] | A]);
|
38
|
+
(mode [[~ [P & Q]] | A] -) <-- ! (proph [[[~ P] v [~ Q]] | A]);
|
39
|
+
(mode [[~ [P => Q]] | A] -) <-- ! (proph [P [~ Q] | A]);
|
40
|
+
(mode [[~ [P <=> Q]] | A] -) <-- ! (proph [[~ [[P => Q] v [~ [Q => P]]]] | A]);
|
41
|
+
(mode [[P & Q] | A] -) <-- ! (proph [P Q | A]);
|
42
|
+
(mode [[P v Q] | A] -) <-- ! (proph [P | A]) ! (proph [Q | A]);
|
43
|
+
(mode [P | Ps] -) <-- (app Ps [P] Qs) ! (proph Qs);)
|
44
|
+
|
45
|
+
(defprolog consistent
|
46
|
+
[] <--;
|
47
|
+
[P | Ps] <-- (when (symbol? P)) ! (consistent Ps);
|
48
|
+
[[~ P] | Ps] <-- (when (symbol? P)) ! (consistent Ps);)
|
49
|
+
|
50
|
+
(defprolog app
|
51
|
+
[] X X <--;
|
52
|
+
(mode [X | Y] -) W [X | Z] <-- (app Y W Z);)
|
53
|
+
|
54
|
+
(defprolog mem
|
55
|
+
X (mode [X | _] -) <--;
|
56
|
+
X (mode [_ | Y] -) <-- (mem X Y);)
|
57
|
+
|
58
|
+
(defprolog mapit
|
59
|
+
_ [] [] <--;
|
60
|
+
Pred [X | Y] [W | Z] <-- (call [Pred X W]) (mapit Pred Y Z);)
|
61
|
+
|
62
|
+
(defprolog consit
|
63
|
+
X [1 X] <--;)
|
64
|
+
|
65
|
+
(defprolog different
|
66
|
+
X Y <-- (~ [identical X Y]);)
|
67
|
+
|
68
|
+
(defprolog ~
|
69
|
+
P <-- (call P) ! (when false);
|
70
|
+
_ <--;)
|
71
|
+
|
72
|
+
(defprolog likes
|
73
|
+
john X <-- (tall X) (pretty X);)
|
74
|
+
|
75
|
+
(defprolog tall
|
76
|
+
mary <--;)
|
77
|
+
|
78
|
+
(defprolog pretty
|
79
|
+
mary <--;)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
(define defstruct
|
2
2
|
Name Slots
|
3
|
-
-> (let Attributes (map fst Slots)
|
4
|
-
Types (map snd Slots)
|
3
|
+
-> (let Attributes (map (function fst) Slots)
|
4
|
+
Types (map (function snd) Slots)
|
5
5
|
Selectors (selectors Name Attributes)
|
6
6
|
Constructor (constructor Name Attributes)
|
7
7
|
Recognisor (recognisor Name)
|
@@ -1,84 +1,23 @@
|
|
1
1
|
(maxinferences 10000000000)
|
2
2
|
|
3
3
|
(report prolog-tests
|
4
|
-
(
|
5
|
-
a <--;) f
|
4
|
+
(load "prolog.shen") loaded
|
6
5
|
(prolog? (f a)) true
|
7
|
-
(
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
(
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
(prolog? (rev [1 2] X) (return X)) [2 1]
|
23
|
-
(load "einstein.shen") loaded
|
24
|
-
(prolog? (einsteins_riddle X) (return X)) german
|
25
|
-
(defprolog enjoys
|
26
|
-
willi X <-- (likes mark X);
|
27
|
-
mark chocolate <--;
|
28
|
-
mark tea <--;) enjoys
|
29
|
-
(prolog? (enjoys mark X) (return X)) chocolate
|
30
|
-
(defprolog fads
|
31
|
-
X <-- (findall Y [enjoys X Y] Friends) (return Friends);) fads
|
32
|
-
(prolog? (fads mark)) [tea chocolate]
|
33
|
-
(defprolog prop
|
34
|
-
A C <-- (proph [[~ C] | A]);) prop
|
35
|
-
(defprolog proph
|
36
|
-
A <-- (mem [~ P] A) (mem P A) !;
|
37
|
-
A <-- (consistent A) ! (when false);
|
38
|
-
(mode [[P & Q] | A] -) <-- ! (proph [P Q | A]);
|
39
|
-
(mode [[P <=> Q] | A] -) <-- ! (proph [[P => Q] [Q => P] | A]);
|
40
|
-
(mode [[P => Q] | A] -) <-- ! (proph [[[~ P] v Q] | A]);
|
41
|
-
(mode [[~ [P v Q]] | A] -) <-- ! (proph [[~ P] [~ Q] | A]);
|
42
|
-
(mode [[~ [P & Q]] | A] -) <-- ! (proph [[[~ P] v [~ Q]] | A]);
|
43
|
-
(mode [[~ [P => Q]] | A] -) <-- ! (proph [P [~ Q] | A]);
|
44
|
-
(mode [[~ [P <=> Q]] | A] -) <-- ! (proph [[~ [[P => Q] v [~ [Q => P]]]] | A]);
|
45
|
-
(mode [[P & Q] | A] -) <-- ! (proph [P Q | A]);
|
46
|
-
(mode [[P v Q] | A] -) <-- ! (proph [P | A]) ! (proph [Q | A]);
|
47
|
-
(mode [P | Ps] -) <-- (app Ps [P] Qs) ! (proph Qs);) proph
|
48
|
-
(defprolog consistent
|
49
|
-
[] <--;
|
50
|
-
[P | Ps] <-- (when (symbol? P)) ! (consistent Ps);
|
51
|
-
[[~ P] | Ps] <-- (when (symbol? P)) ! (consistent Ps);) consistent
|
52
|
-
(defprolog app
|
53
|
-
[] X X <--;
|
54
|
-
(mode [X | Y] -) W [X | Z] <-- (app Y W Z);) app
|
55
|
-
(defprolog mem
|
56
|
-
X (mode [X | _] -) <--;
|
57
|
-
X (mode [_ | Y] -) <-- (mem X Y);) mem
|
58
|
-
(prolog? (prop [] [p <=> p])) true
|
59
|
-
(defprolog mapit
|
60
|
-
_ [] [] <--;
|
61
|
-
Pred [X | Y] [W | Z] <-- (call [Pred X W]) (mapit Pred Y Z);) mapit
|
62
|
-
(defprolog consit
|
63
|
-
X [1 X] <--;) consit
|
64
|
-
(prolog? (mapit consit [1 2 3] Out) (return Out))
|
65
|
-
[[1 1] [1 2] [1 3]]
|
66
|
-
(defprolog different
|
67
|
-
X Y <-- (~ [identical X Y]);) different
|
68
|
-
(defprolog ~
|
69
|
-
P <-- (call P) ! (when false);
|
70
|
-
_ <--;) ~
|
71
|
-
(prolog? (different a b)) true
|
72
|
-
(prolog? (different a a)) false
|
73
|
-
(defprolog likes
|
74
|
-
john X <-- (tall X) (pretty X);) likes
|
75
|
-
(defprolog tall
|
76
|
-
mary <--;) tall
|
77
|
-
(defprolog pretty
|
78
|
-
mary <--;) pretty
|
79
|
-
(prolog? (likes john Who) (return Who)) mary
|
80
|
-
(load "parse.prl") loaded
|
81
|
-
(prolog? (pparse ["the" + ["boy" + "jumps"]]
|
6
|
+
(prolog? (g a)) false
|
7
|
+
(prolog? (g b)) true
|
8
|
+
(prolog? (mem 1 [X | 2]) (return X)) 1
|
9
|
+
(prolog? (rev [1 2] X) (return X)) [2 1]
|
10
|
+
(load "einstein.shen") loaded
|
11
|
+
(prolog? (einsteins_riddle X) (return X)) german
|
12
|
+
(prolog? (enjoys mark X) (return X)) chocolate
|
13
|
+
(prolog? (fads mark)) [tea chocolate]
|
14
|
+
(prolog? (prop [] [p <=> p])) true
|
15
|
+
(prolog? (mapit consit [1 2 3] Out) (return Out)) [[1 1] [1 2] [1 3]]
|
16
|
+
(prolog? (different a b)) true
|
17
|
+
(prolog? (different a a)) false
|
18
|
+
(prolog? (likes john Who) (return Who)) mary
|
19
|
+
(load "parse.prl") loaded
|
20
|
+
(prolog? (pparse ["the" + ["boy" + "jumps"]]
|
82
21
|
[[s = [np + vp]]
|
83
22
|
[np = [det + n]]
|
84
23
|
[det = "the"]
|
@@ -223,7 +162,7 @@
|
|
223
162
|
(report "yacc"
|
224
163
|
(load "yacc.shen") loaded
|
225
164
|
(compile <sent> [the cat likes the dog]) [the cat likes the dog]
|
226
|
-
(compile <sent> [the cat likes the canary]) (fail)
|
165
|
+
(compile <sent> [the cat likes the canary] (/. E (fail))) (fail)
|
227
166
|
(compile <asbscs> [a a a b b c]) [a a a b b c]
|
228
167
|
(compile <find-digit> [a v f g 6 y u]) [6]
|
229
168
|
(compile <vp> [chases the cat]) [chases the cat]
|
@@ -231,7 +170,7 @@
|
|
231
170
|
(compile <sent'> [the cat likes the dog]) [is it true that your father likes the dog ?]
|
232
171
|
(compile <as> [a a a]) [a a a]
|
233
172
|
(compile <find-digit'> [a v f g 6 y u]) [6 y u]
|
234
|
-
(compile <asbs'cs> [a v f g 6 y u]) (fail)
|
173
|
+
(compile <asbs'cs> [a v f g 6 y u] (/. E (fail))) (fail)
|
235
174
|
(compile <find-digit''> [a v f g 6 y u]) 6
|
236
175
|
(compile <anbncn> [a a a b b b c c c]) [a a a b b b c c c] )
|
237
176
|
|
@@ -291,4 +230,4 @@
|
|
291
230
|
(load "TinyLispFunctions.txt") loaded
|
292
231
|
(tc -) false )
|
293
232
|
|
294
|
-
(reset)
|
233
|
+
(reset)
|
@@ -12,7 +12,7 @@ the; a;)
|
|
12
12
|
cat; dog;)
|
13
13
|
|
14
14
|
(defcc <name1>
|
15
|
-
|
15
|
+
X := X where (element? X [(protect Bill) (protect Ben)]);)
|
16
16
|
|
17
17
|
(defcc <vp>
|
18
18
|
<vtrans> <np>;)
|
@@ -44,19 +44,19 @@ NP VP -> (append [is it true that your father] VP [?]))
|
|
44
44
|
(defcc <find-digit>
|
45
45
|
<digit> <morestuff> := <digit>;
|
46
46
|
<digit> := <digit>;
|
47
|
-
|
47
|
+
X <find-digit> := <find-digit>;)
|
48
48
|
|
49
49
|
(defcc <morestuff>
|
50
|
-
|
51
|
-
|
50
|
+
X <morestuff>;
|
51
|
+
X;)
|
52
52
|
|
53
53
|
(defcc <digit>
|
54
54
|
0; 1; 2; 3; 4; 5; 6; 7; 8; 9;)
|
55
55
|
|
56
56
|
(defcc <find-digit'>
|
57
|
-
<digit> <morestuff
|
58
|
-
<digit> :=
|
59
|
-
|
57
|
+
<digit> <morestuff>;
|
58
|
+
<digit> := <digit>;
|
59
|
+
X <find-digit'> := <find-digit'>;)
|
60
60
|
|
61
61
|
(defcc <asbscs>
|
62
62
|
<as> <bs> <cs>;)
|
@@ -85,18 +85,14 @@ b;
|
|
85
85
|
(defcc <find-digit''>
|
86
86
|
<digit''> <morestuff> := <digit''>;
|
87
87
|
<digit''> := <digit''>;
|
88
|
-
|
88
|
+
X <find-digit''> := <find-digit''>;)
|
89
89
|
|
90
90
|
(defcc <digit''>
|
91
|
-
|
92
|
-
|
93
|
-
(define one_of
|
94
|
-
X Y -> (if (element? X Y) X (fail)))
|
91
|
+
X := X where (element? X [0 1 2 3 4 5 6 7 8 9]);)
|
95
92
|
|
96
93
|
(defcc <anbncn>
|
97
|
-
<as> <bs> <cs> := (
|
98
|
-
|
99
|
-
(fail));)
|
94
|
+
<as> <bs> <cs> := (appendall [<as> <bs> <cs>])
|
95
|
+
where (equal-length? [<as> <bs> <cs>]);)
|
100
96
|
|
101
97
|
(defcc <as>
|
102
98
|
a <as>;
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shen-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-
|
13
|
+
date: 2013-03-15 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rspec
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
- !ruby/object:Gem::Version
|
30
30
|
version: '2.12'
|
31
31
|
description: ShenRuby is a port of the Shen programming language to Ruby. It currently
|
32
|
-
supports Shen version
|
32
|
+
supports Shen version 9.0.
|
33
33
|
email:
|
34
34
|
- greg@sourcematters.org
|
35
35
|
executables:
|
@@ -39,18 +39,26 @@ extra_rdoc_files: []
|
|
39
39
|
files:
|
40
40
|
- .gitignore
|
41
41
|
- .rspec
|
42
|
+
- .travis.yml
|
42
43
|
- Gemfile
|
43
|
-
- Gemfile.lock
|
44
44
|
- HISTORY.md
|
45
45
|
- MIT_LICENSE.txt
|
46
46
|
- README.md
|
47
|
+
- Rakefile
|
47
48
|
- bin/shen_test_suite.rb
|
48
49
|
- bin/srrepl
|
49
50
|
- k_lambda_spec/atom_spec.rb
|
51
|
+
- k_lambda_spec/primitives/arithmetic_spec.rb
|
52
|
+
- k_lambda_spec/primitives/assignments_spec.rb
|
50
53
|
- k_lambda_spec/primitives/boolean_operations_spec.rb
|
51
54
|
- k_lambda_spec/primitives/generic_functions_spec.rb
|
55
|
+
- k_lambda_spec/primitives/lists_spec.rb
|
56
|
+
- k_lambda_spec/primitives/strings_spec.rb
|
57
|
+
- k_lambda_spec/primitives/symbols_spec.rb
|
58
|
+
- k_lambda_spec/primitives/vectors_spec.rb
|
52
59
|
- k_lambda_spec/spec_helper.rb
|
53
60
|
- k_lambda_spec/support/shared_examples.rb
|
61
|
+
- k_lambda_spec/tail_recursion_spec.rb
|
54
62
|
- lib/kl.rb
|
55
63
|
- lib/kl/absvector.rb
|
56
64
|
- lib/kl/compiler.rb
|
@@ -83,7 +91,6 @@ files:
|
|
83
91
|
- shen/release/benchmarks/README.shen
|
84
92
|
- shen/release/benchmarks/benchmarks.shen
|
85
93
|
- shen/release/benchmarks/bigprog
|
86
|
-
- shen/release/benchmarks/br.shen
|
87
94
|
- shen/release/benchmarks/einstein.shen
|
88
95
|
- shen/release/benchmarks/heatwave.gif
|
89
96
|
- shen/release/benchmarks/interpreter.shen
|
@@ -135,6 +142,7 @@ files:
|
|
135
142
|
- shen/release/test_programs/parser.shen
|
136
143
|
- shen/release/test_programs/powerset.shen
|
137
144
|
- shen/release/test_programs/prime.shen
|
145
|
+
- shen/release/test_programs/prolog.shen
|
138
146
|
- shen/release/test_programs/proof_assistant.shen
|
139
147
|
- shen/release/test_programs/proplog_version_1.shen
|
140
148
|
- shen/release/test_programs/proplog_version_2.shen
|
@@ -182,7 +190,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
182
190
|
version: '0'
|
183
191
|
requirements: []
|
184
192
|
rubyforge_project:
|
185
|
-
rubygems_version: 1.8.
|
193
|
+
rubygems_version: 1.8.23
|
186
194
|
signing_key:
|
187
195
|
specification_version: 3
|
188
196
|
summary: ShenRuby is a Ruby port of the Shen programming language
|
data/Gemfile.lock
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
GEM
|
2
|
-
remote: http://rubygems.org/
|
3
|
-
specs:
|
4
|
-
ZenTest (4.8.3)
|
5
|
-
diff-lcs (1.1.3)
|
6
|
-
rspec (2.12.0)
|
7
|
-
rspec-core (~> 2.12.0)
|
8
|
-
rspec-expectations (~> 2.12.0)
|
9
|
-
rspec-mocks (~> 2.12.0)
|
10
|
-
rspec-core (2.12.1)
|
11
|
-
rspec-expectations (2.12.0)
|
12
|
-
diff-lcs (~> 1.1.3)
|
13
|
-
rspec-mocks (2.12.0)
|
14
|
-
|
15
|
-
PLATFORMS
|
16
|
-
ruby
|
17
|
-
|
18
|
-
DEPENDENCIES
|
19
|
-
ZenTest (~> 4.8.3)
|
20
|
-
rspec (~> 2.12.0)
|