Class: Object::Syck::Parser
Instance Attribute Summary collapse
Instance Method Summary collapse
-
#bufsize ⇒ Object
YAML::Syck::Parser.bufsize => Integer.
-
#bufsize=(size) ⇒ Object
YAML::Syck::Parser.bufsize = Integer.
-
#initialize(*args) ⇒ Object
constructor
YAML::Syck::Parser.initialize( resolver, options ).
-
#load(*args) ⇒ Object
YAML::Syck::Parser.load( IO or String ).
-
#load_documents(*args) ⇒ Object
YAML::Syck::Parser.load_documents( IO or String ) { |doc| }.
-
#set_resolver(resolver) ⇒ Object
YAML::Syck::Parser#set_resolver.
Constructor Details
#initialize(*args) ⇒ Object
YAML::Syck::Parser.initialize( resolver, options )
884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 |
# File 'ext/syck/rubyext.c', line 884
static VALUE
syck_parser_initialize(int argc, VALUE *argv, VALUE self)
{
VALUE options;
if (rb_scan_args(argc, argv, "01", &options) == 0)
{
options = rb_hash_new();
}
else
{
Check_Type(options, T_HASH);
}
rb_ivar_set(self, s_options, options);
rb_ivar_set(self, s_input, Qnil);
return self;
}
|
Instance Method Details
#bufsize ⇒ Object
YAML::Syck::Parser.bufsize => Integer
920 921 922 923 924 925 926 927 |
# File 'ext/syck/rubyext.c', line 920
static VALUE
syck_parser_bufsize_get(VALUE self)
{
SyckParser *parser;
TypedData_Get_Struct(self, SyckParser, &syck_parser_type, parser);
return INT2FIX( parser->bufsize );
}
|
#bufsize=(size) ⇒ Object
YAML::Syck::Parser.bufsize = Integer
904 905 906 907 908 909 910 911 912 913 914 915 |
# File 'ext/syck/rubyext.c', line 904
static VALUE
syck_parser_bufsize_set(VALUE self, VALUE size)
{
SyckParser *parser;
if ( rb_respond_to( size, s_to_i ) ) {
int n = NUM2INT(rb_funcall(size, s_to_i, 0));
TypedData_Get_Struct(self, SyckParser, &syck_parser_type, parser);
parser->bufsize = n;
}
return self;
}
|
#load(*args) ⇒ Object
YAML::Syck::Parser.load( IO or String )
932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 |
# File 'ext/syck/rubyext.c', line 932
VALUE
syck_parser_load(int argc, VALUE *argv, VALUE self)
{
VALUE port, proc, model, input;
SyckParser *parser;
struct parser_xtra *bonus;
rb_scan_args(argc, argv, "11", &port, &proc);
input = rb_hash_aref( rb_attr_get( self, s_options ), sym_input );
model = rb_hash_aref( rb_attr_get( self, s_options ), sym_model );
TypedData_Get_Struct(self, SyckParser, &syck_parser_type, parser);
syck_set_model( self, input, model );
bonus = (struct parser_xtra *)parser->bonus;
bonus->taint = syck_parser_assign_io(parser, &port);
bonus->data = rb_hash_new();
bonus->resolver = rb_attr_get( self, s_resolver );
if ( NIL_P( proc ) ) bonus->proc = 0;
else bonus->proc = proc;
return syck_parse( parser );
}
|
#load_documents(*args) ⇒ Object
YAML::Syck::Parser.load_documents( IO or String ) { |doc| }
959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 |
# File 'ext/syck/rubyext.c', line 959
VALUE
syck_parser_load_documents(int argc, VALUE *argv, VALUE self)
{
VALUE port, proc, v, input, model;
SyckParser *parser;
struct parser_xtra *bonus;
rb_scan_args(argc, argv, "1&", &port, &proc);
input = rb_hash_aref( rb_attr_get( self, s_options ), sym_input );
model = rb_hash_aref( rb_attr_get( self, s_options ), sym_model );
TypedData_Get_Struct(self, SyckParser, &syck_parser_type, parser);
syck_set_model( self, input, model );
bonus = (struct parser_xtra *)parser->bonus;
bonus->taint = syck_parser_assign_io(parser, &port);
bonus->resolver = rb_attr_get( self, s_resolver );
bonus->proc = 0;
while ( 1 )
{
/* Reset hash for tracking nodes */
bonus->data = rb_hash_new();
/* Parse a document */
v = syck_parse( parser );
if ( parser->eof == 1 )
{
break;
}
/* Pass document to block */
rb_funcall( proc, s_call, 1, v );
}
return Qnil;
}
|
#set_resolver(resolver) ⇒ Object
YAML::Syck::Parser#set_resolver
1000 1001 1002 1003 1004 1005 |
# File 'ext/syck/rubyext.c', line 1000
VALUE
syck_parser_set_resolver(VALUE self, VALUE resolver)
{
rb_ivar_set( self, s_resolver, resolver );
return self;
}
|