class Nokogiri::HTML4::ElementDescription

Constants

ACTION_ATTR
ALIGN_ATTR
ALT_ATTR
APPLET_ATTRS
AREA_ATTRS
ATTRS
A_ATTRS
BASEFONT_ATTRS
BGCOLOR_ATTR
BLOCK
BLOCKLI_ELT
BODY_ATTRS
BODY_CONTENTS
BODY_DEPR
BUTTON_ATTRS
CELLHALIGN
CELLVALIGN
CLEAR_ATTRS
COL_ATTRS
COL_ELT
COMPACT_ATTR
COMPACT_ATTRS
CONTENT_ATTR
COREATTRS
CORE_ATTRS
CORE_I18N_ATTRS
DIR_ATTR
DL_CONTENTS
DefaultDescriptions

This is filled in down below.

Desc

Methods are defined protected by method_defined? because at this point the C-library or Java library is already loaded, and we don’t want to clobber any methods that have been defined there.

EDIT_ATTRS
EMBED_ATTRS
EMPTY
EVENTS
FIELDSET_CONTENTS
FLOW
FLOW_PARAM
FONTSTYLE

Attributes defined and categorized

FONT_ATTRS
FORMCTRL
FORM_ATTRS
FORM_CONTENTS
FRAMESET_ATTRS
FRAMESET_CONTENTS
FRAME_ATTRS
HEADING
HEAD_ATTRS
HEAD_CONTENTS
HREF_ATTRS
HR_DEPR
HTML_ATTRS
HTML_CDATA
HTML_CONTENT
HTML_FLOW
HTML_INLINE
HTML_PCDATA
I18N
I18N_ATTRS
IFRAME_ATTRS
IMG_ATTRS
INLINE
INLINE_P
INPUT_ATTRS
LABEL_ATTR
LABEL_ATTRS
LANGUAGE_ATTR
LEGEND_ATTRS
LIST
LI_ELT
MAP_CONTENTS
META_ATTRS
MODIFIER
NAME_ATTR
NOFRAMES_CONTENT
OBJECT_ATTRS
OBJECT_CONTENTS
OBJECT_DEPR
OL_ATTRS
OPTGROUP_ATTRS
OPTION_ATTRS
OPTION_ELT
PARAM_ATTRS
PCDATA
PHRASE
PRE_CONTENT
PROMPT_ATTRS
QUOTE_ATTRS
ROWS_COLS_ATTR
SCRIPT_ATTRS
SELECT_ATTRS
SELECT_CONTENT
SPECIAL
SRC_ALT_ATTRS
STYLE_ATTRS
TABLE_ATTRS
TABLE_CONTENTS
TABLE_DEPR
TALIGN_ATTRS
TARGET_ATTR
TEXTAREA_ATTRS
TH_TD_ATTR
TH_TD_DEPR
TR_CONTENTS
TR_ELT
TYPE_ATTR
UL_DEPR
VERSION_ATTR
WIDTH_ATTR

Public Class Methods

[](tag_name) click to toggle source

Get ElementDescription for tag_name

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

  if (NULL == description) { return Qnil; }
  return TypedData_Wrap_Struct(klass, &html_elem_desc_type, DISCARD_CONST_QUAL(void *, description));
}

Public Instance Methods

block?() click to toggle source

Is this element a block element?

# File lib/nokogiri/html4/element_description.rb, line 8
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)
{
  const htmlElemDesc *description;
  TypedData_Get_Struct(self, htmlElemDesc, &html_elem_desc_type, description);

  if (description->defaultsubelt) {
    return NOKOGIRI_STR_NEW2(description->defaultsubelt);
  }

  return Qnil;
}
deprecated? click to toggle source

Is this element deprecated?

static VALUE
deprecated_eh(VALUE self)
{
  const htmlElemDesc *description;
  TypedData_Get_Struct(self, htmlElemDesc, &html_elem_desc_type, 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)
{
  const htmlElemDesc *description;
  VALUE list;
  int i;

  TypedData_Get_Struct(self, htmlElemDesc, &html_elem_desc_type, 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)
{
  const htmlElemDesc *description;
  TypedData_Get_Struct(self, htmlElemDesc, &html_elem_desc_type, description);

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

Is this an empty element?

static VALUE
empty_eh(VALUE self)
{
  const htmlElemDesc *description;
  TypedData_Get_Struct(self, htmlElemDesc, &html_elem_desc_type, 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)
{
  const htmlElemDesc *description;
  TypedData_Get_Struct(self, htmlElemDesc, &html_elem_desc_type, 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)
{
  const htmlElemDesc *description;
  TypedData_Get_Struct(self, htmlElemDesc, &html_elem_desc_type, 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)
{
  const htmlElemDesc *description;
  TypedData_Get_Struct(self, htmlElemDesc, &html_elem_desc_type, description);

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

Inspection information

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

Get the tag name for this ElementDescription

static VALUE
name(VALUE self)
{
  const htmlElemDesc *description;
  TypedData_Get_Struct(self, htmlElemDesc, &html_elem_desc_type, 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)
{
  const htmlElemDesc *description;
  VALUE list;
  int i;

  TypedData_Get_Struct(self, htmlElemDesc, &html_elem_desc_type, 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)
{
  const htmlElemDesc *description;
  VALUE list;
  int i;

  TypedData_Get_Struct(self, htmlElemDesc, &html_elem_desc_type, 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)
{
  const htmlElemDesc *description;
  TypedData_Get_Struct(self, htmlElemDesc, &html_elem_desc_type, 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)
{
  const htmlElemDesc *description;
  VALUE list;
  int i;

  TypedData_Get_Struct(self, htmlElemDesc, &html_elem_desc_type, 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/html4/element_description.rb, line 14
def to_s
  "#{name}: #{description}"
end