delorean_lang 0.5.0 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitlab-ci.yml +29 -0
- data/.rubocop.yml +30 -1
- data/.rubocop_todo.yml +751 -0
- data/delorean.gemspec +1 -0
- data/lib/delorean/base.rb +3 -1
- data/lib/delorean/delorean.rb +207 -177
- data/lib/delorean/delorean.treetop +5 -0
- data/lib/delorean/nodes.rb +10 -0
- data/lib/delorean/version.rb +1 -1
- data/spec/cache_spec.rb +4 -2
- data/spec/eval_spec.rb +18 -0
- data/spec/ruby/whitelist_spec.rb +1 -1
- metadata +18 -2
data/delorean.gemspec
CHANGED
data/lib/delorean/base.rb
CHANGED
@@ -9,7 +9,9 @@ module Delorean
|
|
9
9
|
|
10
10
|
::Delorean::Ruby.whitelist = ::Delorean::Ruby::Whitelists::Default.new
|
11
11
|
|
12
|
-
::Delorean::Cache.adapter = ::Delorean::Cache::Adapters::RubyCache.new(
|
12
|
+
::Delorean::Cache.adapter = ::Delorean::Cache::Adapters::RubyCache.new(
|
13
|
+
size_per_class: 1000
|
14
|
+
)
|
13
15
|
|
14
16
|
module BaseModule
|
15
17
|
# _e is used by Marty promise_jobs to pass promise-related
|
data/lib/delorean/delorean.rb
CHANGED
@@ -914,21 +914,21 @@ module Delorean
|
|
914
914
|
end
|
915
915
|
|
916
916
|
module DotExp1
|
917
|
-
def i
|
918
|
-
elements[2]
|
919
|
-
end
|
920
|
-
|
921
917
|
def al
|
922
|
-
elements[
|
918
|
+
elements[2]
|
923
919
|
end
|
924
920
|
|
925
921
|
end
|
926
922
|
|
927
923
|
module DotExp2
|
928
|
-
def
|
924
|
+
def i
|
929
925
|
elements[2]
|
930
926
|
end
|
931
927
|
|
928
|
+
def al
|
929
|
+
elements[5]
|
930
|
+
end
|
931
|
+
|
932
932
|
end
|
933
933
|
|
934
934
|
module DotExp3
|
@@ -1002,11 +1002,11 @@ module Delorean
|
|
1002
1002
|
r0 = r1
|
1003
1003
|
else
|
1004
1004
|
i9, s9 = index, []
|
1005
|
-
if (match_len = has_terminal?('
|
1005
|
+
if (match_len = has_terminal?('(', false, index))
|
1006
1006
|
r10 = true
|
1007
1007
|
@index += match_len
|
1008
1008
|
else
|
1009
|
-
terminal_parse_failure('\'
|
1009
|
+
terminal_parse_failure('\'(\'')
|
1010
1010
|
r10 = nil
|
1011
1011
|
end
|
1012
1012
|
s9 << r10
|
@@ -1019,59 +1019,36 @@ module Delorean
|
|
1019
1019
|
end
|
1020
1020
|
s9 << r11
|
1021
1021
|
if r11
|
1022
|
-
|
1022
|
+
r14 = _nt_kw_args
|
1023
|
+
if r14
|
1024
|
+
r13 = r14
|
1025
|
+
else
|
1026
|
+
r13 = instantiate_node(SyntaxNode,input, index...index)
|
1027
|
+
end
|
1023
1028
|
s9 << r13
|
1024
1029
|
if r13
|
1025
|
-
|
1026
|
-
|
1027
|
-
|
1030
|
+
r16 = _nt_sp
|
1031
|
+
if r16
|
1032
|
+
r15 = r16
|
1028
1033
|
else
|
1029
|
-
|
1030
|
-
r14 = nil
|
1034
|
+
r15 = instantiate_node(SyntaxNode,input, index...index)
|
1031
1035
|
end
|
1032
|
-
s9 <<
|
1033
|
-
if
|
1034
|
-
|
1035
|
-
|
1036
|
-
|
1036
|
+
s9 << r15
|
1037
|
+
if r15
|
1038
|
+
if (match_len = has_terminal?(')', false, index))
|
1039
|
+
r17 = true
|
1040
|
+
@index += match_len
|
1037
1041
|
else
|
1038
|
-
|
1039
|
-
|
1040
|
-
s9 << r15
|
1041
|
-
if r15
|
1042
|
-
r18 = _nt_fn_args
|
1043
|
-
if r18
|
1044
|
-
r17 = r18
|
1045
|
-
else
|
1046
|
-
r17 = instantiate_node(SyntaxNode,input, index...index)
|
1047
|
-
end
|
1048
|
-
s9 << r17
|
1049
|
-
if r17
|
1050
|
-
r20 = _nt_sp
|
1051
|
-
if r20
|
1052
|
-
r19 = r20
|
1053
|
-
else
|
1054
|
-
r19 = instantiate_node(SyntaxNode,input, index...index)
|
1055
|
-
end
|
1056
|
-
s9 << r19
|
1057
|
-
if r19
|
1058
|
-
if (match_len = has_terminal?(')', false, index))
|
1059
|
-
r21 = true
|
1060
|
-
@index += match_len
|
1061
|
-
else
|
1062
|
-
terminal_parse_failure('\')\'')
|
1063
|
-
r21 = nil
|
1064
|
-
end
|
1065
|
-
s9 << r21
|
1066
|
-
end
|
1067
|
-
end
|
1042
|
+
terminal_parse_failure('\')\'')
|
1043
|
+
r17 = nil
|
1068
1044
|
end
|
1045
|
+
s9 << r17
|
1069
1046
|
end
|
1070
1047
|
end
|
1071
1048
|
end
|
1072
1049
|
end
|
1073
1050
|
if s9.last
|
1074
|
-
r9 = instantiate_node(
|
1051
|
+
r9 = instantiate_node(NodeCall,input, i9...index, s9)
|
1075
1052
|
r9.extend(DotExp1)
|
1076
1053
|
else
|
1077
1054
|
@index = i9
|
@@ -1081,62 +1058,85 @@ module Delorean
|
|
1081
1058
|
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
1082
1059
|
r0 = r9
|
1083
1060
|
else
|
1084
|
-
|
1085
|
-
if (match_len = has_terminal?('
|
1086
|
-
|
1061
|
+
i18, s18 = index, []
|
1062
|
+
if (match_len = has_terminal?('.', false, index))
|
1063
|
+
r19 = true
|
1087
1064
|
@index += match_len
|
1088
1065
|
else
|
1089
|
-
terminal_parse_failure('\'
|
1090
|
-
|
1091
|
-
end
|
1092
|
-
|
1093
|
-
if
|
1094
|
-
|
1095
|
-
if
|
1096
|
-
|
1066
|
+
terminal_parse_failure('\'.\'')
|
1067
|
+
r19 = nil
|
1068
|
+
end
|
1069
|
+
s18 << r19
|
1070
|
+
if r19
|
1071
|
+
r21 = _nt_sp
|
1072
|
+
if r21
|
1073
|
+
r20 = r21
|
1097
1074
|
else
|
1098
|
-
|
1099
|
-
end
|
1100
|
-
|
1101
|
-
if
|
1102
|
-
|
1103
|
-
|
1104
|
-
|
1105
|
-
|
1106
|
-
|
1107
|
-
|
1108
|
-
s22 << r26
|
1109
|
-
if r26
|
1110
|
-
r29 = _nt_sp
|
1111
|
-
if r29
|
1112
|
-
r28 = r29
|
1075
|
+
r20 = instantiate_node(SyntaxNode,input, index...index)
|
1076
|
+
end
|
1077
|
+
s18 << r20
|
1078
|
+
if r20
|
1079
|
+
r22 = _nt_identifier
|
1080
|
+
s18 << r22
|
1081
|
+
if r22
|
1082
|
+
if (match_len = has_terminal?('(', false, index))
|
1083
|
+
r23 = true
|
1084
|
+
@index += match_len
|
1113
1085
|
else
|
1114
|
-
|
1086
|
+
terminal_parse_failure('\'(\'')
|
1087
|
+
r23 = nil
|
1115
1088
|
end
|
1116
|
-
|
1117
|
-
if
|
1118
|
-
|
1119
|
-
|
1120
|
-
|
1089
|
+
s18 << r23
|
1090
|
+
if r23
|
1091
|
+
r25 = _nt_sp
|
1092
|
+
if r25
|
1093
|
+
r24 = r25
|
1121
1094
|
else
|
1122
|
-
|
1123
|
-
|
1095
|
+
r24 = instantiate_node(SyntaxNode,input, index...index)
|
1096
|
+
end
|
1097
|
+
s18 << r24
|
1098
|
+
if r24
|
1099
|
+
r27 = _nt_fn_args
|
1100
|
+
if r27
|
1101
|
+
r26 = r27
|
1102
|
+
else
|
1103
|
+
r26 = instantiate_node(SyntaxNode,input, index...index)
|
1104
|
+
end
|
1105
|
+
s18 << r26
|
1106
|
+
if r26
|
1107
|
+
r29 = _nt_sp
|
1108
|
+
if r29
|
1109
|
+
r28 = r29
|
1110
|
+
else
|
1111
|
+
r28 = instantiate_node(SyntaxNode,input, index...index)
|
1112
|
+
end
|
1113
|
+
s18 << r28
|
1114
|
+
if r28
|
1115
|
+
if (match_len = has_terminal?(')', false, index))
|
1116
|
+
r30 = true
|
1117
|
+
@index += match_len
|
1118
|
+
else
|
1119
|
+
terminal_parse_failure('\')\'')
|
1120
|
+
r30 = nil
|
1121
|
+
end
|
1122
|
+
s18 << r30
|
1123
|
+
end
|
1124
|
+
end
|
1124
1125
|
end
|
1125
|
-
s22 << r30
|
1126
1126
|
end
|
1127
1127
|
end
|
1128
1128
|
end
|
1129
1129
|
end
|
1130
|
-
if
|
1131
|
-
|
1132
|
-
|
1130
|
+
if s18.last
|
1131
|
+
r18 = instantiate_node(Call,input, i18...index, s18)
|
1132
|
+
r18.extend(DotExp2)
|
1133
1133
|
else
|
1134
|
-
@index =
|
1135
|
-
|
1134
|
+
@index = i18
|
1135
|
+
r18 = nil
|
1136
1136
|
end
|
1137
|
-
if
|
1138
|
-
|
1139
|
-
r0 =
|
1137
|
+
if r18
|
1138
|
+
r18 = SyntaxNode.new(input, (index-1)...index) if r18 == true
|
1139
|
+
r0 = r18
|
1140
1140
|
else
|
1141
1141
|
i31, s31 = index, []
|
1142
1142
|
if (match_len = has_terminal?('.', false, index))
|
@@ -2520,122 +2520,128 @@ module Delorean
|
|
2520
2520
|
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
2521
2521
|
r0 = r6
|
2522
2522
|
else
|
2523
|
-
r7 =
|
2523
|
+
r7 = _nt_sup
|
2524
2524
|
if r7
|
2525
2525
|
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
2526
2526
|
r0 = r7
|
2527
2527
|
else
|
2528
|
-
r8 =
|
2528
|
+
r8 = _nt_self
|
2529
2529
|
if r8
|
2530
2530
|
r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
|
2531
2531
|
r0 = r8
|
2532
2532
|
else
|
2533
|
-
r9 =
|
2533
|
+
r9 = _nt_list_expr
|
2534
2534
|
if r9
|
2535
2535
|
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
2536
2536
|
r0 = r9
|
2537
2537
|
else
|
2538
|
-
r10 =
|
2538
|
+
r10 = _nt_set_expr
|
2539
2539
|
if r10
|
2540
2540
|
r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
|
2541
2541
|
r0 = r10
|
2542
2542
|
else
|
2543
|
-
|
2544
|
-
i13, s13 = index, []
|
2545
|
-
r14 = _nt_class_name
|
2546
|
-
s13 << r14
|
2547
|
-
if r14
|
2548
|
-
if (match_len = has_terminal?('::', false, index))
|
2549
|
-
r15 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2550
|
-
@index += match_len
|
2551
|
-
else
|
2552
|
-
terminal_parse_failure('\'::\'')
|
2553
|
-
r15 = nil
|
2554
|
-
end
|
2555
|
-
s13 << r15
|
2556
|
-
end
|
2557
|
-
if s13.last
|
2558
|
-
r13 = instantiate_node(SyntaxNode,input, i13...index, s13)
|
2559
|
-
r13.extend(Value0)
|
2560
|
-
else
|
2561
|
-
@index = i13
|
2562
|
-
r13 = nil
|
2563
|
-
end
|
2564
|
-
if r13
|
2565
|
-
r12 = r13
|
2566
|
-
else
|
2567
|
-
r12 = instantiate_node(SyntaxNode,input, index...index)
|
2568
|
-
end
|
2569
|
-
s11 << r12
|
2570
|
-
if r12
|
2571
|
-
r16 = _nt_class_name
|
2572
|
-
s11 << r16
|
2573
|
-
end
|
2574
|
-
if s11.last
|
2575
|
-
r11 = instantiate_node(NodeAsValue,input, i11...index, s11)
|
2576
|
-
r11.extend(Value1)
|
2577
|
-
else
|
2578
|
-
@index = i11
|
2579
|
-
r11 = nil
|
2580
|
-
end
|
2543
|
+
r11 = _nt_hash_expr
|
2581
2544
|
if r11
|
2582
2545
|
r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
|
2583
2546
|
r0 = r11
|
2584
2547
|
else
|
2585
|
-
|
2586
|
-
|
2587
|
-
|
2588
|
-
|
2548
|
+
i12, s12 = index, []
|
2549
|
+
i14, s14 = index, []
|
2550
|
+
r15 = _nt_class_name
|
2551
|
+
s14 << r15
|
2552
|
+
if r15
|
2553
|
+
if (match_len = has_terminal?('::', false, index))
|
2554
|
+
r16 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2555
|
+
@index += match_len
|
2556
|
+
else
|
2557
|
+
terminal_parse_failure('\'::\'')
|
2558
|
+
r16 = nil
|
2559
|
+
end
|
2560
|
+
s14 << r16
|
2561
|
+
end
|
2562
|
+
if s14.last
|
2563
|
+
r14 = instantiate_node(SyntaxNode,input, i14...index, s14)
|
2564
|
+
r14.extend(Value0)
|
2565
|
+
else
|
2566
|
+
@index = i14
|
2567
|
+
r14 = nil
|
2568
|
+
end
|
2569
|
+
if r14
|
2570
|
+
r13 = r14
|
2571
|
+
else
|
2572
|
+
r13 = instantiate_node(SyntaxNode,input, index...index)
|
2573
|
+
end
|
2574
|
+
s12 << r13
|
2575
|
+
if r13
|
2576
|
+
r17 = _nt_class_name
|
2577
|
+
s12 << r17
|
2578
|
+
end
|
2579
|
+
if s12.last
|
2580
|
+
r12 = instantiate_node(NodeAsValue,input, i12...index, s12)
|
2581
|
+
r12.extend(Value1)
|
2589
2582
|
else
|
2590
|
-
|
2591
|
-
|
2583
|
+
@index = i12
|
2584
|
+
r12 = nil
|
2592
2585
|
end
|
2593
|
-
|
2594
|
-
|
2595
|
-
|
2596
|
-
|
2597
|
-
|
2586
|
+
if r12
|
2587
|
+
r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
|
2588
|
+
r0 = r12
|
2589
|
+
else
|
2590
|
+
i18, s18 = index, []
|
2591
|
+
if (match_len = has_terminal?('(', false, index))
|
2592
|
+
r19 = true
|
2593
|
+
@index += match_len
|
2598
2594
|
else
|
2599
|
-
|
2595
|
+
terminal_parse_failure('\'(\'')
|
2596
|
+
r19 = nil
|
2600
2597
|
end
|
2601
|
-
|
2598
|
+
s18 << r19
|
2602
2599
|
if r19
|
2603
|
-
r21 =
|
2604
|
-
s17 << r21
|
2600
|
+
r21 = _nt_sp
|
2605
2601
|
if r21
|
2606
|
-
|
2607
|
-
|
2608
|
-
|
2609
|
-
|
2610
|
-
|
2611
|
-
|
2612
|
-
|
2602
|
+
r20 = r21
|
2603
|
+
else
|
2604
|
+
r20 = instantiate_node(SyntaxNode,input, index...index)
|
2605
|
+
end
|
2606
|
+
s18 << r20
|
2607
|
+
if r20
|
2608
|
+
r22 = _nt_expression
|
2609
|
+
s18 << r22
|
2613
2610
|
if r22
|
2614
|
-
|
2615
|
-
|
2616
|
-
|
2611
|
+
r24 = _nt_sp
|
2612
|
+
if r24
|
2613
|
+
r23 = r24
|
2617
2614
|
else
|
2618
|
-
|
2619
|
-
|
2615
|
+
r23 = instantiate_node(SyntaxNode,input, index...index)
|
2616
|
+
end
|
2617
|
+
s18 << r23
|
2618
|
+
if r23
|
2619
|
+
if (match_len = has_terminal?(')', false, index))
|
2620
|
+
r25 = true
|
2621
|
+
@index += match_len
|
2622
|
+
else
|
2623
|
+
terminal_parse_failure('\')\'')
|
2624
|
+
r25 = nil
|
2625
|
+
end
|
2626
|
+
s18 << r25
|
2620
2627
|
end
|
2621
|
-
s17 << r24
|
2622
2628
|
end
|
2623
2629
|
end
|
2624
2630
|
end
|
2625
|
-
|
2626
|
-
|
2627
|
-
|
2628
|
-
|
2629
|
-
|
2630
|
-
|
2631
|
-
|
2632
|
-
|
2633
|
-
|
2634
|
-
|
2635
|
-
|
2636
|
-
|
2637
|
-
|
2638
|
-
|
2631
|
+
if s18.last
|
2632
|
+
r18 = instantiate_node(Expr,input, i18...index, s18)
|
2633
|
+
r18.extend(Value2)
|
2634
|
+
else
|
2635
|
+
@index = i18
|
2636
|
+
r18 = nil
|
2637
|
+
end
|
2638
|
+
if r18
|
2639
|
+
r18 = SyntaxNode.new(input, (index-1)...index) if r18 == true
|
2640
|
+
r0 = r18
|
2641
|
+
else
|
2642
|
+
@index = i0
|
2643
|
+
r0 = nil
|
2644
|
+
end
|
2639
2645
|
end
|
2640
2646
|
end
|
2641
2647
|
end
|
@@ -3739,6 +3745,30 @@ module Delorean
|
|
3739
3745
|
r0
|
3740
3746
|
end
|
3741
3747
|
|
3748
|
+
def _nt_sup
|
3749
|
+
start_index = index
|
3750
|
+
if node_cache[:sup].has_key?(index)
|
3751
|
+
cached = node_cache[:sup][index]
|
3752
|
+
if cached
|
3753
|
+
node_cache[:sup][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3754
|
+
@index = cached.interval.end
|
3755
|
+
end
|
3756
|
+
return cached
|
3757
|
+
end
|
3758
|
+
|
3759
|
+
if (match_len = has_terminal?('_sup', false, index))
|
3760
|
+
r0 = instantiate_node(Sup,input, index...(index + match_len))
|
3761
|
+
@index += match_len
|
3762
|
+
else
|
3763
|
+
terminal_parse_failure('\'_sup\'')
|
3764
|
+
r0 = nil
|
3765
|
+
end
|
3766
|
+
|
3767
|
+
node_cache[:sup][start_index] = r0
|
3768
|
+
|
3769
|
+
r0
|
3770
|
+
end
|
3771
|
+
|
3742
3772
|
def _nt_self
|
3743
3773
|
start_index = index
|
3744
3774
|
if node_cache[:self].has_key?(index)
|
@@ -114,6 +114,7 @@ grammar Delorean
|
|
114
114
|
boolean /
|
115
115
|
nil_val /
|
116
116
|
identifier /
|
117
|
+
sup /
|
117
118
|
self /
|
118
119
|
list_expr /
|
119
120
|
set_expr /
|
@@ -162,6 +163,10 @@ grammar Delorean
|
|
162
163
|
'true' <Literal> / 'false' <Literal>
|
163
164
|
end
|
164
165
|
|
166
|
+
rule sup
|
167
|
+
'_sup' <Sup>
|
168
|
+
end
|
169
|
+
|
165
170
|
rule self
|
166
171
|
'_' <Self>
|
167
172
|
end
|
data/lib/delorean/nodes.rb
CHANGED
@@ -238,6 +238,16 @@ eos
|
|
238
238
|
end
|
239
239
|
end
|
240
240
|
|
241
|
+
class Sup < SNode
|
242
|
+
def check(context, *)
|
243
|
+
[]
|
244
|
+
end
|
245
|
+
|
246
|
+
def rewrite(context)
|
247
|
+
"superclass"
|
248
|
+
end
|
249
|
+
end
|
250
|
+
|
241
251
|
class IString < Literal
|
242
252
|
def rewrite(context)
|
243
253
|
# FIXME: hacky to just fail
|
data/lib/delorean/version.rb
CHANGED
data/spec/cache_spec.rb
CHANGED
@@ -53,8 +53,10 @@ describe "Delorean cache" do
|
|
53
53
|
)
|
54
54
|
expect(item_2).to eq(nil)
|
55
55
|
|
56
|
-
item_10
|
57
|
-
klass: Dummy,
|
56
|
+
item_10 = ::Delorean::Cache.adapter.fetch_item(
|
57
|
+
klass: Dummy,
|
58
|
+
cache_key: [:returns_cached_openstruct, 10, 10],
|
59
|
+
default: :NF
|
58
60
|
)
|
59
61
|
|
60
62
|
expect(item_10).to be_a(OpenStruct)
|
data/spec/eval_spec.rb
CHANGED
@@ -1071,4 +1071,22 @@ eof
|
|
1071
1071
|
r2 = engine.evaluate("B", "res2")
|
1072
1072
|
expect(r2.values.uniq.length).to eq 1
|
1073
1073
|
end
|
1074
|
+
|
1075
|
+
it "Implements ability to use overridden superclass attrs" do
|
1076
|
+
code = <<-DELOREAN
|
1077
|
+
A:
|
1078
|
+
x = 123
|
1079
|
+
y = x*2
|
1080
|
+
B: A
|
1081
|
+
x = 5
|
1082
|
+
y = _sup.y * 10
|
1083
|
+
xx = _sup.x + 5
|
1084
|
+
yy = _sup.x * 10
|
1085
|
+
DELOREAN
|
1086
|
+
|
1087
|
+
engine.parse code.gsub(/^ /, '')
|
1088
|
+
|
1089
|
+
r = engine.evaluate("B", ["x", "y", "xx", "yy"])
|
1090
|
+
expect(r).to eq [5, 2460, 128, 1230]
|
1091
|
+
end
|
1074
1092
|
end
|
data/spec/ruby/whitelist_spec.rb
CHANGED
@@ -63,7 +63,7 @@ describe "Delorean Ruby whitelisting" do
|
|
63
63
|
expect do
|
64
64
|
matcher_with_args.match!(klass: Dummy, args: [1, 2])
|
65
65
|
end.to raise_error(
|
66
|
-
|
66
|
+
"bad arg 1, method testmethod_with_args: 2/#{2.class} [String, nil]"
|
67
67
|
)
|
68
68
|
end
|
69
69
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: delorean_lang
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arman Bostani
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-01-
|
11
|
+
date: 2019-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: treetop
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rubocop
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
description: A "compiler" for the Delorean programming language
|
84
98
|
email:
|
85
99
|
- arman.bostani@pnmac.com
|
@@ -88,8 +102,10 @@ extensions: []
|
|
88
102
|
extra_rdoc_files: []
|
89
103
|
files:
|
90
104
|
- ".gitignore"
|
105
|
+
- ".gitlab-ci.yml"
|
91
106
|
- ".rspec"
|
92
107
|
- ".rubocop.yml"
|
108
|
+
- ".rubocop_todo.yml"
|
93
109
|
- Gemfile
|
94
110
|
- LICENSE
|
95
111
|
- README.md
|