psych 3.0.0.beta2-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +16 -0
  3. data/.travis.yml +20 -0
  4. data/CHANGELOG.rdoc +576 -0
  5. data/Gemfile +3 -0
  6. data/Mavenfile +7 -0
  7. data/README.md +73 -0
  8. data/Rakefile +46 -0
  9. data/bin/console +7 -0
  10. data/bin/setup +6 -0
  11. data/ext/psych/.gitignore +11 -0
  12. data/ext/psych/depend +3 -0
  13. data/ext/psych/extconf.rb +39 -0
  14. data/ext/psych/psych.c +34 -0
  15. data/ext/psych/psych.h +17 -0
  16. data/ext/psych/psych_emitter.c +554 -0
  17. data/ext/psych/psych_emitter.h +8 -0
  18. data/ext/psych/psych_parser.c +568 -0
  19. data/ext/psych/psych_parser.h +6 -0
  20. data/ext/psych/psych_to_ruby.c +39 -0
  21. data/ext/psych/psych_to_ruby.h +8 -0
  22. data/ext/psych/psych_yaml_tree.c +24 -0
  23. data/ext/psych/psych_yaml_tree.h +8 -0
  24. data/ext/psych/yaml/LICENSE +19 -0
  25. data/ext/psych/yaml/api.c +1392 -0
  26. data/ext/psych/yaml/config.h +10 -0
  27. data/ext/psych/yaml/dumper.c +394 -0
  28. data/ext/psych/yaml/emitter.c +2329 -0
  29. data/ext/psych/yaml/loader.c +444 -0
  30. data/ext/psych/yaml/parser.c +1374 -0
  31. data/ext/psych/yaml/reader.c +469 -0
  32. data/ext/psych/yaml/scanner.c +3576 -0
  33. data/ext/psych/yaml/writer.c +141 -0
  34. data/ext/psych/yaml/yaml.h +1971 -0
  35. data/ext/psych/yaml/yaml_private.h +662 -0
  36. data/lib/2.2/psych.so +0 -0
  37. data/lib/2.3/psych.so +0 -0
  38. data/lib/2.4/psych.so +0 -0
  39. data/lib/psych/class_loader.rb +102 -0
  40. data/lib/psych/coder.rb +95 -0
  41. data/lib/psych/core_ext.rb +19 -0
  42. data/lib/psych/exception.rb +14 -0
  43. data/lib/psych/handler.rb +250 -0
  44. data/lib/psych/handlers/document_stream.rb +23 -0
  45. data/lib/psych/handlers/recorder.rb +40 -0
  46. data/lib/psych/json/ruby_events.rb +20 -0
  47. data/lib/psych/json/stream.rb +17 -0
  48. data/lib/psych/json/tree_builder.rb +13 -0
  49. data/lib/psych/json/yaml_events.rb +30 -0
  50. data/lib/psych/nodes/alias.rb +19 -0
  51. data/lib/psych/nodes/document.rb +61 -0
  52. data/lib/psych/nodes/mapping.rb +57 -0
  53. data/lib/psych/nodes/node.rb +56 -0
  54. data/lib/psych/nodes/scalar.rb +68 -0
  55. data/lib/psych/nodes/sequence.rb +82 -0
  56. data/lib/psych/nodes/stream.rb +38 -0
  57. data/lib/psych/nodes.rb +78 -0
  58. data/lib/psych/omap.rb +5 -0
  59. data/lib/psych/parser.rb +52 -0
  60. data/lib/psych/scalar_scanner.rb +149 -0
  61. data/lib/psych/set.rb +5 -0
  62. data/lib/psych/stream.rb +38 -0
  63. data/lib/psych/streaming.rb +28 -0
  64. data/lib/psych/syntax_error.rb +22 -0
  65. data/lib/psych/tree_builder.rb +97 -0
  66. data/lib/psych/versions.rb +9 -0
  67. data/lib/psych/visitors/depth_first.rb +27 -0
  68. data/lib/psych/visitors/emitter.rb +52 -0
  69. data/lib/psych/visitors/json_tree.rb +25 -0
  70. data/lib/psych/visitors/to_ruby.rb +401 -0
  71. data/lib/psych/visitors/visitor.rb +20 -0
  72. data/lib/psych/visitors/yaml_tree.rb +551 -0
  73. data/lib/psych/visitors.rb +7 -0
  74. data/lib/psych/y.rb +10 -0
  75. data/lib/psych.rb +511 -0
  76. data/psych.gemspec +64 -0
  77. metadata +175 -0
@@ -0,0 +1,141 @@
1
+
2
+ #include "yaml_private.h"
3
+
4
+ /*
5
+ * Declarations.
6
+ */
7
+
8
+ static int
9
+ yaml_emitter_set_writer_error(yaml_emitter_t *emitter, const char *problem);
10
+
11
+ YAML_DECLARE(int)
12
+ yaml_emitter_flush(yaml_emitter_t *emitter);
13
+
14
+ /*
15
+ * Set the writer error and return 0.
16
+ */
17
+
18
+ static int
19
+ yaml_emitter_set_writer_error(yaml_emitter_t *emitter, const char *problem)
20
+ {
21
+ emitter->error = YAML_WRITER_ERROR;
22
+ emitter->problem = problem;
23
+
24
+ return 0;
25
+ }
26
+
27
+ /*
28
+ * Flush the output buffer.
29
+ */
30
+
31
+ YAML_DECLARE(int)
32
+ yaml_emitter_flush(yaml_emitter_t *emitter)
33
+ {
34
+ int low, high;
35
+
36
+ assert(emitter); /* Non-NULL emitter object is expected. */
37
+ assert(emitter->write_handler); /* Write handler must be set. */
38
+ assert(emitter->encoding); /* Output encoding must be set. */
39
+
40
+ emitter->buffer.last = emitter->buffer.pointer;
41
+ emitter->buffer.pointer = emitter->buffer.start;
42
+
43
+ /* Check if the buffer is empty. */
44
+
45
+ if (emitter->buffer.start == emitter->buffer.last) {
46
+ return 1;
47
+ }
48
+
49
+ /* If the output encoding is UTF-8, we don't need to recode the buffer. */
50
+
51
+ if (emitter->encoding == YAML_UTF8_ENCODING)
52
+ {
53
+ if (emitter->write_handler(emitter->write_handler_data,
54
+ emitter->buffer.start,
55
+ emitter->buffer.last - emitter->buffer.start)) {
56
+ emitter->buffer.last = emitter->buffer.start;
57
+ emitter->buffer.pointer = emitter->buffer.start;
58
+ return 1;
59
+ }
60
+ else {
61
+ return yaml_emitter_set_writer_error(emitter, "write error");
62
+ }
63
+ }
64
+
65
+ /* Recode the buffer into the raw buffer. */
66
+
67
+ low = (emitter->encoding == YAML_UTF16LE_ENCODING ? 0 : 1);
68
+ high = (emitter->encoding == YAML_UTF16LE_ENCODING ? 1 : 0);
69
+
70
+ while (emitter->buffer.pointer != emitter->buffer.last)
71
+ {
72
+ unsigned char octet;
73
+ unsigned int width;
74
+ unsigned int value;
75
+ size_t k;
76
+
77
+ /*
78
+ * See the "reader.c" code for more details on UTF-8 encoding. Note
79
+ * that we assume that the buffer contains a valid UTF-8 sequence.
80
+ */
81
+
82
+ /* Read the next UTF-8 character. */
83
+
84
+ octet = emitter->buffer.pointer[0];
85
+
86
+ width = (octet & 0x80) == 0x00 ? 1 :
87
+ (octet & 0xE0) == 0xC0 ? 2 :
88
+ (octet & 0xF0) == 0xE0 ? 3 :
89
+ (octet & 0xF8) == 0xF0 ? 4 : 0;
90
+
91
+ value = (octet & 0x80) == 0x00 ? octet & 0x7F :
92
+ (octet & 0xE0) == 0xC0 ? octet & 0x1F :
93
+ (octet & 0xF0) == 0xE0 ? octet & 0x0F :
94
+ (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0;
95
+
96
+ for (k = 1; k < width; k ++) {
97
+ octet = emitter->buffer.pointer[k];
98
+ value = (value << 6) + (octet & 0x3F);
99
+ }
100
+
101
+ emitter->buffer.pointer += width;
102
+
103
+ /* Write the character. */
104
+
105
+ if (value < 0x10000)
106
+ {
107
+ emitter->raw_buffer.last[high] = value >> 8;
108
+ emitter->raw_buffer.last[low] = value & 0xFF;
109
+
110
+ emitter->raw_buffer.last += 2;
111
+ }
112
+ else
113
+ {
114
+ /* Write the character using a surrogate pair (check "reader.c"). */
115
+
116
+ value -= 0x10000;
117
+ emitter->raw_buffer.last[high] = 0xD8 + (value >> 18);
118
+ emitter->raw_buffer.last[low] = (value >> 10) & 0xFF;
119
+ emitter->raw_buffer.last[high+2] = 0xDC + ((value >> 8) & 0xFF);
120
+ emitter->raw_buffer.last[low+2] = value & 0xFF;
121
+
122
+ emitter->raw_buffer.last += 4;
123
+ }
124
+ }
125
+
126
+ /* Write the raw buffer. */
127
+
128
+ if (emitter->write_handler(emitter->write_handler_data,
129
+ emitter->raw_buffer.start,
130
+ emitter->raw_buffer.last - emitter->raw_buffer.start)) {
131
+ emitter->buffer.last = emitter->buffer.start;
132
+ emitter->buffer.pointer = emitter->buffer.start;
133
+ emitter->raw_buffer.last = emitter->raw_buffer.start;
134
+ emitter->raw_buffer.pointer = emitter->raw_buffer.start;
135
+ return 1;
136
+ }
137
+ else {
138
+ return yaml_emitter_set_writer_error(emitter, "write error");
139
+ }
140
+ }
141
+