adsl 0.0.2 → 0.0.3
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 +7 -0
- data/Gemfile +4 -1
- data/README.md +33 -6
- data/lib/ds/data_store_spec.rb +2 -2
- data/lib/fol/first_order_logic.rb +3 -4
- data/lib/parser/adsl_ast.rb +10 -11
- data/lib/parser/adsl_parser.racc +2 -2
- data/lib/parser/adsl_parser.rex +1 -1
- data/lib/parser/adsl_parser.rex.rb +121 -118
- data/lib/parser/adsl_parser.tab.rb +163 -163
- data/lib/spass/spass_translator.rb +16 -6
- data/lib/util/csv_hash_formatter.rb +10 -2
- data/lib/util/util.rb +11 -7
- metadata +107 -128
@@ -18,8 +18,8 @@ module_eval(<<'...end adsl_parser.racc/module_eval...', 'adsl_parser.racc', 138)
|
|
18
18
|
|
19
19
|
# generated by racc
|
20
20
|
def generate_ast(str)
|
21
|
-
|
22
|
-
do_parse
|
21
|
+
scan str
|
22
|
+
# do_parse
|
23
23
|
end
|
24
24
|
|
25
25
|
def parse(str)
|
@@ -30,182 +30,182 @@ module_eval(<<'...end adsl_parser.racc/module_eval...', 'adsl_parser.racc', 138)
|
|
30
30
|
##### State transition tables begin ###
|
31
31
|
|
32
32
|
racc_action_table = [
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
33
|
+
42, 44, 43, 40, 41, 42, 44, 43, 40, 41,
|
34
|
+
42, 44, 43, 40, 41, 42, 44, 43, 40, 41,
|
35
|
+
42, 44, 43, 40, 41, 35, 52, 53, 96, 35,
|
36
|
+
113, 93, 33, 63, 17, 6, 105, 99, 7, 99,
|
37
|
+
96, 104, 98, 113, 103, 76, 8, 62, -37, 54,
|
38
|
+
138, 36, -37, 146, 32, 140, 16, 17, 114, 97,
|
39
|
+
20, 21, 96, 30, 28, 29, 22, 27, 24, 25,
|
40
|
+
47, 16, 17, 153, 154, 20, 21, 23, 30, 28,
|
41
|
+
29, 22, 27, 24, 25, 47, 16, 17, 155, 156,
|
42
|
+
20, 21, 23, 30, 28, 29, 22, 27, 24, 25,
|
43
|
+
47, 16, 17, 88, 89, 20, 21, 23, 30, 28,
|
44
|
+
29, 22, 27, 24, 25, 47, 16, 17, 167, 168,
|
45
|
+
20, 21, 23, 30, 28, 29, 22, 27, 24, 25,
|
46
|
+
47, 16, 17, 88, 89, 20, 21, 23, 30, 28,
|
47
|
+
29, 22, 27, 24, 25, 15, 16, 17, 109, 110,
|
48
|
+
20, 21, 23, 30, 28, 29, 22, 27, 24, 25,
|
49
|
+
47, 16, 17, 74, -38, 20, 21, 23, 30, 28,
|
50
|
+
29, 22, 27, 24, 25, 47, 16, 17, 116, 66,
|
51
|
+
20, 21, 23, 30, 28, 29, 22, 27, 24, 25,
|
52
|
+
47, 16, 17, 74, -40, 20, 21, 23, 30, 28,
|
53
|
+
29, 22, 27, 24, 25, 47, 16, 17, 120, -20,
|
54
|
+
20, 21, 23, 30, 28, 29, 22, 27, 24, 25,
|
55
|
+
47, 16, 17, 58, 56, 20, 21, 23, 30, 28,
|
56
|
+
29, 22, 27, 24, 25, 47, 16, 17, 55, 125,
|
57
|
+
20, 21, 23, 30, 28, 29, 22, 27, 24, 25,
|
58
|
+
47, 16, 17, 107, 106, 20, 21, 23, 30, 28,
|
59
|
+
29, 22, 27, 24, 25, 47, 16, 17, 51, 136,
|
60
|
+
20, 21, 23, 30, 28, 29, 22, 27, 24, 25,
|
61
|
+
47, 16, 17, 74, 50, 20, 21, 23, 30, 28,
|
62
|
+
29, 22, 27, 24, 25, 47, 134, 135, 131, 132,
|
63
|
+
63, 17, 23, 134, 135, 131, 132, 63, 17, 159,
|
64
|
+
137, 63, 17, 96, 130, 63, 17, 63, 17, 16,
|
65
|
+
17, 130, 16, 17, 101, 62, 16, 17, 96, 62,
|
66
|
+
90, 62, 100, 47, 63, 17, 47, 63, 17, 91,
|
67
|
+
47, 63, 17, 16, 17, 16, 17, 46, 62, 16,
|
68
|
+
17, 62, 63, 17, 143, 62, 144, 47, 45, 47,
|
69
|
+
63, 17, 42, 47, 16, 17, 62, 147, 6, 6,
|
70
|
+
6, 7, 7, 7, 62, 42, 44, 43, 47, 8,
|
71
|
+
8, 8, 42, 44, 43, 40, 41, 42, 44, 43,
|
72
|
+
40, 41, 127, 39, 84, 88, 89, 88, 89, 42,
|
73
|
+
44, 43, 40, 41, 42, 44, 43, 40, 41, 42,
|
74
|
+
44, 43, 40, 41, 95, 149, 150, 96, 42, 44,
|
75
|
+
43, 113, 152, 42, -41, 157, 38, 108, 161, 162,
|
76
|
+
163, 37, 34, 166, 96, 94, 31, 113, 93, 14,
|
77
|
+
13, 9, 175, 96, 96, 113 ]
|
78
78
|
|
79
79
|
racc_action_check = [
|
80
|
-
78, 78, 78, 78, 78,
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
117,
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
80
|
+
78, 78, 78, 78, 78, 77, 77, 77, 77, 77,
|
81
|
+
49, 49, 49, 49, 49, 117, 117, 117, 117, 117,
|
82
|
+
123, 123, 123, 123, 123, 15, 26, 26, 148, 47,
|
83
|
+
169, 130, 13, 101, 101, 0, 78, 72, 0, 75,
|
84
|
+
169, 77, 72, 91, 75, 49, 0, 101, 15, 26,
|
85
|
+
117, 15, 47, 130, 13, 123, 104, 104, 92, 65,
|
86
|
+
104, 104, 65, 104, 104, 104, 104, 104, 104, 104,
|
87
|
+
104, 154, 154, 139, 139, 154, 154, 104, 154, 154,
|
88
|
+
154, 154, 154, 154, 154, 154, 51, 51, 141, 141,
|
89
|
+
51, 51, 154, 51, 51, 51, 51, 51, 51, 51,
|
90
|
+
51, 36, 36, 60, 60, 36, 36, 51, 36, 36,
|
91
|
+
36, 36, 36, 36, 36, 36, 50, 50, 161, 161,
|
92
|
+
50, 50, 36, 50, 50, 50, 50, 50, 50, 50,
|
93
|
+
50, 8, 8, 109, 109, 8, 8, 50, 8, 8,
|
94
|
+
8, 8, 8, 8, 8, 8, 98, 98, 87, 87,
|
95
|
+
98, 98, 8, 98, 98, 98, 98, 98, 98, 98,
|
96
|
+
98, 44, 44, 45, 95, 44, 44, 98, 44, 44,
|
97
|
+
44, 44, 44, 44, 44, 44, 22, 22, 96, 39,
|
98
|
+
22, 22, 44, 22, 22, 22, 22, 22, 22, 22,
|
99
|
+
22, 23, 23, 99, 35, 23, 23, 22, 23, 23,
|
100
|
+
23, 23, 23, 23, 23, 23, 40, 40, 102, 34,
|
101
|
+
40, 40, 23, 40, 40, 40, 40, 40, 40, 40,
|
102
|
+
40, 103, 103, 33, 30, 103, 103, 40, 103, 103,
|
103
|
+
103, 103, 103, 103, 103, 103, 42, 42, 27, 108,
|
104
|
+
42, 42, 103, 42, 42, 42, 42, 42, 42, 42,
|
105
|
+
42, 41, 41, 83, 82, 41, 41, 42, 41, 41,
|
106
|
+
41, 41, 41, 41, 41, 41, 105, 105, 25, 114,
|
107
|
+
105, 105, 41, 105, 105, 105, 105, 105, 105, 105,
|
108
|
+
105, 43, 43, 46, 24, 43, 43, 105, 43, 43,
|
109
|
+
43, 43, 43, 43, 43, 43, 113, 113, 113, 113,
|
110
|
+
113, 113, 43, 129, 129, 129, 129, 129, 129, 146,
|
111
|
+
115, 146, 146, 115, 113, 38, 38, 37, 37, 53,
|
112
|
+
53, 129, 106, 106, 74, 146, 156, 156, 119, 38,
|
113
|
+
58, 37, 74, 53, 168, 168, 106, 167, 167, 59,
|
114
|
+
156, 94, 94, 54, 54, 55, 55, 21, 168, 56,
|
115
|
+
56, 167, 132, 132, 125, 94, 128, 54, 20, 55,
|
116
|
+
162, 162, 71, 56, 52, 52, 132, 131, 5, 4,
|
117
|
+
3, 5, 4, 3, 162, 68, 68, 68, 52, 5,
|
118
|
+
4, 3, 61, 61, 61, 61, 61, 164, 164, 164,
|
119
|
+
164, 164, 111, 18, 57, 111, 111, 57, 57, 121,
|
120
|
+
121, 121, 121, 121, 122, 122, 122, 122, 122, 19,
|
121
|
+
19, 19, 19, 19, 64, 133, 134, 64, 67, 67,
|
122
|
+
67, 135, 136, 70, 66, 143, 17, 86, 149, 150,
|
123
|
+
151, 16, 14, 159, 160, 63, 9, 163, 62, 7,
|
124
|
+
6, 1, 170, 172, 173, 175 ]
|
125
125
|
|
126
126
|
racc_action_pointer = [
|
127
|
-
24,
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
217, 262,
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
nil,
|
137
|
-
nil,
|
138
|
-
nil,
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
420, nil,
|
143
|
-
|
144
|
-
|
127
|
+
24, 441, nil, 359, 358, 357, 407, 406, 112, 436,
|
128
|
+
nil, nil, nil, 20, 392, 4, 391, 386, 349, 403,
|
129
|
+
318, 307, 157, 172, 244, 228, 24, 198, nil, nil,
|
130
|
+
184, nil, nil, 190, 168, 150, 82, 298, 296, 146,
|
131
|
+
187, 232, 217, 262, 142, 130, 250, 8, nil, 4,
|
132
|
+
97, 67, 345, 300, 324, 326, 330, 359, 296, 298,
|
133
|
+
65, 376, 417, 395, 373, 18, 380, 412, 369, nil,
|
134
|
+
417, 356, -5, nil, 299, -3, nil, -1, -6, nil,
|
135
|
+
nil, nil, 212, 212, nil, nil, 394, 112, nil, nil,
|
136
|
+
nil, 9, 25, nil, 322, 120, 145, nil, 127, 160,
|
137
|
+
nil, 14, 167, 202, 37, 247, 303, nil, 206, 95,
|
138
|
+
nil, 357, nil, 281, 236, 269, nil, 9, nil, 284,
|
139
|
+
nil, 393, 398, 14, nil, 341, nil, nil, 321, 288,
|
140
|
+
10, 334, 333, 371, 383, 387, 380, nil, nil, 32,
|
141
|
+
nil, 47, nil, 392, nil, nil, 292, nil, -16, 395,
|
142
|
+
382, 420, nil, nil, 52, nil, 307, nil, nil, 400,
|
143
|
+
390, 73, 341, 403, 381, nil, nil, 318, 315, -4,
|
144
|
+
432, nil, 399, 400, nil, 411, nil ]
|
145
145
|
|
146
146
|
racc_action_default = [
|
147
|
-
-5, -76,
|
148
|
-
|
149
|
-
-76, -76, -76, -76, -76, -76, -76, -76,
|
150
|
-
|
151
|
-
-76, -76, -76, -76, -
|
152
|
-
-76, -76, -76, -76,
|
153
|
-
-
|
154
|
-
-
|
155
|
-
-
|
156
|
-
|
157
|
-
|
158
|
-
-
|
159
|
-
-
|
160
|
-
|
161
|
-
-
|
162
|
-
-76, -
|
163
|
-
-
|
164
|
-
-
|
147
|
+
-5, -76, -1, -5, -5, -5, -76, -76, -76, -76,
|
148
|
+
-2, -3, -4, -76, -76, -42, -76, -76, -76, -46,
|
149
|
+
-76, -76, -76, -76, -76, -76, -76, -76, -63, -64,
|
150
|
+
-76, 177, -9, -76, -22, -44, -76, -76, -76, -76,
|
151
|
+
-76, -76, -76, -76, -76, -76, -76, -42, -50, -76,
|
152
|
+
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
|
153
|
+
-76, -47, -37, -76, -76, -76, -45, -51, -52, -53,
|
154
|
+
-54, -55, -76, -67, -76, -71, -56, -76, -76, -59,
|
155
|
+
-60, -62, -76, -76, -6, -8, -76, -11, -14, -15,
|
156
|
+
-9, -76, -76, -40, -76, -43, -76, -39, -76, -76,
|
157
|
+
-68, -76, -76, -76, -76, -76, -76, -65, -76, -76,
|
158
|
+
-13, -76, -18, -25, -76, -76, -41, -76, -66, -69,
|
159
|
+
-49, -70, -73, -76, -75, -17, -12, -7, -76, -25,
|
160
|
+
-37, -76, -76, -76, -76, -76, -19, -38, -48, -76,
|
161
|
+
-58, -76, -10, -76, -23, -24, -76, -27, -28, -76,
|
162
|
+
-76, -76, -21, -57, -76, -61, -76, -16, -26, -76,
|
163
|
+
-34, -41, -76, -76, -72, -74, -33, -76, -76, -76,
|
164
|
+
-32, -36, -29, -30, -31, -76, -35 ]
|
165
165
|
|
166
166
|
racc_goto_table = [
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
nil, nil,
|
174
|
-
|
175
|
-
nil,
|
176
|
-
|
177
|
-
nil,
|
178
|
-
nil,
|
179
|
-
nil, nil,
|
180
|
-
|
181
|
-
nil, nil, nil, nil,
|
167
|
+
19, 79, 80, 81, 82, 83, 64, 65, 112, 57,
|
168
|
+
128, 72, 75, 2, 48, 49, 10, 11, 12, 158,
|
169
|
+
59, 60, 126, 170, 142, 92, 145, 1, 61, 102,
|
170
|
+
139, 141, 67, 68, 69, 70, 71, 118, nil, nil,
|
171
|
+
nil, nil, 77, 78, nil, nil, nil, nil, nil, nil,
|
172
|
+
nil, nil, 151, nil, nil, 124, nil, nil, nil, nil,
|
173
|
+
nil, nil, nil, 115, nil, nil, nil, 111, nil, nil,
|
174
|
+
119, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
175
|
+
171, nil, 133, nil, nil, nil, 174, nil, nil, nil,
|
176
|
+
117, nil, 176, nil, nil, 121, 122, 123, 133, nil,
|
177
|
+
nil, 148, nil, nil, nil, 165, nil, nil, nil, nil,
|
178
|
+
nil, nil, nil, nil, nil, 160, nil, nil, nil, nil,
|
179
|
+
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
180
|
+
nil, 169, nil, nil, nil, nil, 172, 173, nil, nil,
|
181
|
+
nil, nil, nil, nil, nil, nil, 164 ]
|
182
182
|
|
183
183
|
racc_goto_check = [
|
184
|
-
20, 19, 19, 19,
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
20, 20, nil, nil,
|
189
|
-
|
190
|
-
nil, nil,
|
191
|
-
nil, 12, nil, nil, nil, nil, nil, nil, nil, nil,
|
192
|
-
nil, 17, nil, nil, nil, 20, nil, 20, nil, nil,
|
193
|
-
nil, nil, nil, nil, nil, 20, 17, 20, 17, nil,
|
194
|
-
nil, nil, nil, nil, nil, nil, nil, 17, nil, nil,
|
195
|
-
nil, 19, nil, nil, nil, nil, nil, nil, nil, nil,
|
196
|
-
nil, nil, 17, nil, nil, nil, nil, nil, nil, 17,
|
184
|
+
20, 19, 19, 19, 19, 19, 17, 17, 12, 6,
|
185
|
+
14, 21, 21, 2, 20, 20, 2, 2, 2, 16,
|
186
|
+
11, 13, 10, 18, 9, 8, 14, 1, 20, 22,
|
187
|
+
23, 24, 20, 20, 20, 20, 20, 25, nil, nil,
|
188
|
+
nil, nil, 20, 20, nil, nil, nil, nil, nil, nil,
|
189
|
+
nil, nil, 12, nil, nil, 19, nil, nil, nil, nil,
|
190
|
+
nil, nil, nil, 17, nil, nil, nil, 6, nil, nil,
|
197
191
|
17, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
198
|
-
nil, nil, nil, nil,
|
192
|
+
12, nil, 17, nil, nil, nil, 12, nil, nil, nil,
|
193
|
+
20, nil, 12, nil, nil, 20, 20, 20, 17, nil,
|
194
|
+
nil, 17, nil, nil, nil, 19, nil, nil, nil, nil,
|
195
|
+
nil, nil, nil, nil, nil, 17, nil, nil, nil, nil,
|
196
|
+
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
197
|
+
nil, 17, nil, nil, nil, nil, 17, 17, nil, nil,
|
198
|
+
nil, nil, nil, nil, nil, nil, 20 ]
|
199
199
|
|
200
200
|
racc_goto_pointer = [
|
201
|
-
nil, 27,
|
202
|
-
-
|
203
|
-
-
|
201
|
+
nil, 27, 13, nil, nil, nil, -23, nil, -35, -101,
|
202
|
+
-87, -14, -83, -13, -103, nil, -127, -31, -140, -51,
|
203
|
+
-8, -34, -46, -92, -93, -62 ]
|
204
204
|
|
205
205
|
racc_goto_default = [
|
206
|
-
nil, nil, nil,
|
207
|
-
|
208
|
-
nil, nil, nil, nil, nil,
|
206
|
+
nil, nil, nil, 3, 4, 5, nil, 85, 86, nil,
|
207
|
+
87, nil, nil, nil, nil, 129, nil, 18, nil, 26,
|
208
|
+
nil, nil, nil, nil, nil, 73 ]
|
209
209
|
|
210
210
|
racc_reduce_table = [
|
211
211
|
0, 0, :racc_error,
|
@@ -269,13 +269,23 @@ module SpassTranslator
|
|
269
269
|
pred
|
270
270
|
end
|
271
271
|
|
272
|
-
def get_pred_name
|
273
|
-
|
274
|
-
|
272
|
+
def get_pred_name common_name
|
273
|
+
registered_names = (@functions + @predicates).map{ |a| a.name }
|
274
|
+
prefix = common_name
|
275
|
+
prefix = common_name.scan(/^(.+)_\d+$/).first.first if prefix =~ /^.+_\d+$/
|
276
|
+
regexp = /^#{ Regexp.escape prefix }(?:_(\d+))?$/
|
277
|
+
|
278
|
+
already_registered = registered_names.select{ |a| a =~ regexp }
|
279
|
+
return common_name if already_registered.empty?
|
275
280
|
|
276
|
-
|
277
|
-
|
278
|
-
|
281
|
+
rhs_numbers = already_registered.map{ |a| [a, a.scan(regexp).first.first] }
|
282
|
+
|
283
|
+
rhs_numbers.each do |a|
|
284
|
+
a[1] = a[1].nil? ? -1 : a[1].to_i
|
285
|
+
end
|
286
|
+
|
287
|
+
max_name = rhs_numbers.max_by{ |a| a[1] }
|
288
|
+
return max_name[0].increment_suffix
|
279
289
|
end
|
280
290
|
|
281
291
|
def _reserve_names(*names)
|
@@ -13,18 +13,26 @@ module Util
|
|
13
13
|
"\"#{obj.to_s.gsub('"', '""')}\""
|
14
14
|
end
|
15
15
|
|
16
|
-
def initialize
|
16
|
+
def initialize(*cols)
|
17
17
|
@row_hashes = []
|
18
18
|
@columns = []
|
19
|
+
cols.each do |col|
|
20
|
+
add_column col
|
21
|
+
end
|
19
22
|
end
|
20
23
|
|
21
24
|
def add_row(row)
|
22
25
|
@row_hashes << row
|
23
26
|
row.keys.each do |key|
|
24
|
-
|
27
|
+
add_column key unless @columns.include? key
|
25
28
|
end
|
26
29
|
end
|
27
30
|
|
31
|
+
def add_column(col)
|
32
|
+
raise "Duplicate column name #{col}" if @columns.include? col.to_sym
|
33
|
+
@columns << col.to_sym
|
34
|
+
end
|
35
|
+
|
28
36
|
alias_method :<<, :add_row
|
29
37
|
|
30
38
|
def to_s
|
data/lib/util/util.rb
CHANGED
@@ -4,11 +4,12 @@ require 'thread'
|
|
4
4
|
|
5
5
|
class String
|
6
6
|
def increment_suffix
|
7
|
-
suffix = scan(/_\d
|
7
|
+
suffix = scan(/_(\d+)$/).last
|
8
8
|
if suffix.nil?
|
9
9
|
return self + "_2"
|
10
10
|
else
|
11
|
-
|
11
|
+
suffix = suffix.first
|
12
|
+
return self[0, self.length - suffix.length] + (suffix.to_i + 1).to_s
|
12
13
|
end
|
13
14
|
end
|
14
15
|
end
|
@@ -24,12 +25,15 @@ end
|
|
24
25
|
def container_for(*fields, &block)
|
25
26
|
raise ArgumentError, 'Field list empty' if fields.empty?
|
26
27
|
|
28
|
+
all_fields_method_name = :container_for_fields
|
29
|
+
|
27
30
|
all_fields = Set.new(fields)
|
28
|
-
if methods.include?
|
29
|
-
|
31
|
+
if methods.include? all_fields_method_name or methods.include? all_fields_method_name.to_s
|
32
|
+
prev_fields = send all_fields_method_name
|
33
|
+
all_fields.merge prev_fields
|
30
34
|
end
|
31
35
|
singleton_class = (class << self; self; end)
|
32
|
-
singleton_class.send :define_method,
|
36
|
+
singleton_class.send :define_method, all_fields_method_name, lambda{all_fields}
|
33
37
|
|
34
38
|
attr_accessor *fields
|
35
39
|
|
@@ -44,7 +48,7 @@ def container_for(*fields, &block)
|
|
44
48
|
if block
|
45
49
|
instance_eval &block
|
46
50
|
elsif not options_trimmed.empty?
|
47
|
-
raise ArgumentError, "Undefined fields mentioned in initializer: #{options_trimmed.keys.map{ |key| ":#{key.to_s}"}.join(", ")}"
|
51
|
+
raise ArgumentError, "Undefined fields mentioned in initializer of #{self.class}: #{options_trimmed.keys.map{ |key| ":#{key.to_s}"}.join(", ")}" + "\n[#{all_fields.to_a.join ' ' }]"
|
48
52
|
end
|
49
53
|
end
|
50
54
|
|
@@ -54,7 +58,7 @@ def container_for(*fields, &block)
|
|
54
58
|
while not to_inspect.empty?
|
55
59
|
elem = to_inspect.pop
|
56
60
|
inspected << elem
|
57
|
-
if elem.class.methods.include?
|
61
|
+
if elem.class.methods.include?(all_fields_method_name) or elem.class.methods.include?(all_fields_method_name.to_s)
|
58
62
|
elem.class.container_for_fields.each do |field|
|
59
63
|
field_val = elem.send(field)
|
60
64
|
next if field_val.nil?
|