cybrid_api_id_ruby 0.122.33 → 0.122.36

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +3 -3
  3. data/README.md +5 -5
  4. data/cybrid_api_id_ruby.gemspec +1 -1
  5. data/lib/cybrid_api_id_ruby/api/bank_applications_idp_api.rb +1 -1
  6. data/lib/cybrid_api_id_ruby/api/customer_tokens_idp_api.rb +1 -1
  7. data/lib/cybrid_api_id_ruby/api/organization_applications_idp_api.rb +1 -1
  8. data/lib/cybrid_api_id_ruby/api/users_idp_api.rb +1 -1
  9. data/lib/cybrid_api_id_ruby/api_client.rb +1 -1
  10. data/lib/cybrid_api_id_ruby/api_error.rb +1 -1
  11. data/lib/cybrid_api_id_ruby/configuration.rb +1 -1
  12. data/lib/cybrid_api_id_ruby/models/application_idp_model.rb +1 -1
  13. data/lib/cybrid_api_id_ruby/models/application_list_idp_model.rb +1 -1
  14. data/lib/cybrid_api_id_ruby/models/application_with_secret_all_of_idp_model.rb +1 -1
  15. data/lib/cybrid_api_id_ruby/models/application_with_secret_idp_model.rb +1 -1
  16. data/lib/cybrid_api_id_ruby/models/customer_token_idp_model.rb +1 -1
  17. data/lib/cybrid_api_id_ruby/models/error_response_idp_model.rb +1 -1
  18. data/lib/cybrid_api_id_ruby/models/post_bank_application_idp_model.rb +1 -1
  19. data/lib/cybrid_api_id_ruby/models/post_customer_token_idp_model.rb +1 -1
  20. data/lib/cybrid_api_id_ruby/models/post_organization_application_idp_model.rb +1 -1
  21. data/lib/cybrid_api_id_ruby/models/post_user_idp_model.rb +1 -1
  22. data/lib/cybrid_api_id_ruby/models/user_idp_model.rb +1 -1
  23. data/lib/cybrid_api_id_ruby/models/user_list_idp_model.rb +1 -1
  24. data/lib/cybrid_api_id_ruby/version.rb +2 -2
  25. data/lib/cybrid_api_id_ruby.rb +1 -1
  26. data/spec/api/bank_applications_idp_api_spec.rb +1 -1
  27. data/spec/api/customer_tokens_idp_api_spec.rb +1 -1
  28. data/spec/api/organization_applications_idp_api_spec.rb +1 -1
  29. data/spec/api/users_idp_api_spec.rb +1 -1
  30. data/spec/api_client_spec.rb +1 -1
  31. data/spec/configuration_spec.rb +1 -1
  32. data/spec/models/application_idp_model_spec.rb +1 -1
  33. data/spec/models/application_list_idp_model_spec.rb +1 -1
  34. data/spec/models/application_with_secret_all_of_idp_model_spec.rb +1 -1
  35. data/spec/models/application_with_secret_idp_model_spec.rb +1 -1
  36. data/spec/models/customer_token_idp_model_spec.rb +1 -1
  37. data/spec/models/error_response_idp_model_spec.rb +1 -1
  38. data/spec/models/post_bank_application_idp_model_spec.rb +1 -1
  39. data/spec/models/post_customer_token_idp_model_spec.rb +1 -1
  40. data/spec/models/post_organization_application_idp_model_spec.rb +1 -1
  41. data/spec/models/post_user_idp_model_spec.rb +1 -1
  42. data/spec/models/user_idp_model_spec.rb +1 -1
  43. data/spec/models/user_list_idp_model_spec.rb +1 -1
  44. data/spec/spec_helper.rb +1 -1
  45. data/vendor/bundle/ruby/3.3.0/cache/psych-5.2.0.gem +0 -0
  46. data/vendor/bundle/ruby/3.3.0/cache/stringio-3.1.2.gem +0 -0
  47. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/byebug-11.1.3/gem_make.out +5 -5
  48. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/jaro_winkler-1.5.6/gem_make.out +5 -5
  49. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/{psych-5.1.2 → psych-5.2.0}/gem_make.out +18 -18
  50. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/{psych-5.1.2 → psych-5.2.0}/psych.so +0 -0
  51. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/racc-1.8.1/gem_make.out +5 -5
  52. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/{stringio-3.1.1 → stringio-3.1.2}/gem_make.out +18 -18
  53. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/stringio-3.1.2/stringio.so +0 -0
  54. data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/ext/psych/psych.c +1 -1
  55. data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/ext/psych/psych_emitter.c +154 -120
  56. data/vendor/bundle/ruby/3.3.0/gems/psych-5.2.0/ext/psych/psych_parser.c +565 -0
  57. data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/nodes/node.rb +1 -1
  58. data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/scalar_scanner.rb +10 -9
  59. data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/versions.rb +1 -1
  60. data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/visitors/to_ruby.rb +1 -1
  61. data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/visitors/yaml_tree.rb +7 -10
  62. data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych.rb +19 -3
  63. data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych.so +0 -0
  64. data/vendor/bundle/ruby/3.3.0/gems/{stringio-3.1.1 → stringio-3.1.2}/NEWS.md +19 -0
  65. data/vendor/bundle/ruby/3.3.0/gems/{stringio-3.1.1 → stringio-3.1.2}/ext/stringio/stringio.c +23 -13
  66. data/vendor/bundle/ruby/3.3.0/gems/stringio-3.1.2/lib/stringio.so +0 -0
  67. data/vendor/bundle/ruby/3.3.0/specifications/{psych-5.1.2.gemspec → psych-5.2.0.gemspec} +5 -5
  68. data/vendor/bundle/ruby/3.3.0/specifications/{stringio-3.1.1.gemspec → stringio-3.1.2.gemspec} +4 -4
  69. metadata +79 -79
  70. data/vendor/bundle/ruby/3.3.0/cache/psych-5.1.2.gem +0 -0
  71. data/vendor/bundle/ruby/3.3.0/cache/stringio-3.1.1.gem +0 -0
  72. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/stringio-3.1.1/stringio.so +0 -0
  73. data/vendor/bundle/ruby/3.3.0/gems/psych-5.1.2/ext/psych/psych_parser.c +0 -565
  74. data/vendor/bundle/ruby/3.3.0/gems/stringio-3.1.1/lib/stringio.so +0 -0
  75. /data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/{psych-5.1.2 → psych-5.2.0}/gem.build_complete +0 -0
  76. /data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/{psych-5.1.2 → psych-5.2.0}/mkmf.log +0 -0
  77. /data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/{stringio-3.1.1 → stringio-3.1.2}/gem.build_complete +0 -0
  78. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/CONTRIBUTING.md +0 -0
  79. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/LICENSE +0 -0
  80. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/README.md +0 -0
  81. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/ext/psych/Makefile +0 -0
  82. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/ext/psych/depend +0 -0
  83. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/ext/psych/extconf.rb +0 -0
  84. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/ext/psych/psych.h +0 -0
  85. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/ext/psych/psych_emitter.h +0 -0
  86. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/ext/psych/psych_parser.h +0 -0
  87. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/ext/psych/psych_to_ruby.c +0 -0
  88. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/ext/psych/psych_to_ruby.h +0 -0
  89. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/ext/psych/psych_yaml_tree.c +0 -0
  90. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/ext/psych/psych_yaml_tree.h +0 -0
  91. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/class_loader.rb +0 -0
  92. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/coder.rb +0 -0
  93. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/core_ext.rb +0 -0
  94. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/exception.rb +0 -0
  95. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/handler.rb +0 -0
  96. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/handlers/document_stream.rb +0 -0
  97. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/handlers/recorder.rb +0 -0
  98. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/json/ruby_events.rb +0 -0
  99. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/json/stream.rb +0 -0
  100. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/json/tree_builder.rb +0 -0
  101. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/json/yaml_events.rb +0 -0
  102. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/nodes/alias.rb +0 -0
  103. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/nodes/document.rb +0 -0
  104. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/nodes/mapping.rb +0 -0
  105. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/nodes/scalar.rb +0 -0
  106. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/nodes/sequence.rb +0 -0
  107. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/nodes/stream.rb +0 -0
  108. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/nodes.rb +0 -0
  109. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/omap.rb +0 -0
  110. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/parser.rb +0 -0
  111. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/set.rb +0 -0
  112. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/stream.rb +0 -0
  113. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/streaming.rb +0 -0
  114. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/syntax_error.rb +0 -0
  115. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/tree_builder.rb +0 -0
  116. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/visitors/depth_first.rb +0 -0
  117. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/visitors/emitter.rb +0 -0
  118. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/visitors/json_tree.rb +0 -0
  119. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/visitors/visitor.rb +0 -0
  120. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/visitors.rb +0 -0
  121. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.1.2 → psych-5.2.0}/lib/psych/y.rb +0 -0
  122. /data/vendor/bundle/ruby/3.3.0/gems/{stringio-3.1.1 → stringio-3.1.2}/.document +0 -0
  123. /data/vendor/bundle/ruby/3.3.0/gems/{stringio-3.1.1 → stringio-3.1.2}/.rdoc_options +0 -0
  124. /data/vendor/bundle/ruby/3.3.0/gems/{stringio-3.1.1 → stringio-3.1.2}/COPYING +0 -0
  125. /data/vendor/bundle/ruby/3.3.0/gems/{stringio-3.1.1 → stringio-3.1.2}/LICENSE.txt +0 -0
  126. /data/vendor/bundle/ruby/3.3.0/gems/{stringio-3.1.1 → stringio-3.1.2}/README.md +0 -0
  127. /data/vendor/bundle/ruby/3.3.0/gems/{stringio-3.1.1 → stringio-3.1.2}/docs/io.rb +0 -0
  128. /data/vendor/bundle/ruby/3.3.0/gems/{stringio-3.1.1 → stringio-3.1.2}/ext/stringio/.document +0 -0
  129. /data/vendor/bundle/ruby/3.3.0/gems/{stringio-3.1.1 → stringio-3.1.2}/ext/stringio/Makefile +0 -0
  130. /data/vendor/bundle/ruby/3.3.0/gems/{stringio-3.1.1 → stringio-3.1.2}/ext/stringio/extconf.rb +0 -0
@@ -1,565 +0,0 @@
1
- #include <psych.h>
2
-
3
- VALUE cPsychParser;
4
-
5
- static ID id_read;
6
- static ID id_path;
7
- static ID id_empty;
8
- static ID id_start_stream;
9
- static ID id_end_stream;
10
- static ID id_start_document;
11
- static ID id_end_document;
12
- static ID id_alias;
13
- static ID id_scalar;
14
- static ID id_start_sequence;
15
- static ID id_end_sequence;
16
- static ID id_start_mapping;
17
- static ID id_end_mapping;
18
- static ID id_event_location;
19
-
20
- #define PSYCH_TRANSCODE(_str, _yaml_enc, _internal_enc) \
21
- do { \
22
- rb_enc_associate_index((_str), (_yaml_enc)); \
23
- if(_internal_enc) \
24
- (_str) = rb_str_export_to_enc((_str), (_internal_enc)); \
25
- } while (0)
26
-
27
- static int io_reader(void * data, unsigned char *buf, size_t size, size_t *read)
28
- {
29
- VALUE io = (VALUE)data;
30
- VALUE string = rb_funcall(io, id_read, 1, SIZET2NUM(size));
31
-
32
- *read = 0;
33
-
34
- if(! NIL_P(string)) {
35
- void * str = (void *)StringValuePtr(string);
36
- *read = (size_t)RSTRING_LEN(string);
37
- memcpy(buf, str, *read);
38
- }
39
-
40
- return 1;
41
- }
42
-
43
- static void dealloc(void * ptr)
44
- {
45
- yaml_parser_t * parser;
46
-
47
- parser = (yaml_parser_t *)ptr;
48
- yaml_parser_delete(parser);
49
- xfree(parser);
50
- }
51
-
52
- #if 0
53
- static size_t memsize(const void *ptr)
54
- {
55
- const yaml_parser_t *parser = ptr;
56
- /* TODO: calculate parser's size */
57
- return 0;
58
- }
59
- #endif
60
-
61
- static const rb_data_type_t psych_parser_type = {
62
- "Psych/parser",
63
- {0, dealloc, 0,},
64
- 0, 0,
65
- #ifdef RUBY_TYPED_FREE_IMMEDIATELY
66
- RUBY_TYPED_FREE_IMMEDIATELY,
67
- #endif
68
- };
69
-
70
- static VALUE allocate(VALUE klass)
71
- {
72
- yaml_parser_t * parser;
73
- VALUE obj = TypedData_Make_Struct(klass, yaml_parser_t, &psych_parser_type, parser);
74
-
75
- yaml_parser_initialize(parser);
76
-
77
- return obj;
78
- }
79
-
80
- static VALUE make_exception(yaml_parser_t * parser, VALUE path)
81
- {
82
- if (parser->error == YAML_MEMORY_ERROR) {
83
- return rb_eNoMemError;
84
- } else {
85
- size_t line, column;
86
- VALUE ePsychSyntaxError;
87
-
88
- line = parser->context_mark.line + 1;
89
- column = parser->context_mark.column + 1;
90
-
91
- ePsychSyntaxError = rb_const_get(mPsych, rb_intern("SyntaxError"));
92
-
93
- return rb_funcall(ePsychSyntaxError, rb_intern("new"), 6,
94
- path,
95
- SIZET2NUM(line),
96
- SIZET2NUM(column),
97
- SIZET2NUM(parser->problem_offset),
98
- parser->problem ? rb_usascii_str_new2(parser->problem) : Qnil,
99
- parser->context ? rb_usascii_str_new2(parser->context) : Qnil);
100
- }
101
- }
102
-
103
- static VALUE transcode_string(VALUE src, int * parser_encoding)
104
- {
105
- int utf8 = rb_utf8_encindex();
106
- int utf16le = rb_enc_find_index("UTF-16LE");
107
- int utf16be = rb_enc_find_index("UTF-16BE");
108
- int source_encoding = rb_enc_get_index(src);
109
-
110
- if (source_encoding == utf8) {
111
- *parser_encoding = YAML_UTF8_ENCODING;
112
- return src;
113
- }
114
-
115
- if (source_encoding == utf16le) {
116
- *parser_encoding = YAML_UTF16LE_ENCODING;
117
- return src;
118
- }
119
-
120
- if (source_encoding == utf16be) {
121
- *parser_encoding = YAML_UTF16BE_ENCODING;
122
- return src;
123
- }
124
-
125
- src = rb_str_export_to_enc(src, rb_utf8_encoding());
126
- RB_GC_GUARD(src);
127
-
128
- *parser_encoding = YAML_UTF8_ENCODING;
129
- return src;
130
- }
131
-
132
- static VALUE transcode_io(VALUE src, int * parser_encoding)
133
- {
134
- VALUE io_external_encoding;
135
- int io_external_enc_index;
136
-
137
- io_external_encoding = rb_funcall(src, rb_intern("external_encoding"), 0);
138
-
139
- /* if no encoding is returned, assume ascii8bit. */
140
- if (NIL_P(io_external_encoding)) {
141
- io_external_enc_index = rb_ascii8bit_encindex();
142
- } else {
143
- io_external_enc_index = rb_to_encoding_index(io_external_encoding);
144
- }
145
-
146
- /* Treat US-ASCII as utf_8 */
147
- if (io_external_enc_index == rb_usascii_encindex()) {
148
- *parser_encoding = YAML_UTF8_ENCODING;
149
- return src;
150
- }
151
-
152
- if (io_external_enc_index == rb_utf8_encindex()) {
153
- *parser_encoding = YAML_UTF8_ENCODING;
154
- return src;
155
- }
156
-
157
- if (io_external_enc_index == rb_enc_find_index("UTF-16LE")) {
158
- *parser_encoding = YAML_UTF16LE_ENCODING;
159
- return src;
160
- }
161
-
162
- if (io_external_enc_index == rb_enc_find_index("UTF-16BE")) {
163
- *parser_encoding = YAML_UTF16BE_ENCODING;
164
- return src;
165
- }
166
-
167
- /* Just guess on ASCII-8BIT */
168
- if (io_external_enc_index == rb_ascii8bit_encindex()) {
169
- *parser_encoding = YAML_ANY_ENCODING;
170
- return src;
171
- }
172
-
173
- /* If the external encoding is something we don't know how to handle,
174
- * fall back to YAML_ANY_ENCODING. */
175
- *parser_encoding = YAML_ANY_ENCODING;
176
-
177
- return src;
178
- }
179
-
180
- static VALUE protected_start_stream(VALUE pointer)
181
- {
182
- VALUE *args = (VALUE *)pointer;
183
- return rb_funcall(args[0], id_start_stream, 1, args[1]);
184
- }
185
-
186
- static VALUE protected_start_document(VALUE pointer)
187
- {
188
- VALUE *args = (VALUE *)pointer;
189
- return rb_funcall3(args[0], id_start_document, 3, args + 1);
190
- }
191
-
192
- static VALUE protected_end_document(VALUE pointer)
193
- {
194
- VALUE *args = (VALUE *)pointer;
195
- return rb_funcall(args[0], id_end_document, 1, args[1]);
196
- }
197
-
198
- static VALUE protected_alias(VALUE pointer)
199
- {
200
- VALUE *args = (VALUE *)pointer;
201
- return rb_funcall(args[0], id_alias, 1, args[1]);
202
- }
203
-
204
- static VALUE protected_scalar(VALUE pointer)
205
- {
206
- VALUE *args = (VALUE *)pointer;
207
- return rb_funcall3(args[0], id_scalar, 6, args + 1);
208
- }
209
-
210
- static VALUE protected_start_sequence(VALUE pointer)
211
- {
212
- VALUE *args = (VALUE *)pointer;
213
- return rb_funcall3(args[0], id_start_sequence, 4, args + 1);
214
- }
215
-
216
- static VALUE protected_end_sequence(VALUE handler)
217
- {
218
- return rb_funcall(handler, id_end_sequence, 0);
219
- }
220
-
221
- static VALUE protected_start_mapping(VALUE pointer)
222
- {
223
- VALUE *args = (VALUE *)pointer;
224
- return rb_funcall3(args[0], id_start_mapping, 4, args + 1);
225
- }
226
-
227
- static VALUE protected_end_mapping(VALUE handler)
228
- {
229
- return rb_funcall(handler, id_end_mapping, 0);
230
- }
231
-
232
- static VALUE protected_empty(VALUE handler)
233
- {
234
- return rb_funcall(handler, id_empty, 0);
235
- }
236
-
237
- static VALUE protected_end_stream(VALUE handler)
238
- {
239
- return rb_funcall(handler, id_end_stream, 0);
240
- }
241
-
242
- static VALUE protected_event_location(VALUE pointer)
243
- {
244
- VALUE *args = (VALUE *)pointer;
245
- return rb_funcall3(args[0], id_event_location, 4, args + 1);
246
- }
247
-
248
- static VALUE parse(VALUE self, VALUE handler, VALUE yaml, VALUE path)
249
- {
250
- yaml_parser_t * parser;
251
- yaml_event_t event;
252
- int done = 0;
253
- int state = 0;
254
- int parser_encoding = YAML_ANY_ENCODING;
255
- int encoding = rb_utf8_encindex();
256
- rb_encoding * internal_enc = rb_default_internal_encoding();
257
-
258
- TypedData_Get_Struct(self, yaml_parser_t, &psych_parser_type, parser);
259
-
260
- yaml_parser_delete(parser);
261
- yaml_parser_initialize(parser);
262
-
263
- if (rb_respond_to(yaml, id_read)) {
264
- yaml = transcode_io(yaml, &parser_encoding);
265
- yaml_parser_set_encoding(parser, parser_encoding);
266
- yaml_parser_set_input(parser, io_reader, (void *)yaml);
267
- } else {
268
- StringValue(yaml);
269
- yaml = transcode_string(yaml, &parser_encoding);
270
- yaml_parser_set_encoding(parser, parser_encoding);
271
- yaml_parser_set_input_string(
272
- parser,
273
- (const unsigned char *)RSTRING_PTR(yaml),
274
- (size_t)RSTRING_LEN(yaml)
275
- );
276
- }
277
-
278
- while(!done) {
279
- VALUE event_args[5];
280
- VALUE start_line, start_column, end_line, end_column;
281
-
282
- if(parser->error || !yaml_parser_parse(parser, &event)) {
283
- VALUE exception;
284
-
285
- exception = make_exception(parser, path);
286
- yaml_parser_delete(parser);
287
- yaml_parser_initialize(parser);
288
-
289
- rb_exc_raise(exception);
290
- }
291
-
292
- start_line = SIZET2NUM(event.start_mark.line);
293
- start_column = SIZET2NUM(event.start_mark.column);
294
- end_line = SIZET2NUM(event.end_mark.line);
295
- end_column = SIZET2NUM(event.end_mark.column);
296
-
297
- event_args[0] = handler;
298
- event_args[1] = start_line;
299
- event_args[2] = start_column;
300
- event_args[3] = end_line;
301
- event_args[4] = end_column;
302
- rb_protect(protected_event_location, (VALUE)event_args, &state);
303
-
304
- switch(event.type) {
305
- case YAML_STREAM_START_EVENT:
306
- {
307
- VALUE args[2];
308
-
309
- args[0] = handler;
310
- args[1] = INT2NUM(event.data.stream_start.encoding);
311
- rb_protect(protected_start_stream, (VALUE)args, &state);
312
- }
313
- break;
314
- case YAML_DOCUMENT_START_EVENT:
315
- {
316
- VALUE args[4];
317
- /* Get a list of tag directives (if any) */
318
- VALUE tag_directives = rb_ary_new();
319
- /* Grab the document version */
320
- VALUE version = event.data.document_start.version_directive ?
321
- rb_ary_new3(
322
- (long)2,
323
- INT2NUM(event.data.document_start.version_directive->major),
324
- INT2NUM(event.data.document_start.version_directive->minor)
325
- ) : rb_ary_new();
326
-
327
- if(event.data.document_start.tag_directives.start) {
328
- yaml_tag_directive_t *start =
329
- event.data.document_start.tag_directives.start;
330
- yaml_tag_directive_t *end =
331
- event.data.document_start.tag_directives.end;
332
- for(; start != end; start++) {
333
- VALUE handle = Qnil;
334
- VALUE prefix = Qnil;
335
- if(start->handle) {
336
- handle = rb_str_new2((const char *)start->handle);
337
- PSYCH_TRANSCODE(handle, encoding, internal_enc);
338
- }
339
-
340
- if(start->prefix) {
341
- prefix = rb_str_new2((const char *)start->prefix);
342
- PSYCH_TRANSCODE(prefix, encoding, internal_enc);
343
- }
344
-
345
- rb_ary_push(tag_directives, rb_ary_new3((long)2, handle, prefix));
346
- }
347
- }
348
- args[0] = handler;
349
- args[1] = version;
350
- args[2] = tag_directives;
351
- args[3] = event.data.document_start.implicit == 1 ? Qtrue : Qfalse;
352
- rb_protect(protected_start_document, (VALUE)args, &state);
353
- }
354
- break;
355
- case YAML_DOCUMENT_END_EVENT:
356
- {
357
- VALUE args[2];
358
-
359
- args[0] = handler;
360
- args[1] = event.data.document_end.implicit == 1 ? Qtrue : Qfalse;
361
- rb_protect(protected_end_document, (VALUE)args, &state);
362
- }
363
- break;
364
- case YAML_ALIAS_EVENT:
365
- {
366
- VALUE args[2];
367
- VALUE alias = Qnil;
368
- if(event.data.alias.anchor) {
369
- alias = rb_str_new2((const char *)event.data.alias.anchor);
370
- PSYCH_TRANSCODE(alias, encoding, internal_enc);
371
- }
372
-
373
- args[0] = handler;
374
- args[1] = alias;
375
- rb_protect(protected_alias, (VALUE)args, &state);
376
- }
377
- break;
378
- case YAML_SCALAR_EVENT:
379
- {
380
- VALUE args[7];
381
- VALUE anchor = Qnil;
382
- VALUE tag = Qnil;
383
- VALUE plain_implicit, quoted_implicit, style;
384
- VALUE val = rb_str_new(
385
- (const char *)event.data.scalar.value,
386
- (long)event.data.scalar.length
387
- );
388
-
389
- PSYCH_TRANSCODE(val, encoding, internal_enc);
390
-
391
- if(event.data.scalar.anchor) {
392
- anchor = rb_str_new2((const char *)event.data.scalar.anchor);
393
- PSYCH_TRANSCODE(anchor, encoding, internal_enc);
394
- }
395
-
396
- if(event.data.scalar.tag) {
397
- tag = rb_str_new2((const char *)event.data.scalar.tag);
398
- PSYCH_TRANSCODE(tag, encoding, internal_enc);
399
- }
400
-
401
- plain_implicit =
402
- event.data.scalar.plain_implicit == 0 ? Qfalse : Qtrue;
403
-
404
- quoted_implicit =
405
- event.data.scalar.quoted_implicit == 0 ? Qfalse : Qtrue;
406
-
407
- style = INT2NUM(event.data.scalar.style);
408
-
409
- args[0] = handler;
410
- args[1] = val;
411
- args[2] = anchor;
412
- args[3] = tag;
413
- args[4] = plain_implicit;
414
- args[5] = quoted_implicit;
415
- args[6] = style;
416
- rb_protect(protected_scalar, (VALUE)args, &state);
417
- }
418
- break;
419
- case YAML_SEQUENCE_START_EVENT:
420
- {
421
- VALUE args[5];
422
- VALUE anchor = Qnil;
423
- VALUE tag = Qnil;
424
- VALUE implicit, style;
425
- if(event.data.sequence_start.anchor) {
426
- anchor = rb_str_new2((const char *)event.data.sequence_start.anchor);
427
- PSYCH_TRANSCODE(anchor, encoding, internal_enc);
428
- }
429
-
430
- tag = Qnil;
431
- if(event.data.sequence_start.tag) {
432
- tag = rb_str_new2((const char *)event.data.sequence_start.tag);
433
- PSYCH_TRANSCODE(tag, encoding, internal_enc);
434
- }
435
-
436
- implicit =
437
- event.data.sequence_start.implicit == 0 ? Qfalse : Qtrue;
438
-
439
- style = INT2NUM(event.data.sequence_start.style);
440
-
441
- args[0] = handler;
442
- args[1] = anchor;
443
- args[2] = tag;
444
- args[3] = implicit;
445
- args[4] = style;
446
-
447
- rb_protect(protected_start_sequence, (VALUE)args, &state);
448
- }
449
- break;
450
- case YAML_SEQUENCE_END_EVENT:
451
- rb_protect(protected_end_sequence, handler, &state);
452
- break;
453
- case YAML_MAPPING_START_EVENT:
454
- {
455
- VALUE args[5];
456
- VALUE anchor = Qnil;
457
- VALUE tag = Qnil;
458
- VALUE implicit, style;
459
- if(event.data.mapping_start.anchor) {
460
- anchor = rb_str_new2((const char *)event.data.mapping_start.anchor);
461
- PSYCH_TRANSCODE(anchor, encoding, internal_enc);
462
- }
463
-
464
- if(event.data.mapping_start.tag) {
465
- tag = rb_str_new2((const char *)event.data.mapping_start.tag);
466
- PSYCH_TRANSCODE(tag, encoding, internal_enc);
467
- }
468
-
469
- implicit =
470
- event.data.mapping_start.implicit == 0 ? Qfalse : Qtrue;
471
-
472
- style = INT2NUM(event.data.mapping_start.style);
473
-
474
- args[0] = handler;
475
- args[1] = anchor;
476
- args[2] = tag;
477
- args[3] = implicit;
478
- args[4] = style;
479
-
480
- rb_protect(protected_start_mapping, (VALUE)args, &state);
481
- }
482
- break;
483
- case YAML_MAPPING_END_EVENT:
484
- rb_protect(protected_end_mapping, handler, &state);
485
- break;
486
- case YAML_NO_EVENT:
487
- rb_protect(protected_empty, handler, &state);
488
- break;
489
- case YAML_STREAM_END_EVENT:
490
- rb_protect(protected_end_stream, handler, &state);
491
- done = 1;
492
- break;
493
- }
494
- yaml_event_delete(&event);
495
- if (state) rb_jump_tag(state);
496
- }
497
-
498
- return self;
499
- }
500
-
501
- /*
502
- * call-seq:
503
- * parser.mark # => #<Psych::Parser::Mark>
504
- *
505
- * Returns a Psych::Parser::Mark object that contains line, column, and index
506
- * information.
507
- */
508
- static VALUE mark(VALUE self)
509
- {
510
- VALUE mark_klass;
511
- VALUE args[3];
512
- yaml_parser_t * parser;
513
-
514
- TypedData_Get_Struct(self, yaml_parser_t, &psych_parser_type, parser);
515
- mark_klass = rb_const_get_at(cPsychParser, rb_intern("Mark"));
516
- args[0] = SIZET2NUM(parser->mark.index);
517
- args[1] = SIZET2NUM(parser->mark.line);
518
- args[2] = SIZET2NUM(parser->mark.column);
519
-
520
- return rb_class_new_instance(3, args, mark_klass);
521
- }
522
-
523
- void Init_psych_parser(void)
524
- {
525
- #undef rb_intern
526
- #if 0
527
- mPsych = rb_define_module("Psych");
528
- #endif
529
-
530
- cPsychParser = rb_define_class_under(mPsych, "Parser", rb_cObject);
531
- rb_define_alloc_func(cPsychParser, allocate);
532
-
533
- /* Any encoding: Let the parser choose the encoding */
534
- rb_define_const(cPsychParser, "ANY", INT2NUM(YAML_ANY_ENCODING));
535
-
536
- /* UTF-8 Encoding */
537
- rb_define_const(cPsychParser, "UTF8", INT2NUM(YAML_UTF8_ENCODING));
538
-
539
- /* UTF-16-LE Encoding with BOM */
540
- rb_define_const(cPsychParser, "UTF16LE", INT2NUM(YAML_UTF16LE_ENCODING));
541
-
542
- /* UTF-16-BE Encoding with BOM */
543
- rb_define_const(cPsychParser, "UTF16BE", INT2NUM(YAML_UTF16BE_ENCODING));
544
-
545
- rb_require("psych/syntax_error");
546
-
547
- rb_define_private_method(cPsychParser, "_native_parse", parse, 3);
548
- rb_define_method(cPsychParser, "mark", mark, 0);
549
-
550
- id_read = rb_intern("read");
551
- id_path = rb_intern("path");
552
- id_empty = rb_intern("empty");
553
- id_start_stream = rb_intern("start_stream");
554
- id_end_stream = rb_intern("end_stream");
555
- id_start_document = rb_intern("start_document");
556
- id_end_document = rb_intern("end_document");
557
- id_alias = rb_intern("alias");
558
- id_scalar = rb_intern("scalar");
559
- id_start_sequence = rb_intern("start_sequence");
560
- id_end_sequence = rb_intern("end_sequence");
561
- id_start_mapping = rb_intern("start_mapping");
562
- id_end_mapping = rb_intern("end_mapping");
563
- id_event_location = rb_intern("event_location");
564
- }
565
- /* vim: set noet sws=4 sw=4: */