class Nokogiri::HTML::ElementDescription

Public Class Methods

[](tag_name) click to toggle source

Get ElemementDescription for tag_name

static VALUE get_description(VALUE klass, VALUE tag_name)
{
  const htmlElemDesc * description = htmlTagLookup(
      (const xmlChar *)StringValuePtr(tag_name)
  );

  if(NULL == description) return Qnil;
  return Data_Wrap_Struct(klass, 0, 0, (void *)description);
}

Public Instance Methods

block?() click to toggle source

Is this element a block element?

# File lib/nokogiri/html/element_description.rb, line 6
def block?
  !inline?
end
default_sub_element click to toggle source

The default sub element for this element

static VALUE default_sub_element(VALUE self)
{
  htmlElemDesc * description;
  Data_Get_Struct(self, htmlElemDesc, description);

  return NOKOGIRI_STR_NEW2(description->defaultsubelt);
}
deprecated? click to toggle source

Is this element deprecated?

static VALUE deprecated_eh(VALUE self)
{
  htmlElemDesc * description;
  Data_Get_Struct(self, htmlElemDesc, description);

  if(description->depr) return Qtrue;
  return Qfalse;
}
deprecated_attributes click to toggle source

A list of deprecated attributes for this element

static VALUE deprecated_attributes(VALUE self)
{
  htmlElemDesc * description;
  VALUE list;
  int i;

  Data_Get_Struct(self, htmlElemDesc, description);

  list = rb_ary_new();

  if(NULL == description->attrs_depr) return list;

  for(i = 0; description->attrs_depr[i]; i++) {
    rb_ary_push(list, NOKOGIRI_STR_NEW2(description->attrs_depr[i]));
  }

  return list;
}
description click to toggle source

The description for this element

static VALUE description(VALUE self)
{
  htmlElemDesc * description;
  Data_Get_Struct(self, htmlElemDesc, description);

  return NOKOGIRI_STR_NEW2(description->desc);
}
empty? click to toggle source

Is this an empty element?

static VALUE empty_eh(VALUE self)
{
  htmlElemDesc * description;
  Data_Get_Struct(self, htmlElemDesc, description);

  if(description->empty) return Qtrue;
  return Qfalse;
}
implied_end_tag? click to toggle source

Can the end tag be implied for this tag?

static VALUE implied_end_tag_eh(VALUE self)
{
  htmlElemDesc * description;
  Data_Get_Struct(self, htmlElemDesc, description);

  if(description->endTag) return Qtrue;
  return Qfalse;
}
implied_start_tag? click to toggle source

Can the start tag be implied for this tag?

static VALUE implied_start_tag_eh(VALUE self)
{
  htmlElemDesc * description;
  Data_Get_Struct(self, htmlElemDesc, description);

  if(description->startTag) return Qtrue;
  return Qfalse;
}
inline? click to toggle source

Is this element an inline element?

static VALUE inline_eh(VALUE self)
{
  htmlElemDesc * description;
  Data_Get_Struct(self, htmlElemDesc, description);

  if(description->isinline) return Qtrue;
  return Qfalse;
}
inspect() click to toggle source

Inspection information

# File lib/nokogiri/html/element_description.rb, line 18
def inspect
  "#<#{self.class.name}: #{name} #{description}>"
end
name click to toggle source

Get the tag name for this ElemementDescription

static VALUE name(VALUE self)
{
  htmlElemDesc * description;
  Data_Get_Struct(self, htmlElemDesc, description);

  if(NULL == description->name) return Qnil;
  return NOKOGIRI_STR_NEW2(description->name);
}
optional_attributes click to toggle source

A list of optional attributes for this element

static VALUE optional_attributes(VALUE self)
{
  htmlElemDesc * description;
  VALUE list;
  int i;

  Data_Get_Struct(self, htmlElemDesc, description);

  list = rb_ary_new();

  if(NULL == description->attrs_opt) return list;

  for(i = 0; description->attrs_opt[i]; i++) {
    rb_ary_push(list, NOKOGIRI_STR_NEW2(description->attrs_opt[i]));
  }

  return list;
}
required_attributes click to toggle source

A list of required attributes for this element

static VALUE required_attributes(VALUE self)
{
  htmlElemDesc * description;
  VALUE list;
  int i;

  Data_Get_Struct(self, htmlElemDesc, description);

  list = rb_ary_new();

  if(NULL == description->attrs_req) return list;

  for(i = 0; description->attrs_depr[i]; i++) {
    rb_ary_push(list, NOKOGIRI_STR_NEW2(description->attrs_req[i]));
  }

  return list;
}
save_end_tag? click to toggle source

Should the end tag be saved?

static VALUE save_end_tag_eh(VALUE self)
{
  htmlElemDesc * description;
  Data_Get_Struct(self, htmlElemDesc, description);

  if(description->saveEndTag) return Qtrue;
  return Qfalse;
}
sub_elements click to toggle source

A list of allowed sub elements for this element.

static VALUE sub_elements(VALUE self)
{
  htmlElemDesc * description;
  VALUE list;
  int i;

  Data_Get_Struct(self, htmlElemDesc, description);

  list = rb_ary_new();

  if(NULL == description->subelts) return list;

  for(i = 0; description->subelts[i]; i++) {
    rb_ary_push(list, NOKOGIRI_STR_NEW2(description->subelts[i]));
  }

  return list;
}
to_s() click to toggle source

Convert this description to a string

# File lib/nokogiri/html/element_description.rb, line 12
def to_s
  "#{name}: #{description}"
end