Class: Markly::Parser
- Inherits:
-
Object
- Object
- Markly::Parser
- Defined in:
- ext/markly/markly.c
Instance Method Summary collapse
Constructor Details
#initialize(flags) ⇒ Object
141 142 143 144 145 146 147 148 149 150 |
# File 'ext/markly/markly.c', line 141
static VALUE rb_Markly_Parser_initialize(VALUE self, VALUE flags) {
Check_Type(flags, T_FIXNUM);
cmark_mem *mem = cmark_get_default_mem_allocator();
cmark_parser *parser = cmark_parser_new_with_mem(NUM2INT(flags), mem);
RTYPEDDATA_DATA(self) = parser;
return self;
}
|
Instance Method Details
#enable(extension) ⇒ Object
152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 |
# File 'ext/markly/markly.c', line 152
static VALUE rb_Markly_Parser_enable(VALUE self, VALUE extension) {
cmark_parser *parser = NULL;
Check_Type(extension, T_SYMBOL);
VALUE extension_name = rb_sym2str(extension);
TypedData_Get_Struct(self, cmark_parser, &rb_Markly_Parser_Type, parser);
cmark_syntax_extension *syntax_extension =
cmark_find_syntax_extension(StringValueCStr(extension_name));
if (!syntax_extension) {
rb_raise(rb_eArgError, "extension %s not found", StringValueCStr(extension_name));
}
cmark_parser_attach_syntax_extension(parser, syntax_extension);
return Qnil;
}
|
#parse(text) ⇒ Object
173 174 175 176 177 178 179 180 181 182 183 184 185 |
# File 'ext/markly/markly.c', line 173
static VALUE rb_Markly_Parser_parse(VALUE self, VALUE text) {
cmark_parser *parser = NULL;
StringValue(text);
TypedData_Get_Struct(self, cmark_parser, &rb_Markly_Parser_Type, parser);
cmark_parser_feed(parser, RSTRING_PTR(text), RSTRING_LEN(text));
cmark_node *root = cmark_parser_finish(parser);
return rb_Markly_Node_wrap(root);
}
|