#include /* * call-seq: * get(key) * * Get the HTML::EntityDescription for +key+ */ static VALUE get(VALUE self, VALUE key) { const htmlEntityDesc * desc = htmlEntityLookup((const xmlChar *)StringValuePtr(key)); VALUE klass, args[3]; if(NULL == desc) return Qnil; klass = rb_const_get(mNokogiriHtml, rb_intern("EntityDescription")); args[0] = INT2NUM((long)desc->value); args[1] = NOKOGIRI_STR_NEW2(desc->name); args[2] = NOKOGIRI_STR_NEW2(desc->desc); return rb_class_new_instance(3, args, klass); } void init_html_entity_lookup() { VALUE nokogiri = rb_define_module("Nokogiri"); VALUE html = rb_define_module_under(nokogiri, "HTML"); VALUE klass = rb_define_class_under(html, "EntityLookup", rb_cObject); rb_define_method(klass, "get", get, 1); }