class Meteor::Ml::Html5::ParserImpl

HTML5 parser (HTML5パーサ)

Constants

ATTR_LOGIC
CHARSET
DISABLE_ELEMENT
MATCH_TAG
MATCH_TAG_SNG
REQUIRED
REQUIRED_M
REQUIRED_R

REQUIRED_M = [' required ',' required',' REQUIRED ',' REQUIRED']

REQUIRE_ELEMENT
UTF8

Public Class Methods

new(*args) click to toggle source

initializer (イニシャライザ) @overload initialize @overload initialize(ps)

@param [Meteor::Parser] ps paser (パーサ)
Calls superclass method Meteor::Ml::Html4::ParserImpl::new
# File lib/meteor.rb, line 5218
def initialize(*args)
  super()
  @@match_tag = MATCH_TAG
  @@match_tag_sng = MATCH_TAG_SNG
  @@attr_logic = ATTR_LOGIC
  @doc_type = Parser::HTML5
  case args.length
    when ZERO
      #initialize_0
    when ONE
      initialize_1(args[0])
    else
      raise ArgumentError
  end
end

Private Instance Methods

analyze_content_type() click to toggle source

analyze document , set content type (ドキュメントをパースし、コンテントタイプをセットする)

# File lib/meteor.rb, line 5259
def analyze_content_type
  @error_check = false

  element_3(META_S, HTTP_EQUIV, CONTENT_TYPE)

  if !@elm_
    element_3(META, HTTP_EQUIV, CONTENT_TYPE)
  end

  @error_check = true

  if @elm_
    @root.content_type = @elm_.attr(CONTENT)
    @root.charset = @elm_.attr(CHARSET)
    if !@root.charset
      @root.charset = UTF8
    end
  else
    @root.content_type = EMPTY
    @root.charset = UTF8
  end
end
edit_attrs_(elm, attr_name, attr_value) click to toggle source
# File lib/meteor.rb, line 5284
def edit_attrs_(elm, attr_name, attr_value)
  if is_match(SELECTED, attr_name) && is_match(OPTION, elm.name)
    edit_attrs_5(elm, attr_name, attr_value, @@pattern_selected_m, @@pattern_selected_r)
  elsif is_match(MULTIPLE, attr_name) && is_match(SELECT, elm.name)
    edit_attrs_5(elm, attr_name, attr_value, @@pattern_multiple_m, @@pattern_multiple_r)
  elsif is_match(DISABLED, attr_name) && is_match(DISABLE_ELEMENT, elm.name)
    edit_attrs_5(elm, attr_name, attr_value, @@pattern_disabled_m, @@pattern_disabled_r)
  elsif is_match(CHECKED, attr_name) && is_match(INPUT, elm.name) && is_match(RADIO, get_type(elm))
    edit_attrs_5(elm, attr_name, attr_value, @@pattern_checked_m, @@pattern_checked_r)
  elsif is_match(READONLY, attr_name) && (is_match(TEXTAREA, elm.name) || (is_match(INPUT, elm.name) && is_match(READONLY_TYPE, get_type(elm))))
    edit_attrs_5(elm, attr_name, attr_value, @@pattern_readonly_m, @@pattern_readonly_r)
  elsif is_match(REQUIRED, attr_name) && is_match(REQUIRE_ELEMENT, elm.name)
    edit_attrs_5(elm, attr_name, attr_value, @@pattern_required_m, @@pattern_required_r)
  else
    super(elm, attr_name, attr_value)
  end
end
get_attr_value_(elm, attr_name) click to toggle source
# File lib/meteor.rb, line 5304
def get_attr_value_(elm, attr_name)
  if is_match(SELECTED, attr_name) && is_match(OPTION, elm.name)
    get_attr_value_r(elm, @@pattern_selected_m)
  elsif is_match(MULTIPLE, attr_name) && is_match(SELECT, elm.name)
    get_attr_value_r(elm, @@pattern_multiple_m)
  elsif is_match(DISABLED, attr_name) && is_match(DISABLE_ELEMENT, elm.name)
    get_attr_value_r(elm, @@pattern_disabled_m)
  elsif is_match(CHECKED, attr_name) && is_match(INPUT, elm.name) && is_match(RADIO, get_type(elm))
    get_attr_value_r(elm, @@pattern_checked_m)
  elsif is_match(READONLY, attr_name) && (is_match(TEXTAREA, elm.name) || (is_match(INPUT, elm.name) && is_match(READONLY_TYPE, get_type(elm))))
    get_attr_value_r(elm, @@pattern_readonly_m)
  elsif is_match(REQUIRED, attr_name) && is_match(REQUIRE_ELEMENT, elm.name)
    get_attr_value_r(elm, @@pattern_required_m)
  else
    super(elm, attr_name)
  end
end
initialize_1(ps) click to toggle source

initializer (イニシャライザ) @param [Meteor::Parser] ps parser (パーサ)

# File lib/meteor.rb, line 5246
def initialize_1(ps)
  @root.document = String.new(ps.document)
  self.document_hook = String.new(ps.document_hook)
  @root.content_type = String.new(ps.root_element.content_type)
  @root.charset = ps.root_element.charset
  @root.kaigyo_code = ps.root_element.kaigyo_code
end