psych 2.1.1 → 2.2.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.
- checksums.yaml +4 -4
- data/README.md +73 -0
- data/ext/java/PsychParser.java +1 -1
- data/ext/java/PsychToRuby.java +1 -1
- data/ext/psych/yaml/api.c +17 -40
- data/ext/psych/yaml/config.h +6 -6
- data/ext/psych/yaml/emitter.c +8 -8
- data/ext/psych/yaml/loader.c +5 -20
- data/ext/psych/yaml/parser.c +9 -5
- data/ext/psych/yaml/reader.c +3 -3
- data/ext/psych/yaml/scanner.c +28 -28
- data/ext/psych/yaml/writer.c +1 -1
- data/ext/psych/yaml/yaml_private.h +1 -3
- data/psych.gemspec +10 -8
- metadata +7 -7
- data/README.rdoc +0 -71
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 054dd7398e4481390331b2f80d104914f646fba7
|
4
|
+
data.tar.gz: 81e02124a8a73bb21def8b462c35711c6b4157b6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd2725e45732155d3fedd70298c9ddfc995ff5c2ef187752dcc654e3ba6a2a3133716db06aa1e9be1026664edf5a65f28cfba6ba73a226e5bfbd7db46aa2be41
|
7
|
+
data.tar.gz: 11952cff524490d070fbee8862c4ff0ecf4a0900ab43a344a96263f961c32f60a43e567c568d8de847585277d86d1fc07ae03788552bc105211b1e5f8f5bc7c9
|
data/README.md
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
# Psych
|
2
|
+
|
3
|
+
[](https://travis-ci.org/ruby/psych)
|
4
|
+
[](https://ci.appveyor.com/project/ruby/psych/branch/master)
|
5
|
+
|
6
|
+
* https://github.com/ruby/psych
|
7
|
+
|
8
|
+
## Description
|
9
|
+
|
10
|
+
Psych is a YAML parser and emitter. Psych leverages
|
11
|
+
[libyaml](http://pyyaml.org/wiki/LibYAML) for its YAML parsing and emitting
|
12
|
+
capabilities. In addition to wrapping libyaml, Psych also knows how to
|
13
|
+
serialize and de-serialize most Ruby objects to and from the YAML format.
|
14
|
+
|
15
|
+
## Examples
|
16
|
+
|
17
|
+
# Load YAML in to a Ruby object
|
18
|
+
Psych.load('--- foo') # => 'foo'
|
19
|
+
|
20
|
+
# Emit YAML from a Ruby object
|
21
|
+
Psych.dump("foo") # => "--- foo\n...\n"
|
22
|
+
|
23
|
+
## Dependencies
|
24
|
+
|
25
|
+
* libyaml
|
26
|
+
|
27
|
+
## Installation
|
28
|
+
|
29
|
+
Psych has been included with MRI since 1.9.2, and is the default YAML parser
|
30
|
+
in 1.9.3.
|
31
|
+
|
32
|
+
If you want a newer gem release of Psych, you can use rubygems:
|
33
|
+
|
34
|
+
gem install psych
|
35
|
+
|
36
|
+
In order to use the gem release in your app, and not the stdlib version,
|
37
|
+
you'll need the following:
|
38
|
+
|
39
|
+
gem 'psych'
|
40
|
+
require 'psych'
|
41
|
+
|
42
|
+
Or if you use Bundler add this to your `Gemfile`:
|
43
|
+
|
44
|
+
gem 'psych'
|
45
|
+
|
46
|
+
JRuby ships with a pure Java implementation of Psych.
|
47
|
+
|
48
|
+
If you're on Rubinius, Psych is available in 1.9 mode, please refer to the
|
49
|
+
Language Modes section of the [Rubinius
|
50
|
+
README](https://github.com/rubinius/rubinius#readme) for more information on
|
51
|
+
building and 1.9 mode.
|
52
|
+
|
53
|
+
## License
|
54
|
+
|
55
|
+
Copyright 2009 Aaron Patterson, et al.
|
56
|
+
|
57
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
58
|
+
of this software and associated documentation files (the 'Software'), to deal
|
59
|
+
in the Software without restriction, including without limitation the rights
|
60
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
61
|
+
copies of the Software, and to permit persons to whom the Software is
|
62
|
+
furnished to do so, subject to the following conditions:
|
63
|
+
|
64
|
+
The above copyright notice and this permission notice shall be included in all
|
65
|
+
copies or substantial portions of the Software.
|
66
|
+
|
67
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
68
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
69
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
70
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
71
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
72
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
73
|
+
SOFTWARE.
|
data/ext/java/PsychParser.java
CHANGED
@@ -77,7 +77,7 @@ import org.jruby.util.ByteList;
|
|
77
77
|
|
78
78
|
public class PsychParser extends RubyObject {
|
79
79
|
|
80
|
-
private static final Logger LOG = LoggerFactory.getLogger(
|
80
|
+
private static final Logger LOG = LoggerFactory.getLogger(PsychParser.class);
|
81
81
|
|
82
82
|
public static void initPsychParser(Ruby runtime, RubyModule psych) {
|
83
83
|
RubyClass psychParser = runtime.defineClassUnder("Parser", runtime.getObject(), new ObjectAllocator() {
|
data/ext/java/PsychToRuby.java
CHANGED
@@ -55,7 +55,7 @@ public class PsychToRuby {
|
|
55
55
|
public static IRubyObject build_exception(ThreadContext context, IRubyObject self, IRubyObject klass, IRubyObject message) {
|
56
56
|
if (klass instanceof RubyClass) {
|
57
57
|
IRubyObject exception = ((RubyClass)klass).allocate();
|
58
|
-
((RubyException)exception).message
|
58
|
+
((RubyException)exception).setMessage(message);
|
59
59
|
return exception;
|
60
60
|
} else {
|
61
61
|
throw context.runtime.newTypeError(klass, context.runtime.getClassClass());
|
data/ext/psych/yaml/api.c
CHANGED
@@ -395,7 +395,7 @@ yaml_emitter_delete(yaml_emitter_t *emitter)
|
|
395
395
|
}
|
396
396
|
QUEUE_DEL(emitter, emitter->events);
|
397
397
|
STACK_DEL(emitter, emitter->indents);
|
398
|
-
while (!STACK_EMPTY(
|
398
|
+
while (!STACK_EMPTY(empty, emitter->tag_directives)) {
|
399
399
|
yaml_tag_directive_t tag_directive = POP(emitter, emitter->tag_directives);
|
400
400
|
yaml_free(tag_directive.handle);
|
401
401
|
yaml_free(tag_directive.prefix);
|
@@ -415,7 +415,7 @@ yaml_string_write_handler(void *data, unsigned char *buffer, size_t size)
|
|
415
415
|
{
|
416
416
|
yaml_emitter_t *emitter = data;
|
417
417
|
|
418
|
-
if (emitter->output.string.size
|
418
|
+
if (emitter->output.string.size - *emitter->output.string.size_written
|
419
419
|
< size) {
|
420
420
|
memcpy(emitter->output.string.buffer
|
421
421
|
+ *emitter->output.string.size_written,
|
@@ -822,7 +822,6 @@ yaml_scalar_event_initialize(yaml_event_t *event,
|
|
822
822
|
yaml_char_t *anchor_copy = NULL;
|
823
823
|
yaml_char_t *tag_copy = NULL;
|
824
824
|
yaml_char_t *value_copy = NULL;
|
825
|
-
size_t value_length;
|
826
825
|
|
827
826
|
assert(event); /* Non-NULL event object is expected. */
|
828
827
|
assert(value); /* Non-NULL anchor is expected. */
|
@@ -840,19 +839,16 @@ yaml_scalar_event_initialize(yaml_event_t *event,
|
|
840
839
|
}
|
841
840
|
|
842
841
|
if (length < 0) {
|
843
|
-
|
844
|
-
}
|
845
|
-
else {
|
846
|
-
value_length = (size_t)length;
|
842
|
+
length = strlen((char *)value);
|
847
843
|
}
|
848
844
|
|
849
|
-
if (!yaml_check_utf8(value,
|
850
|
-
value_copy = yaml_malloc(
|
845
|
+
if (!yaml_check_utf8(value, length)) goto error;
|
846
|
+
value_copy = yaml_malloc(length+1);
|
851
847
|
if (!value_copy) goto error;
|
852
|
-
memcpy(value_copy, value,
|
853
|
-
value_copy[
|
848
|
+
memcpy(value_copy, value, length);
|
849
|
+
value_copy[length] = '\0';
|
854
850
|
|
855
|
-
SCALAR_EVENT_INIT(*event, anchor_copy, tag_copy, value_copy,
|
851
|
+
SCALAR_EVENT_INIT(*event, anchor_copy, tag_copy, value_copy, length,
|
856
852
|
plain_implicit, quoted_implicit, style, mark, mark);
|
857
853
|
|
858
854
|
return 1;
|
@@ -1206,8 +1202,6 @@ yaml_document_add_scalar(yaml_document_t *document,
|
|
1206
1202
|
yaml_char_t *tag_copy = NULL;
|
1207
1203
|
yaml_char_t *value_copy = NULL;
|
1208
1204
|
yaml_node_t node;
|
1209
|
-
size_t value_length;
|
1210
|
-
ptrdiff_t ret;
|
1211
1205
|
|
1212
1206
|
assert(document); /* Non-NULL document object is expected. */
|
1213
1207
|
assert(value); /* Non-NULL value is expected. */
|
@@ -1221,26 +1215,19 @@ yaml_document_add_scalar(yaml_document_t *document,
|
|
1221
1215
|
if (!tag_copy) goto error;
|
1222
1216
|
|
1223
1217
|
if (length < 0) {
|
1224
|
-
|
1225
|
-
}
|
1226
|
-
else {
|
1227
|
-
value_length = (size_t)length;
|
1218
|
+
length = strlen((char *)value);
|
1228
1219
|
}
|
1229
1220
|
|
1230
|
-
if (!yaml_check_utf8(value,
|
1231
|
-
value_copy = yaml_malloc(
|
1221
|
+
if (!yaml_check_utf8(value, length)) goto error;
|
1222
|
+
value_copy = yaml_malloc(length+1);
|
1232
1223
|
if (!value_copy) goto error;
|
1233
|
-
memcpy(value_copy, value,
|
1234
|
-
value_copy[
|
1224
|
+
memcpy(value_copy, value, length);
|
1225
|
+
value_copy[length] = '\0';
|
1235
1226
|
|
1236
|
-
SCALAR_NODE_INIT(node, tag_copy, value_copy,
|
1227
|
+
SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark);
|
1237
1228
|
if (!PUSH(&context, document->nodes, node)) goto error;
|
1238
1229
|
|
1239
|
-
|
1240
|
-
#if PTRDIFF_MAX > INT_MAX
|
1241
|
-
if (ret > INT_MAX) goto error;
|
1242
|
-
#endif
|
1243
|
-
return (int)ret;
|
1230
|
+
return document->nodes.top - document->nodes.start;
|
1244
1231
|
|
1245
1232
|
error:
|
1246
1233
|
yaml_free(tag_copy);
|
@@ -1268,7 +1255,6 @@ yaml_document_add_sequence(yaml_document_t *document,
|
|
1268
1255
|
yaml_node_item_t *top;
|
1269
1256
|
} items = { NULL, NULL, NULL };
|
1270
1257
|
yaml_node_t node;
|
1271
|
-
ptrdiff_t ret;
|
1272
1258
|
|
1273
1259
|
assert(document); /* Non-NULL document object is expected. */
|
1274
1260
|
|
@@ -1286,11 +1272,7 @@ yaml_document_add_sequence(yaml_document_t *document,
|
|
1286
1272
|
style, mark, mark);
|
1287
1273
|
if (!PUSH(&context, document->nodes, node)) goto error;
|
1288
1274
|
|
1289
|
-
|
1290
|
-
#if PTRDIFF_MAX > INT_MAX
|
1291
|
-
if (ret > INT_MAX) goto error;
|
1292
|
-
#endif
|
1293
|
-
return (int)ret;
|
1275
|
+
return document->nodes.top - document->nodes.start;
|
1294
1276
|
|
1295
1277
|
error:
|
1296
1278
|
STACK_DEL(&context, items);
|
@@ -1318,7 +1300,6 @@ yaml_document_add_mapping(yaml_document_t *document,
|
|
1318
1300
|
yaml_node_pair_t *top;
|
1319
1301
|
} pairs = { NULL, NULL, NULL };
|
1320
1302
|
yaml_node_t node;
|
1321
|
-
ptrdiff_t ret;
|
1322
1303
|
|
1323
1304
|
assert(document); /* Non-NULL document object is expected. */
|
1324
1305
|
|
@@ -1336,11 +1317,7 @@ yaml_document_add_mapping(yaml_document_t *document,
|
|
1336
1317
|
style, mark, mark);
|
1337
1318
|
if (!PUSH(&context, document->nodes, node)) goto error;
|
1338
1319
|
|
1339
|
-
|
1340
|
-
#if PTRDIFF_MAX > INT_MAX
|
1341
|
-
if (ret > INT_MAX) goto error;
|
1342
|
-
#endif
|
1343
|
-
return (int)ret;
|
1320
|
+
return document->nodes.top - document->nodes.start;
|
1344
1321
|
|
1345
1322
|
error:
|
1346
1323
|
STACK_DEL(&context, pairs);
|
data/ext/psych/yaml/config.h
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
#define PACKAGE_NAME "yaml"
|
2
2
|
#define PACKAGE_TARNAME "yaml"
|
3
|
-
#define PACKAGE_VERSION "0.1.
|
4
|
-
#define PACKAGE_STRING "yaml 0.1.
|
5
|
-
#define PACKAGE_BUGREPORT "
|
6
|
-
#define PACKAGE_URL ""
|
3
|
+
#define PACKAGE_VERSION "0.1.7"
|
4
|
+
#define PACKAGE_STRING "yaml 0.1.7"
|
5
|
+
#define PACKAGE_BUGREPORT "https://github.com/yaml/libyaml/issues"
|
6
|
+
#define PACKAGE_URL "https://github.com/yaml/libyaml"
|
7
7
|
#define YAML_VERSION_MAJOR 0
|
8
8
|
#define YAML_VERSION_MINOR 1
|
9
|
-
#define YAML_VERSION_PATCH
|
10
|
-
#define YAML_VERSION_STRING "0.1.
|
9
|
+
#define YAML_VERSION_PATCH 7
|
10
|
+
#define YAML_VERSION_STRING "0.1.7"
|
data/ext/psych/yaml/emitter.c
CHANGED
@@ -53,7 +53,7 @@
|
|
53
53
|
#define WRITE_BREAK(emitter,string) \
|
54
54
|
(FLUSH(emitter) \
|
55
55
|
&& (CHECK(string,'\n') ? \
|
56
|
-
(
|
56
|
+
(PUT_BREAK(emitter), \
|
57
57
|
string.pointer ++, \
|
58
58
|
1) : \
|
59
59
|
(COPY(emitter->buffer,string), \
|
@@ -221,7 +221,7 @@ yaml_emitter_write_indent(yaml_emitter_t *emitter);
|
|
221
221
|
|
222
222
|
static int
|
223
223
|
yaml_emitter_write_indicator(yaml_emitter_t *emitter,
|
224
|
-
|
224
|
+
char *indicator, int need_whitespace,
|
225
225
|
int is_whitespace, int is_indention);
|
226
226
|
|
227
227
|
static int
|
@@ -517,7 +517,7 @@ yaml_emitter_emit_stream_start(yaml_emitter_t *emitter,
|
|
517
517
|
if (emitter->best_width < 0) {
|
518
518
|
emitter->best_width = INT_MAX;
|
519
519
|
}
|
520
|
-
|
520
|
+
|
521
521
|
if (!emitter->line_break) {
|
522
522
|
emitter->line_break = YAML_LN_BREAK;
|
523
523
|
}
|
@@ -607,7 +607,7 @@ yaml_emitter_emit_document_start(yaml_emitter_t *emitter,
|
|
607
607
|
if (!yaml_emitter_write_indent(emitter))
|
608
608
|
return 0;
|
609
609
|
}
|
610
|
-
|
610
|
+
|
611
611
|
if (event->data.document_start.tag_directives.start
|
612
612
|
!= event->data.document_start.tag_directives.end) {
|
613
613
|
implicit = 0;
|
@@ -721,7 +721,7 @@ yaml_emitter_emit_document_end(yaml_emitter_t *emitter,
|
|
721
721
|
}
|
722
722
|
|
723
723
|
/*
|
724
|
-
*
|
724
|
+
*
|
725
725
|
* Expect a flow item node.
|
726
726
|
*/
|
727
727
|
|
@@ -1402,7 +1402,7 @@ yaml_emitter_analyze_anchor(yaml_emitter_t *emitter,
|
|
1402
1402
|
{
|
1403
1403
|
size_t anchor_length;
|
1404
1404
|
yaml_string_t string;
|
1405
|
-
|
1405
|
+
|
1406
1406
|
anchor_length = strlen((char *)anchor);
|
1407
1407
|
STRING_ASSIGN(string, anchor, anchor_length);
|
1408
1408
|
|
@@ -1784,7 +1784,7 @@ yaml_emitter_write_indent(yaml_emitter_t *emitter)
|
|
1784
1784
|
|
1785
1785
|
static int
|
1786
1786
|
yaml_emitter_write_indicator(yaml_emitter_t *emitter,
|
1787
|
-
|
1787
|
+
char *indicator, int need_whitespace,
|
1788
1788
|
int is_whitespace, int is_indention)
|
1789
1789
|
{
|
1790
1790
|
size_t indicator_length;
|
@@ -2178,7 +2178,7 @@ yaml_emitter_write_block_scalar_hints(yaml_emitter_t *emitter,
|
|
2178
2178
|
yaml_string_t string)
|
2179
2179
|
{
|
2180
2180
|
char indent_hint[2];
|
2181
|
-
|
2181
|
+
char *chomp_hint = NULL;
|
2182
2182
|
|
2183
2183
|
if (IS_SPACE(string) || IS_BREAK(string))
|
2184
2184
|
{
|
data/ext/psych/yaml/loader.c
CHANGED
@@ -239,8 +239,8 @@ yaml_parser_register_anchor(yaml_parser_t *parser,
|
|
239
239
|
if (strcmp((char *)alias_data->anchor, (char *)anchor) == 0) {
|
240
240
|
yaml_free(anchor);
|
241
241
|
return yaml_parser_set_composer_error_context(parser,
|
242
|
-
"found duplicate anchor; first
|
243
|
-
alias_data->mark, "second
|
242
|
+
"found duplicate anchor; first occurence",
|
243
|
+
alias_data->mark, "second occurence", data.mark);
|
244
244
|
}
|
245
245
|
}
|
246
246
|
|
@@ -283,7 +283,6 @@ static int
|
|
283
283
|
yaml_parser_load_scalar(yaml_parser_t *parser, yaml_event_t *first_event)
|
284
284
|
{
|
285
285
|
yaml_node_t node;
|
286
|
-
ptrdiff_t node_index;
|
287
286
|
int index;
|
288
287
|
yaml_char_t *tag = first_event->data.scalar.tag;
|
289
288
|
|
@@ -301,11 +300,7 @@ yaml_parser_load_scalar(yaml_parser_t *parser, yaml_event_t *first_event)
|
|
301
300
|
|
302
301
|
if (!PUSH(parser, parser->document->nodes, node)) goto error;
|
303
302
|
|
304
|
-
|
305
|
-
#if PTRDIFF_MAX > INT_MAX
|
306
|
-
if (node_index > INT_MAX) goto error;
|
307
|
-
#endif
|
308
|
-
index = (int)node_index;
|
303
|
+
index = parser->document->nodes.top - parser->document->nodes.start;
|
309
304
|
|
310
305
|
if (!yaml_parser_register_anchor(parser, index,
|
311
306
|
first_event->data.scalar.anchor)) return 0;
|
@@ -334,7 +329,6 @@ yaml_parser_load_sequence(yaml_parser_t *parser, yaml_event_t *first_event)
|
|
334
329
|
yaml_node_item_t *top;
|
335
330
|
} items = { NULL, NULL, NULL };
|
336
331
|
int index, item_index;
|
337
|
-
ptrdiff_t node_index;
|
338
332
|
yaml_char_t *tag = first_event->data.sequence_start.tag;
|
339
333
|
|
340
334
|
if (!STACK_LIMIT(parser, parser->document->nodes, INT_MAX-1)) goto error;
|
@@ -353,11 +347,7 @@ yaml_parser_load_sequence(yaml_parser_t *parser, yaml_event_t *first_event)
|
|
353
347
|
|
354
348
|
if (!PUSH(parser, parser->document->nodes, node)) goto error;
|
355
349
|
|
356
|
-
|
357
|
-
#if PTRDIFF_MAX > INT_MAX
|
358
|
-
if (node_index > INT_MAX) goto error;
|
359
|
-
#endif
|
360
|
-
index = (int)node_index;
|
350
|
+
index = parser->document->nodes.top - parser->document->nodes.start;
|
361
351
|
|
362
352
|
if (!yaml_parser_register_anchor(parser, index,
|
363
353
|
first_event->data.sequence_start.anchor)) return 0;
|
@@ -401,7 +391,6 @@ yaml_parser_load_mapping(yaml_parser_t *parser, yaml_event_t *first_event)
|
|
401
391
|
yaml_node_pair_t *top;
|
402
392
|
} pairs = { NULL, NULL, NULL };
|
403
393
|
int index;
|
404
|
-
ptrdiff_t node_index;
|
405
394
|
yaml_node_pair_t pair;
|
406
395
|
yaml_char_t *tag = first_event->data.mapping_start.tag;
|
407
396
|
|
@@ -421,11 +410,7 @@ yaml_parser_load_mapping(yaml_parser_t *parser, yaml_event_t *first_event)
|
|
421
410
|
|
422
411
|
if (!PUSH(parser, parser->document->nodes, node)) goto error;
|
423
412
|
|
424
|
-
|
425
|
-
#if PTRDIFF_MAX > INT_MAX
|
426
|
-
if (node_index > INT_MAX) goto error;
|
427
|
-
#endif
|
428
|
-
index = (int)node_index;
|
413
|
+
index = parser->document->nodes.top - parser->document->nodes.start;
|
429
414
|
|
430
415
|
if (!yaml_parser_register_anchor(parser, index,
|
431
416
|
first_event->data.mapping_start.anchor)) return 0;
|
data/ext/psych/yaml/parser.c
CHANGED
@@ -759,8 +759,9 @@ yaml_parser_parse_block_sequence_entry(yaml_parser_t *parser,
|
|
759
759
|
|
760
760
|
else if (token->type == YAML_BLOCK_END_TOKEN)
|
761
761
|
{
|
762
|
+
yaml_mark_t dummy_mark; /* Used to eliminate a compiler warning. */
|
762
763
|
parser->state = POP(parser, parser->states);
|
763
|
-
|
764
|
+
dummy_mark = POP(parser, parser->marks);
|
764
765
|
SEQUENCE_END_EVENT_INIT(*event, token->start_mark, token->end_mark);
|
765
766
|
SKIP_TOKEN(parser);
|
766
767
|
return 1;
|
@@ -868,8 +869,9 @@ yaml_parser_parse_block_mapping_key(yaml_parser_t *parser,
|
|
868
869
|
|
869
870
|
else if (token->type == YAML_BLOCK_END_TOKEN)
|
870
871
|
{
|
872
|
+
yaml_mark_t dummy_mark; /* Used to eliminate a compiler warning. */
|
871
873
|
parser->state = POP(parser, parser->states);
|
872
|
-
|
874
|
+
dummy_mark = POP(parser, parser->marks);
|
873
875
|
MAPPING_END_EVENT_INIT(*event, token->start_mark, token->end_mark);
|
874
876
|
SKIP_TOKEN(parser);
|
875
877
|
return 1;
|
@@ -950,6 +952,7 @@ yaml_parser_parse_flow_sequence_entry(yaml_parser_t *parser,
|
|
950
952
|
yaml_event_t *event, int first)
|
951
953
|
{
|
952
954
|
yaml_token_t *token;
|
955
|
+
yaml_mark_t dummy_mark; /* Used to eliminate a compiler warning. */
|
953
956
|
|
954
957
|
if (first) {
|
955
958
|
token = PEEK_TOKEN(parser);
|
@@ -994,7 +997,7 @@ yaml_parser_parse_flow_sequence_entry(yaml_parser_t *parser,
|
|
994
997
|
}
|
995
998
|
|
996
999
|
parser->state = POP(parser, parser->states);
|
997
|
-
|
1000
|
+
dummy_mark = POP(parser, parser->marks);
|
998
1001
|
SEQUENCE_END_EVENT_INIT(*event, token->start_mark, token->end_mark);
|
999
1002
|
SKIP_TOKEN(parser);
|
1000
1003
|
return 1;
|
@@ -1101,6 +1104,7 @@ yaml_parser_parse_flow_mapping_key(yaml_parser_t *parser,
|
|
1101
1104
|
yaml_event_t *event, int first)
|
1102
1105
|
{
|
1103
1106
|
yaml_token_t *token;
|
1107
|
+
yaml_mark_t dummy_mark; /* Used to eliminate a compiler warning. */
|
1104
1108
|
|
1105
1109
|
if (first) {
|
1106
1110
|
token = PEEK_TOKEN(parser);
|
@@ -1154,7 +1158,7 @@ yaml_parser_parse_flow_mapping_key(yaml_parser_t *parser,
|
|
1154
1158
|
}
|
1155
1159
|
|
1156
1160
|
parser->state = POP(parser, parser->states);
|
1157
|
-
|
1161
|
+
dummy_mark = POP(parser, parser->marks);
|
1158
1162
|
MAPPING_END_EVENT_INIT(*event, token->start_mark, token->end_mark);
|
1159
1163
|
SKIP_TOKEN(parser);
|
1160
1164
|
return 1;
|
@@ -1291,7 +1295,7 @@ yaml_parser_process_directives(yaml_parser_t *parser,
|
|
1291
1295
|
token = PEEK_TOKEN(parser);
|
1292
1296
|
if (!token) goto error;
|
1293
1297
|
}
|
1294
|
-
|
1298
|
+
|
1295
1299
|
for (default_tag_directive = default_tag_directives;
|
1296
1300
|
default_tag_directive->handle; default_tag_directive++) {
|
1297
1301
|
if (!yaml_parser_append_tag_directive(parser, *default_tag_directive, 1,
|
data/ext/psych/yaml/reader.c
CHANGED
@@ -52,7 +52,7 @@ yaml_parser_determine_encoding(yaml_parser_t *parser)
|
|
52
52
|
{
|
53
53
|
/* Ensure that we had enough bytes in the raw buffer. */
|
54
54
|
|
55
|
-
while (!parser->eof
|
55
|
+
while (!parser->eof
|
56
56
|
&& parser->raw_buffer.last - parser->raw_buffer.pointer < 3) {
|
57
57
|
if (!yaml_parser_update_raw_buffer(parser)) {
|
58
58
|
return 0;
|
@@ -295,7 +295,7 @@ yaml_parser_update_buffer(yaml_parser_t *parser, size_t length)
|
|
295
295
|
parser->offset, value);
|
296
296
|
|
297
297
|
break;
|
298
|
-
|
298
|
+
|
299
299
|
case YAML_UTF16LE_ENCODING:
|
300
300
|
case YAML_UTF16BE_ENCODING:
|
301
301
|
|
@@ -318,7 +318,7 @@ yaml_parser_update_buffer(yaml_parser_t *parser, size_t length)
|
|
318
318
|
*
|
319
319
|
* The following formulas are used for decoding
|
320
320
|
* and encoding characters using surrogate pairs:
|
321
|
-
*
|
321
|
+
*
|
322
322
|
* U = U' + 0x10000 (0x01 00 00 <= U <= 0x10 FF FF)
|
323
323
|
* U' = yyyyyyyyyyxxxxxxxxxx (0 <= U' <= 0x0F FF FF)
|
324
324
|
* W1 = 110110yyyyyyyyyy
|
data/ext/psych/yaml/scanner.c
CHANGED
@@ -70,7 +70,7 @@
|
|
70
70
|
* %TAG !yaml! tag:yaml.org,2002:
|
71
71
|
* ---
|
72
72
|
*
|
73
|
-
* The
|
73
|
+
* The correspoding sequence of tokens:
|
74
74
|
*
|
75
75
|
* STREAM-START(utf-8)
|
76
76
|
* VERSION-DIRECTIVE(1,1)
|
@@ -762,7 +762,7 @@ yaml_parser_scan(yaml_parser_t *parser, yaml_token_t *token)
|
|
762
762
|
}
|
763
763
|
|
764
764
|
/* Fetch the next token from the queue. */
|
765
|
-
|
765
|
+
|
766
766
|
*token = DEQUEUE(parser, parser->tokens);
|
767
767
|
parser->token_available = 0;
|
768
768
|
parser->tokens_parsed ++;
|
@@ -1114,7 +1114,7 @@ yaml_parser_save_simple_key(yaml_parser_t *parser)
|
|
1114
1114
|
yaml_simple_key_t simple_key;
|
1115
1115
|
simple_key.possible = 1;
|
1116
1116
|
simple_key.required = required;
|
1117
|
-
simple_key.token_number =
|
1117
|
+
simple_key.token_number =
|
1118
1118
|
parser->tokens_parsed + (parser->tokens.tail - parser->tokens.head);
|
1119
1119
|
simple_key.mark = parser->mark;
|
1120
1120
|
|
@@ -1186,9 +1186,11 @@ yaml_parser_increase_flow_level(yaml_parser_t *parser)
|
|
1186
1186
|
static int
|
1187
1187
|
yaml_parser_decrease_flow_level(yaml_parser_t *parser)
|
1188
1188
|
{
|
1189
|
+
yaml_simple_key_t dummy_key; /* Used to eliminate a compiler warning. */
|
1190
|
+
|
1189
1191
|
if (parser->flow_level) {
|
1190
1192
|
parser->flow_level --;
|
1191
|
-
|
1193
|
+
dummy_key = POP(parser, parser->simple_keys);
|
1192
1194
|
}
|
1193
1195
|
|
1194
1196
|
return 1;
|
@@ -1198,7 +1200,7 @@ yaml_parser_decrease_flow_level(yaml_parser_t *parser)
|
|
1198
1200
|
* Push the current indentation level to the stack and set the new level
|
1199
1201
|
* the current column is greater than the indentation level. In this case,
|
1200
1202
|
* append or insert the specified token into the token queue.
|
1201
|
-
*
|
1203
|
+
*
|
1202
1204
|
*/
|
1203
1205
|
|
1204
1206
|
static int
|
@@ -1222,14 +1224,12 @@ yaml_parser_roll_indent(yaml_parser_t *parser, ptrdiff_t column,
|
|
1222
1224
|
if (!PUSH(parser, parser->indents, parser->indent))
|
1223
1225
|
return 0;
|
1224
1226
|
|
1225
|
-
#if PTRDIFF_MAX > INT_MAX
|
1226
1227
|
if (column > INT_MAX) {
|
1227
1228
|
parser->error = YAML_MEMORY_ERROR;
|
1228
1229
|
return 0;
|
1229
1230
|
}
|
1230
|
-
#endif
|
1231
1231
|
|
1232
|
-
parser->indent =
|
1232
|
+
parser->indent = column;
|
1233
1233
|
|
1234
1234
|
/* Create a token and insert it into the queue. */
|
1235
1235
|
|
@@ -1251,7 +1251,7 @@ yaml_parser_roll_indent(yaml_parser_t *parser, ptrdiff_t column,
|
|
1251
1251
|
|
1252
1252
|
/*
|
1253
1253
|
* Pop indentation levels from the indents stack until the current level
|
1254
|
-
* becomes less or equal to the column. For each
|
1254
|
+
* becomes less or equal to the column. For each intendation level, append
|
1255
1255
|
* the BLOCK-END token.
|
1256
1256
|
*/
|
1257
1257
|
|
@@ -1266,7 +1266,7 @@ yaml_parser_unroll_indent(yaml_parser_t *parser, ptrdiff_t column)
|
|
1266
1266
|
if (parser->flow_level)
|
1267
1267
|
return 1;
|
1268
1268
|
|
1269
|
-
/* Loop through the
|
1269
|
+
/* Loop through the intendation levels in the stack. */
|
1270
1270
|
|
1271
1271
|
while (parser->indent > column)
|
1272
1272
|
{
|
@@ -1938,7 +1938,7 @@ yaml_parser_scan_to_next_token(yaml_parser_t *parser)
|
|
1938
1938
|
*
|
1939
1939
|
* - in the flow context;
|
1940
1940
|
* - in the block context, but not at the beginning of the line or
|
1941
|
-
* after '-', '?', or ':' (complex value).
|
1941
|
+
* after '-', '?', or ':' (complex value).
|
1942
1942
|
*/
|
1943
1943
|
|
1944
1944
|
if (!CACHE(parser, 1)) return 0;
|
@@ -2053,7 +2053,7 @@ yaml_parser_scan_directive(yaml_parser_t *parser, yaml_token_t *token)
|
|
2053
2053
|
else
|
2054
2054
|
{
|
2055
2055
|
yaml_parser_set_scanner_error(parser, "while scanning a directive",
|
2056
|
-
start_mark, "found
|
2056
|
+
start_mark, "found uknown directive name");
|
2057
2057
|
goto error;
|
2058
2058
|
}
|
2059
2059
|
|
@@ -2775,15 +2775,15 @@ yaml_parser_scan_block_scalar(yaml_parser_t *parser, yaml_token_t *token,
|
|
2775
2775
|
|
2776
2776
|
if (IS_DIGIT(parser->buffer))
|
2777
2777
|
{
|
2778
|
-
/* Check that the
|
2778
|
+
/* Check that the intendation is greater than 0. */
|
2779
2779
|
|
2780
2780
|
if (CHECK(parser->buffer, '0')) {
|
2781
2781
|
yaml_parser_set_scanner_error(parser, "while scanning a block scalar",
|
2782
|
-
start_mark, "found an
|
2782
|
+
start_mark, "found an intendation indicator equal to 0");
|
2783
2783
|
goto error;
|
2784
2784
|
}
|
2785
2785
|
|
2786
|
-
/* Get the
|
2786
|
+
/* Get the intendation level and eat the indicator. */
|
2787
2787
|
|
2788
2788
|
increment = AS_DIGIT(parser->buffer);
|
2789
2789
|
|
@@ -2797,7 +2797,7 @@ yaml_parser_scan_block_scalar(yaml_parser_t *parser, yaml_token_t *token,
|
|
2797
2797
|
{
|
2798
2798
|
if (CHECK(parser->buffer, '0')) {
|
2799
2799
|
yaml_parser_set_scanner_error(parser, "while scanning a block scalar",
|
2800
|
-
start_mark, "found an
|
2800
|
+
start_mark, "found an intendation indicator equal to 0");
|
2801
2801
|
goto error;
|
2802
2802
|
}
|
2803
2803
|
|
@@ -2847,7 +2847,7 @@ yaml_parser_scan_block_scalar(yaml_parser_t *parser, yaml_token_t *token,
|
|
2847
2847
|
|
2848
2848
|
end_mark = parser->mark;
|
2849
2849
|
|
2850
|
-
/* Set the
|
2850
|
+
/* Set the intendation level if it was specified. */
|
2851
2851
|
|
2852
2852
|
if (increment) {
|
2853
2853
|
indent = parser->indent >= 0 ? parser->indent+increment : increment;
|
@@ -2913,7 +2913,7 @@ yaml_parser_scan_block_scalar(yaml_parser_t *parser, yaml_token_t *token,
|
|
2913
2913
|
|
2914
2914
|
if (!READ_LINE(parser, leading_break)) goto error;
|
2915
2915
|
|
2916
|
-
/* Eat the following
|
2916
|
+
/* Eat the following intendation spaces and line breaks. */
|
2917
2917
|
|
2918
2918
|
if (!yaml_parser_scan_block_scalar_breaks(parser,
|
2919
2919
|
&indent, &trailing_breaks, start_mark, &end_mark)) goto error;
|
@@ -2948,8 +2948,8 @@ error:
|
|
2948
2948
|
}
|
2949
2949
|
|
2950
2950
|
/*
|
2951
|
-
* Scan
|
2952
|
-
*
|
2951
|
+
* Scan intendation spaces and line breaks for a block scalar. Determine the
|
2952
|
+
* intendation level if needed.
|
2953
2953
|
*/
|
2954
2954
|
|
2955
2955
|
static int
|
@@ -2961,11 +2961,11 @@ yaml_parser_scan_block_scalar_breaks(yaml_parser_t *parser,
|
|
2961
2961
|
|
2962
2962
|
*end_mark = parser->mark;
|
2963
2963
|
|
2964
|
-
/* Eat the
|
2964
|
+
/* Eat the intendation spaces and line breaks. */
|
2965
2965
|
|
2966
2966
|
while (1)
|
2967
2967
|
{
|
2968
|
-
/* Eat the
|
2968
|
+
/* Eat the intendation spaces. */
|
2969
2969
|
|
2970
2970
|
if (!CACHE(parser, 1)) return 0;
|
2971
2971
|
|
@@ -2978,12 +2978,12 @@ yaml_parser_scan_block_scalar_breaks(yaml_parser_t *parser,
|
|
2978
2978
|
if ((int)parser->mark.column > max_indent)
|
2979
2979
|
max_indent = (int)parser->mark.column;
|
2980
2980
|
|
2981
|
-
/* Check for a tab character messing the
|
2981
|
+
/* Check for a tab character messing the intendation. */
|
2982
2982
|
|
2983
2983
|
if ((!*indent || (int)parser->mark.column < *indent)
|
2984
2984
|
&& IS_TAB(parser->buffer)) {
|
2985
2985
|
return yaml_parser_set_scanner_error(parser, "while scanning a block scalar",
|
2986
|
-
start_mark, "found a tab character where an
|
2986
|
+
start_mark, "found a tab character where an intendation space is expected");
|
2987
2987
|
}
|
2988
2988
|
|
2989
2989
|
/* Have we found a non-empty line? */
|
@@ -3007,7 +3007,7 @@ yaml_parser_scan_block_scalar_breaks(yaml_parser_t *parser,
|
|
3007
3007
|
*indent = 1;
|
3008
3008
|
}
|
3009
3009
|
|
3010
|
-
return 1;
|
3010
|
+
return 1;
|
3011
3011
|
}
|
3012
3012
|
|
3013
3013
|
/*
|
@@ -3504,12 +3504,12 @@ yaml_parser_scan_plain_scalar(yaml_parser_t *parser, yaml_token_t *token)
|
|
3504
3504
|
{
|
3505
3505
|
if (IS_BLANK(parser->buffer))
|
3506
3506
|
{
|
3507
|
-
/* Check for tab character that abuse
|
3507
|
+
/* Check for tab character that abuse intendation. */
|
3508
3508
|
|
3509
3509
|
if (leading_blanks && (int)parser->mark.column < indent
|
3510
3510
|
&& IS_TAB(parser->buffer)) {
|
3511
3511
|
yaml_parser_set_scanner_error(parser, "while scanning a plain scalar",
|
3512
|
-
start_mark, "found a tab character that violate
|
3512
|
+
start_mark, "found a tab character that violate intendation");
|
3513
3513
|
goto error;
|
3514
3514
|
}
|
3515
3515
|
|
@@ -3542,7 +3542,7 @@ yaml_parser_scan_plain_scalar(yaml_parser_t *parser, yaml_token_t *token)
|
|
3542
3542
|
if (!CACHE(parser, 1)) goto error;
|
3543
3543
|
}
|
3544
3544
|
|
3545
|
-
/* Check
|
3545
|
+
/* Check intendation level. */
|
3546
3546
|
|
3547
3547
|
if (!parser->flow_level && (int)parser->mark.column < indent)
|
3548
3548
|
break;
|
data/ext/psych/yaml/writer.c
CHANGED
@@ -436,8 +436,7 @@ yaml_queue_extend(void **start, void **head, void **tail, void **end);
|
|
436
436
|
(stack).start = (stack).top = (stack).end = 0)
|
437
437
|
|
438
438
|
#define STACK_EMPTY(context,stack) \
|
439
|
-
((
|
440
|
-
((stack).start == (stack).top))
|
439
|
+
((stack).start == (stack).top)
|
441
440
|
|
442
441
|
#define STACK_LIMIT(context,stack,size) \
|
443
442
|
((stack).top - (stack).start < (size) ? \
|
@@ -661,4 +660,3 @@ yaml_queue_extend(void **start, void **head, void **tail, void **end);
|
|
661
660
|
(node).data.mapping.pairs.end = (node_pairs_end), \
|
662
661
|
(node).data.mapping.pairs.top = (node_pairs_start), \
|
663
662
|
(node).data.mapping.style = (node_style))
|
664
|
-
|
data/psych.gemspec
CHANGED
@@ -2,30 +2,32 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "psych"
|
5
|
-
s.version = "2.
|
5
|
+
s.version = "2.2.0"
|
6
6
|
s.authors = ["Aaron Patterson", "SHIBATA Hiroshi"]
|
7
7
|
s.email = ["aaron@tenderlovemaking.com", "hsbt@ruby-lang.org"]
|
8
|
-
s.date = "2016-
|
8
|
+
s.date = "2016-11-14"
|
9
9
|
s.summary = "Psych is a YAML parser and emitter"
|
10
10
|
s.description = <<-DESCRIPTION
|
11
11
|
Psych is a YAML parser and emitter. Psych leverages libyaml[http://pyyaml.org/wiki/LibYAML]
|
12
12
|
for its YAML parsing and emitting capabilities. In addition to wrapping libyaml,
|
13
13
|
Psych also knows how to serialize and de-serialize most Ruby objects to and from the YAML format.
|
14
14
|
DESCRIPTION
|
15
|
-
s.homepage = "
|
15
|
+
s.homepage = "https://github.com/ruby/psych"
|
16
16
|
s.licenses = ["MIT"]
|
17
17
|
s.require_paths = ["lib"]
|
18
|
-
s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
19
18
|
|
20
|
-
|
21
|
-
s.
|
19
|
+
# for ruby core repository. It was generated by `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
20
|
+
s.files = [".gitignore", ".travis.yml", "CHANGELOG.rdoc", "Gemfile", "Mavenfile", "README.md", "Rakefile", "bin/console", "bin/setup", "ext/java/PsychEmitter.java", "ext/java/PsychLibrary.java", "ext/java/PsychParser.java", "ext/java/PsychToRuby.java", "ext/java/PsychYamlTree.java", "ext/psych/.gitignore", "ext/psych/depend", "ext/psych/extconf.rb", "ext/psych/psych.c", "ext/psych/psych.h", "ext/psych/psych_emitter.c", "ext/psych/psych_emitter.h", "ext/psych/psych_parser.c", "ext/psych/psych_parser.h", "ext/psych/psych_to_ruby.c", "ext/psych/psych_to_ruby.h", "ext/psych/psych_yaml_tree.c", "ext/psych/psych_yaml_tree.h", "ext/psych/yaml/LICENSE", "ext/psych/yaml/api.c", "ext/psych/yaml/config.h", "ext/psych/yaml/dumper.c", "ext/psych/yaml/emitter.c", "ext/psych/yaml/loader.c", "ext/psych/yaml/parser.c", "ext/psych/yaml/reader.c", "ext/psych/yaml/scanner.c", "ext/psych/yaml/writer.c", "ext/psych/yaml/yaml.h", "ext/psych/yaml/yaml_private.h", "lib/psych.rb", "lib/psych/class_loader.rb", "lib/psych/coder.rb", "lib/psych/core_ext.rb", "lib/psych/deprecated.rb", "lib/psych/exception.rb", "lib/psych/handler.rb", "lib/psych/handlers/document_stream.rb", "lib/psych/handlers/recorder.rb", "lib/psych/json/ruby_events.rb", "lib/psych/json/stream.rb", "lib/psych/json/tree_builder.rb", "lib/psych/json/yaml_events.rb", "lib/psych/nodes.rb", "lib/psych/nodes/alias.rb", "lib/psych/nodes/document.rb", "lib/psych/nodes/mapping.rb", "lib/psych/nodes/node.rb", "lib/psych/nodes/scalar.rb", "lib/psych/nodes/sequence.rb", "lib/psych/nodes/stream.rb", "lib/psych/omap.rb", "lib/psych/parser.rb", "lib/psych/scalar_scanner.rb", "lib/psych/set.rb", "lib/psych/stream.rb", "lib/psych/streaming.rb", "lib/psych/syntax_error.rb", "lib/psych/tree_builder.rb", "lib/psych/versions.rb", "lib/psych/visitors.rb","lib/psych/visitors/depth_first.rb", "lib/psych/visitors/emitter.rb", "lib/psych/visitors/json_tree.rb", "lib/psych/visitors/to_ruby.rb", "lib/psych/visitors/visitor.rb", "lib/psych/visitors/yaml_tree.rb", "lib/psych/y.rb", "lib/psych_jars.rb", "psych.gemspec"]
|
21
|
+
|
22
|
+
s.rdoc_options = ["--main", "README.md"]
|
23
|
+
s.extra_rdoc_files = ["CHANGELOG.rdoc", "README.md"]
|
22
24
|
|
23
25
|
s.required_ruby_version = Gem::Requirement.new(">= 1.9.2")
|
24
26
|
s.rubygems_version = "2.5.1"
|
25
27
|
s.required_rubygems_version = Gem::Requirement.new(">= 0")
|
26
28
|
|
27
|
-
s.add_development_dependency
|
28
|
-
s.add_development_dependency
|
29
|
+
s.add_development_dependency 'rake-compiler', ">= 0.4.1"
|
30
|
+
s.add_development_dependency 'minitest', "~> 5.0"
|
29
31
|
|
30
32
|
if RUBY_PLATFORM =~ /java/
|
31
33
|
require 'psych/versions'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: psych
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aaron Patterson
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-11-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake-compiler
|
@@ -51,14 +51,14 @@ extensions:
|
|
51
51
|
- ext/psych/extconf.rb
|
52
52
|
extra_rdoc_files:
|
53
53
|
- CHANGELOG.rdoc
|
54
|
-
- README.
|
54
|
+
- README.md
|
55
55
|
files:
|
56
56
|
- ".gitignore"
|
57
57
|
- ".travis.yml"
|
58
58
|
- CHANGELOG.rdoc
|
59
59
|
- Gemfile
|
60
60
|
- Mavenfile
|
61
|
-
- README.
|
61
|
+
- README.md
|
62
62
|
- Rakefile
|
63
63
|
- bin/console
|
64
64
|
- bin/setup
|
@@ -132,14 +132,14 @@ files:
|
|
132
132
|
- lib/psych/y.rb
|
133
133
|
- lib/psych_jars.rb
|
134
134
|
- psych.gemspec
|
135
|
-
homepage:
|
135
|
+
homepage: https://github.com/ruby/psych
|
136
136
|
licenses:
|
137
137
|
- MIT
|
138
138
|
metadata: {}
|
139
139
|
post_install_message:
|
140
140
|
rdoc_options:
|
141
141
|
- "--main"
|
142
|
-
- README.
|
142
|
+
- README.md
|
143
143
|
require_paths:
|
144
144
|
- lib
|
145
145
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -154,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
154
154
|
version: '0'
|
155
155
|
requirements: []
|
156
156
|
rubyforge_project:
|
157
|
-
rubygems_version: 2.6.
|
157
|
+
rubygems_version: 2.6.8
|
158
158
|
signing_key:
|
159
159
|
specification_version: 4
|
160
160
|
summary: Psych is a YAML parser and emitter
|
data/README.rdoc
DELETED
@@ -1,71 +0,0 @@
|
|
1
|
-
= Psych
|
2
|
-
|
3
|
-
* http://github.com/tenderlove/psych
|
4
|
-
|
5
|
-
== Description
|
6
|
-
|
7
|
-
Psych is a YAML parser and emitter. Psych leverages libyaml[http://pyyaml.org/wiki/LibYAML]
|
8
|
-
for its YAML parsing and emitting capabilities. In addition to wrapping
|
9
|
-
libyaml, Psych also knows how to serialize and de-serialize most Ruby objects
|
10
|
-
to and from the YAML format.
|
11
|
-
|
12
|
-
== Examples
|
13
|
-
|
14
|
-
# Load YAML in to a Ruby object
|
15
|
-
Psych.load('--- foo') # => 'foo'
|
16
|
-
|
17
|
-
# Emit YAML from a Ruby object
|
18
|
-
Psych.dump("foo") # => "--- foo\n...\n"
|
19
|
-
|
20
|
-
== Dependencies
|
21
|
-
|
22
|
-
* libyaml
|
23
|
-
|
24
|
-
== Installation
|
25
|
-
|
26
|
-
Psych has been included with MRI since 1.9.2,
|
27
|
-
and is the default YAML parser in 1.9.3.
|
28
|
-
|
29
|
-
If you want a newer gem release of Psych, you can use rubygems:
|
30
|
-
|
31
|
-
gem install psych
|
32
|
-
|
33
|
-
In order to use the gem release in your app,
|
34
|
-
and not the stdlib version, you'll need the following:
|
35
|
-
|
36
|
-
gem 'psych'
|
37
|
-
require 'psych'
|
38
|
-
|
39
|
-
Or if you use Bundler add this to your +Gemfile+:
|
40
|
-
|
41
|
-
gem 'psych'
|
42
|
-
|
43
|
-
JRuby ships with a pure Java implementation of Psych.
|
44
|
-
|
45
|
-
If you're on Rubinius, Psych is available in 1.9 mode, please refer to the
|
46
|
-
Language Modes section of the {Rubinius
|
47
|
-
README}[https://github.com/rubinius/rubinius#readme] for more information on
|
48
|
-
building and 1.9 mode.
|
49
|
-
|
50
|
-
== License
|
51
|
-
|
52
|
-
Copyright 2009 Aaron Patterson, et al.
|
53
|
-
|
54
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
55
|
-
a copy of this software and associated documentation files (the
|
56
|
-
'Software'), to deal in the Software without restriction, including
|
57
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
58
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
59
|
-
permit persons to whom the Software is furnished to do so, subject to
|
60
|
-
the following conditions:
|
61
|
-
|
62
|
-
The above copyright notice and this permission notice shall be
|
63
|
-
included in all copies or substantial portions of the Software.
|
64
|
-
|
65
|
-
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
66
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
67
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
68
|
-
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
69
|
-
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
70
|
-
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
71
|
-
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|