delorean_lang 0.5.0 → 0.5.1
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.
- 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
|