psych 2.0.12 → 5.2.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.
Files changed (115) hide show
  1. checksums.yaml +5 -5
  2. data/CONTRIBUTING.md +24 -0
  3. data/{ext/psych/yaml/LICENSE → LICENSE} +9 -7
  4. data/README.md +80 -0
  5. data/ext/psych/depend +14 -0
  6. data/ext/psych/extconf.rb +43 -28
  7. data/ext/psych/psych.c +6 -4
  8. data/ext/psych/psych.h +0 -3
  9. data/ext/psych/psych_emitter.c +165 -132
  10. data/ext/psych/psych_parser.c +298 -331
  11. data/ext/psych/psych_to_ruby.c +0 -5
  12. data/ext/psych/psych_yaml_tree.c +0 -13
  13. data/lib/psych/class_loader.rb +11 -8
  14. data/lib/psych/coder.rb +1 -0
  15. data/lib/psych/core_ext.rb +3 -19
  16. data/lib/psych/exception.rb +17 -2
  17. data/lib/psych/handler.rb +8 -2
  18. data/lib/psych/handlers/document_stream.rb +2 -1
  19. data/lib/psych/handlers/recorder.rb +2 -1
  20. data/lib/psych/json/ruby_events.rb +1 -0
  21. data/lib/psych/json/stream.rb +3 -2
  22. data/lib/psych/json/tree_builder.rb +2 -1
  23. data/lib/psych/json/yaml_events.rb +1 -0
  24. data/lib/psych/nodes/alias.rb +3 -0
  25. data/lib/psych/nodes/document.rb +3 -0
  26. data/lib/psych/nodes/mapping.rb +3 -0
  27. data/lib/psych/nodes/node.rb +25 -5
  28. data/lib/psych/nodes/scalar.rb +4 -1
  29. data/lib/psych/nodes/sequence.rb +3 -0
  30. data/lib/psych/nodes/stream.rb +3 -0
  31. data/lib/psych/nodes.rb +8 -7
  32. data/lib/psych/omap.rb +1 -0
  33. data/lib/psych/parser.rb +14 -0
  34. data/lib/psych/scalar_scanner.rb +41 -49
  35. data/lib/psych/set.rb +1 -0
  36. data/lib/psych/stream.rb +1 -0
  37. data/lib/psych/streaming.rb +1 -0
  38. data/lib/psych/syntax_error.rb +2 -1
  39. data/lib/psych/tree_builder.rb +48 -7
  40. data/lib/psych/versions.rb +10 -0
  41. data/lib/psych/visitors/depth_first.rb +1 -0
  42. data/lib/psych/visitors/emitter.rb +1 -0
  43. data/lib/psych/visitors/json_tree.rb +2 -1
  44. data/lib/psych/visitors/to_ruby.rb +64 -33
  45. data/lib/psych/visitors/visitor.rb +18 -3
  46. data/lib/psych/visitors/yaml_tree.rb +128 -149
  47. data/lib/psych/visitors.rb +7 -6
  48. data/lib/psych/y.rb +1 -0
  49. data/lib/psych.rb +360 -95
  50. metadata +36 -169
  51. data/.autotest +0 -18
  52. data/.gemtest +0 -0
  53. data/.travis.yml +0 -11
  54. data/CHANGELOG.rdoc +0 -562
  55. data/Manifest.txt +0 -112
  56. data/README.rdoc +0 -71
  57. data/Rakefile +0 -74
  58. data/ext/psych/yaml/api.c +0 -1415
  59. data/ext/psych/yaml/config.h +0 -10
  60. data/ext/psych/yaml/dumper.c +0 -394
  61. data/ext/psych/yaml/emitter.c +0 -2329
  62. data/ext/psych/yaml/loader.c +0 -459
  63. data/ext/psych/yaml/parser.c +0 -1370
  64. data/ext/psych/yaml/reader.c +0 -469
  65. data/ext/psych/yaml/scanner.c +0 -3583
  66. data/ext/psych/yaml/writer.c +0 -141
  67. data/ext/psych/yaml/yaml.h +0 -1971
  68. data/ext/psych/yaml/yaml_private.h +0 -664
  69. data/lib/psych/deprecated.rb +0 -85
  70. data/test/psych/handlers/test_recorder.rb +0 -25
  71. data/test/psych/helper.rb +0 -114
  72. data/test/psych/json/test_stream.rb +0 -109
  73. data/test/psych/nodes/test_enumerable.rb +0 -43
  74. data/test/psych/test_alias_and_anchor.rb +0 -96
  75. data/test/psych/test_array.rb +0 -57
  76. data/test/psych/test_boolean.rb +0 -36
  77. data/test/psych/test_class.rb +0 -36
  78. data/test/psych/test_coder.rb +0 -184
  79. data/test/psych/test_date_time.rb +0 -38
  80. data/test/psych/test_deprecated.rb +0 -214
  81. data/test/psych/test_document.rb +0 -46
  82. data/test/psych/test_emitter.rb +0 -93
  83. data/test/psych/test_encoding.rb +0 -259
  84. data/test/psych/test_exception.rb +0 -157
  85. data/test/psych/test_hash.rb +0 -94
  86. data/test/psych/test_json_tree.rb +0 -65
  87. data/test/psych/test_marshalable.rb +0 -54
  88. data/test/psych/test_merge_keys.rb +0 -180
  89. data/test/psych/test_nil.rb +0 -18
  90. data/test/psych/test_null.rb +0 -19
  91. data/test/psych/test_numeric.rb +0 -45
  92. data/test/psych/test_object.rb +0 -44
  93. data/test/psych/test_object_references.rb +0 -71
  94. data/test/psych/test_omap.rb +0 -75
  95. data/test/psych/test_parser.rb +0 -339
  96. data/test/psych/test_psych.rb +0 -168
  97. data/test/psych/test_safe_load.rb +0 -97
  98. data/test/psych/test_scalar.rb +0 -11
  99. data/test/psych/test_scalar_scanner.rb +0 -106
  100. data/test/psych/test_serialize_subclasses.rb +0 -38
  101. data/test/psych/test_set.rb +0 -49
  102. data/test/psych/test_stream.rb +0 -93
  103. data/test/psych/test_string.rb +0 -226
  104. data/test/psych/test_struct.rb +0 -49
  105. data/test/psych/test_symbol.rb +0 -25
  106. data/test/psych/test_tainted.rb +0 -130
  107. data/test/psych/test_to_yaml_properties.rb +0 -63
  108. data/test/psych/test_tree_builder.rb +0 -79
  109. data/test/psych/test_yaml.rb +0 -1288
  110. data/test/psych/test_yamldbm.rb +0 -193
  111. data/test/psych/test_yamlstore.rb +0 -85
  112. data/test/psych/visitors/test_depth_first.rb +0 -49
  113. data/test/psych/visitors/test_emitter.rb +0 -144
  114. data/test/psych/visitors/test_to_ruby.rb +0 -326
  115. data/test/psych/visitors/test_yaml_tree.rb +0 -173
@@ -1,10 +0,0 @@
1
- #define PACKAGE_NAME "yaml"
2
- #define PACKAGE_TARNAME "yaml"
3
- #define PACKAGE_VERSION "0.1.6"
4
- #define PACKAGE_STRING "yaml 0.1.6"
5
- #define PACKAGE_BUGREPORT "http://pyyaml.org/newticket?component libyaml"
6
- #define PACKAGE_URL ""
7
- #define YAML_VERSION_MAJOR 0
8
- #define YAML_VERSION_MINOR 1
9
- #define YAML_VERSION_PATCH 6
10
- #define YAML_VERSION_STRING "0.1.6"
@@ -1,394 +0,0 @@
1
-
2
- #include "yaml_private.h"
3
-
4
- /*
5
- * API functions.
6
- */
7
-
8
- YAML_DECLARE(int)
9
- yaml_emitter_open(yaml_emitter_t *emitter);
10
-
11
- YAML_DECLARE(int)
12
- yaml_emitter_close(yaml_emitter_t *emitter);
13
-
14
- YAML_DECLARE(int)
15
- yaml_emitter_dump(yaml_emitter_t *emitter, yaml_document_t *document);
16
-
17
- /*
18
- * Clean up functions.
19
- */
20
-
21
- static void
22
- yaml_emitter_delete_document_and_anchors(yaml_emitter_t *emitter);
23
-
24
- /*
25
- * Anchor functions.
26
- */
27
-
28
- static void
29
- yaml_emitter_anchor_node(yaml_emitter_t *emitter, int index);
30
-
31
- static yaml_char_t *
32
- yaml_emitter_generate_anchor(yaml_emitter_t *emitter, int anchor_id);
33
-
34
-
35
- /*
36
- * Serialize functions.
37
- */
38
-
39
- static int
40
- yaml_emitter_dump_node(yaml_emitter_t *emitter, int index);
41
-
42
- static int
43
- yaml_emitter_dump_alias(yaml_emitter_t *emitter, yaml_char_t *anchor);
44
-
45
- static int
46
- yaml_emitter_dump_scalar(yaml_emitter_t *emitter, yaml_node_t *node,
47
- yaml_char_t *anchor);
48
-
49
- static int
50
- yaml_emitter_dump_sequence(yaml_emitter_t *emitter, yaml_node_t *node,
51
- yaml_char_t *anchor);
52
-
53
- static int
54
- yaml_emitter_dump_mapping(yaml_emitter_t *emitter, yaml_node_t *node,
55
- yaml_char_t *anchor);
56
-
57
- /*
58
- * Issue a STREAM-START event.
59
- */
60
-
61
- YAML_DECLARE(int)
62
- yaml_emitter_open(yaml_emitter_t *emitter)
63
- {
64
- yaml_event_t event;
65
- yaml_mark_t mark = { 0, 0, 0 };
66
-
67
- assert(emitter); /* Non-NULL emitter object is required. */
68
- assert(!emitter->opened); /* Emitter should not be opened yet. */
69
-
70
- STREAM_START_EVENT_INIT(event, YAML_ANY_ENCODING, mark, mark);
71
-
72
- if (!yaml_emitter_emit(emitter, &event)) {
73
- return 0;
74
- }
75
-
76
- emitter->opened = 1;
77
-
78
- return 1;
79
- }
80
-
81
- /*
82
- * Issue a STREAM-END event.
83
- */
84
-
85
- YAML_DECLARE(int)
86
- yaml_emitter_close(yaml_emitter_t *emitter)
87
- {
88
- yaml_event_t event;
89
- yaml_mark_t mark = { 0, 0, 0 };
90
-
91
- assert(emitter); /* Non-NULL emitter object is required. */
92
- assert(emitter->opened); /* Emitter should be opened. */
93
-
94
- if (emitter->closed) return 1;
95
-
96
- STREAM_END_EVENT_INIT(event, mark, mark);
97
-
98
- if (!yaml_emitter_emit(emitter, &event)) {
99
- return 0;
100
- }
101
-
102
- emitter->closed = 1;
103
-
104
- return 1;
105
- }
106
-
107
- /*
108
- * Dump a YAML document.
109
- */
110
-
111
- YAML_DECLARE(int)
112
- yaml_emitter_dump(yaml_emitter_t *emitter, yaml_document_t *document)
113
- {
114
- yaml_event_t event;
115
- yaml_mark_t mark = { 0, 0, 0 };
116
-
117
- assert(emitter); /* Non-NULL emitter object is required. */
118
- assert(document); /* Non-NULL emitter object is expected. */
119
-
120
- emitter->document = document;
121
-
122
- if (!emitter->opened) {
123
- if (!yaml_emitter_open(emitter)) goto error;
124
- }
125
-
126
- if (STACK_EMPTY(emitter, document->nodes)) {
127
- if (!yaml_emitter_close(emitter)) goto error;
128
- yaml_emitter_delete_document_and_anchors(emitter);
129
- return 1;
130
- }
131
-
132
- assert(emitter->opened); /* Emitter should be opened. */
133
-
134
- emitter->anchors = yaml_malloc(sizeof(*(emitter->anchors))
135
- * (document->nodes.top - document->nodes.start));
136
- if (!emitter->anchors) goto error;
137
- memset(emitter->anchors, 0, sizeof(*(emitter->anchors))
138
- * (document->nodes.top - document->nodes.start));
139
-
140
- DOCUMENT_START_EVENT_INIT(event, document->version_directive,
141
- document->tag_directives.start, document->tag_directives.end,
142
- document->start_implicit, mark, mark);
143
- if (!yaml_emitter_emit(emitter, &event)) goto error;
144
-
145
- yaml_emitter_anchor_node(emitter, 1);
146
- if (!yaml_emitter_dump_node(emitter, 1)) goto error;
147
-
148
- DOCUMENT_END_EVENT_INIT(event, document->end_implicit, mark, mark);
149
- if (!yaml_emitter_emit(emitter, &event)) goto error;
150
-
151
- yaml_emitter_delete_document_and_anchors(emitter);
152
-
153
- return 1;
154
-
155
- error:
156
-
157
- yaml_emitter_delete_document_and_anchors(emitter);
158
-
159
- return 0;
160
- }
161
-
162
- /*
163
- * Clean up the emitter object after a document is dumped.
164
- */
165
-
166
- static void
167
- yaml_emitter_delete_document_and_anchors(yaml_emitter_t *emitter)
168
- {
169
- int index;
170
-
171
- if (!emitter->anchors) {
172
- yaml_document_delete(emitter->document);
173
- emitter->document = NULL;
174
- return;
175
- }
176
-
177
- for (index = 0; emitter->document->nodes.start + index
178
- < emitter->document->nodes.top; index ++) {
179
- yaml_node_t node = emitter->document->nodes.start[index];
180
- if (!emitter->anchors[index].serialized) {
181
- yaml_free(node.tag);
182
- if (node.type == YAML_SCALAR_NODE) {
183
- yaml_free(node.data.scalar.value);
184
- }
185
- }
186
- if (node.type == YAML_SEQUENCE_NODE) {
187
- STACK_DEL(emitter, node.data.sequence.items);
188
- }
189
- if (node.type == YAML_MAPPING_NODE) {
190
- STACK_DEL(emitter, node.data.mapping.pairs);
191
- }
192
- }
193
-
194
- STACK_DEL(emitter, emitter->document->nodes);
195
- yaml_free(emitter->anchors);
196
-
197
- emitter->anchors = NULL;
198
- emitter->last_anchor_id = 0;
199
- emitter->document = NULL;
200
- }
201
-
202
- /*
203
- * Check the references of a node and assign the anchor id if needed.
204
- */
205
-
206
- static void
207
- yaml_emitter_anchor_node(yaml_emitter_t *emitter, int index)
208
- {
209
- yaml_node_t *node = emitter->document->nodes.start + index - 1;
210
- yaml_node_item_t *item;
211
- yaml_node_pair_t *pair;
212
-
213
- emitter->anchors[index-1].references ++;
214
-
215
- if (emitter->anchors[index-1].references == 1) {
216
- switch (node->type) {
217
- case YAML_SEQUENCE_NODE:
218
- for (item = node->data.sequence.items.start;
219
- item < node->data.sequence.items.top; item ++) {
220
- yaml_emitter_anchor_node(emitter, *item);
221
- }
222
- break;
223
- case YAML_MAPPING_NODE:
224
- for (pair = node->data.mapping.pairs.start;
225
- pair < node->data.mapping.pairs.top; pair ++) {
226
- yaml_emitter_anchor_node(emitter, pair->key);
227
- yaml_emitter_anchor_node(emitter, pair->value);
228
- }
229
- break;
230
- default:
231
- break;
232
- }
233
- }
234
-
235
- else if (emitter->anchors[index-1].references == 2) {
236
- emitter->anchors[index-1].anchor = (++ emitter->last_anchor_id);
237
- }
238
- }
239
-
240
- /*
241
- * Generate a textual representation for an anchor.
242
- */
243
-
244
- #define ANCHOR_TEMPLATE "id%03d"
245
- #define ANCHOR_TEMPLATE_LENGTH 16
246
-
247
- static yaml_char_t *
248
- yaml_emitter_generate_anchor(yaml_emitter_t *emitter, int anchor_id)
249
- {
250
- yaml_char_t *anchor = yaml_malloc(ANCHOR_TEMPLATE_LENGTH);
251
-
252
- if (!anchor) return NULL;
253
-
254
- sprintf((char *)anchor, ANCHOR_TEMPLATE, anchor_id);
255
-
256
- return anchor;
257
- }
258
-
259
- /*
260
- * Serialize a node.
261
- */
262
-
263
- static int
264
- yaml_emitter_dump_node(yaml_emitter_t *emitter, int index)
265
- {
266
- yaml_node_t *node = emitter->document->nodes.start + index - 1;
267
- int anchor_id = emitter->anchors[index-1].anchor;
268
- yaml_char_t *anchor = NULL;
269
-
270
- if (anchor_id) {
271
- anchor = yaml_emitter_generate_anchor(emitter, anchor_id);
272
- if (!anchor) return 0;
273
- }
274
-
275
- if (emitter->anchors[index-1].serialized) {
276
- return yaml_emitter_dump_alias(emitter, anchor);
277
- }
278
-
279
- emitter->anchors[index-1].serialized = 1;
280
-
281
- switch (node->type) {
282
- case YAML_SCALAR_NODE:
283
- return yaml_emitter_dump_scalar(emitter, node, anchor);
284
- case YAML_SEQUENCE_NODE:
285
- return yaml_emitter_dump_sequence(emitter, node, anchor);
286
- case YAML_MAPPING_NODE:
287
- return yaml_emitter_dump_mapping(emitter, node, anchor);
288
- default:
289
- assert(0); /* Could not happen. */
290
- break;
291
- }
292
-
293
- return 0; /* Could not happen. */
294
- }
295
-
296
- /*
297
- * Serialize an alias.
298
- */
299
-
300
- static int
301
- yaml_emitter_dump_alias(yaml_emitter_t *emitter, yaml_char_t *anchor)
302
- {
303
- yaml_event_t event;
304
- yaml_mark_t mark = { 0, 0, 0 };
305
-
306
- ALIAS_EVENT_INIT(event, anchor, mark, mark);
307
-
308
- return yaml_emitter_emit(emitter, &event);
309
- }
310
-
311
- /*
312
- * Serialize a scalar.
313
- */
314
-
315
- static int
316
- yaml_emitter_dump_scalar(yaml_emitter_t *emitter, yaml_node_t *node,
317
- yaml_char_t *anchor)
318
- {
319
- yaml_event_t event;
320
- yaml_mark_t mark = { 0, 0, 0 };
321
-
322
- int plain_implicit = (strcmp((char *)node->tag,
323
- YAML_DEFAULT_SCALAR_TAG) == 0);
324
- int quoted_implicit = (strcmp((char *)node->tag,
325
- YAML_DEFAULT_SCALAR_TAG) == 0);
326
-
327
- SCALAR_EVENT_INIT(event, anchor, node->tag, node->data.scalar.value,
328
- node->data.scalar.length, plain_implicit, quoted_implicit,
329
- node->data.scalar.style, mark, mark);
330
-
331
- return yaml_emitter_emit(emitter, &event);
332
- }
333
-
334
- /*
335
- * Serialize a sequence.
336
- */
337
-
338
- static int
339
- yaml_emitter_dump_sequence(yaml_emitter_t *emitter, yaml_node_t *node,
340
- yaml_char_t *anchor)
341
- {
342
- yaml_event_t event;
343
- yaml_mark_t mark = { 0, 0, 0 };
344
-
345
- int implicit = (strcmp((char *)node->tag, YAML_DEFAULT_SEQUENCE_TAG) == 0);
346
-
347
- yaml_node_item_t *item;
348
-
349
- SEQUENCE_START_EVENT_INIT(event, anchor, node->tag, implicit,
350
- node->data.sequence.style, mark, mark);
351
- if (!yaml_emitter_emit(emitter, &event)) return 0;
352
-
353
- for (item = node->data.sequence.items.start;
354
- item < node->data.sequence.items.top; item ++) {
355
- if (!yaml_emitter_dump_node(emitter, *item)) return 0;
356
- }
357
-
358
- SEQUENCE_END_EVENT_INIT(event, mark, mark);
359
- if (!yaml_emitter_emit(emitter, &event)) return 0;
360
-
361
- return 1;
362
- }
363
-
364
- /*
365
- * Serialize a mapping.
366
- */
367
-
368
- static int
369
- yaml_emitter_dump_mapping(yaml_emitter_t *emitter, yaml_node_t *node,
370
- yaml_char_t *anchor)
371
- {
372
- yaml_event_t event;
373
- yaml_mark_t mark = { 0, 0, 0 };
374
-
375
- int implicit = (strcmp((char *)node->tag, YAML_DEFAULT_MAPPING_TAG) == 0);
376
-
377
- yaml_node_pair_t *pair;
378
-
379
- MAPPING_START_EVENT_INIT(event, anchor, node->tag, implicit,
380
- node->data.mapping.style, mark, mark);
381
- if (!yaml_emitter_emit(emitter, &event)) return 0;
382
-
383
- for (pair = node->data.mapping.pairs.start;
384
- pair < node->data.mapping.pairs.top; pair ++) {
385
- if (!yaml_emitter_dump_node(emitter, pair->key)) return 0;
386
- if (!yaml_emitter_dump_node(emitter, pair->value)) return 0;
387
- }
388
-
389
- MAPPING_END_EVENT_INIT(event, mark, mark);
390
- if (!yaml_emitter_emit(emitter, &event)) return 0;
391
-
392
- return 1;
393
- }
394
-