class Meteor::Ml::Xhtml5::ParserImpl
XHTML5 parser (XHTML5パーサ)
Constants
- ATTR_LOGIC
- CHARSET
- DISABLE_ELEMENT
- REQUIRED
- REQUIRED_M
- REQUIRED_M1
- REQUIRED_R
- REQUIRED_U
- REQUIRE_ELEMENT
- UTF8
Public Class Methods
new(*args)
click to toggle source
initializer (イニシャライザ) @overload initialize @overload initialize(ps)
@param [Meteor::Parser] ps parser (パーサ)
Calls superclass method
Meteor::Ml::Xhtml4::ParserImpl::new
# File lib/meteor.rb, line 5360 def initialize(*args) super() @@attr_logic = ATTR_LOGIC @doc_type = Parser::XHTML5 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 5399 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
Calls superclass method
Meteor::Ml::Xhtml4::ParserImpl#edit_attrs_
# File lib/meteor.rb, line 5424 def edit_attrs_(elm, attr_name, attr_value) if is_match(SELECTED, attr_name) && is_match(OPTION, elm.name) edit_attrs_5(elm, attr_value, @@pattern_selected_m, @@pattern_selected_r, SELECTED_U) elsif is_match(MULTIPLE, attr_name) && is_match(SELECT, elm.name) edit_attrs_5(elm, attr_value, @@pattern_multiple_m, @@pattern_multiple_r, MULTIPLE_U) elsif is_match(DISABLED, attr_name) && is_match(DISABLE_ELEMENT, elm.name) edit_attrs_5(elm, attr_value, @@pattern_disabled_m, @@pattern_disabled_r, DISABLED_U) elsif is_match(CHECKED, attr_name) && is_match(INPUT, elm.name) && is_match(RADIO, get_type(elm)) edit_attrs_5(elm, attr_value, @@pattern_checked_m, @@pattern_checked_r, CHECKED_U) 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_value, @@pattern_readonly_m, @@pattern_readonly_r, READONLY_U) elsif is_match(REQUIRED, attr_name) && is_match(REQUIRE_ELEMENT, elm.name) edit_attrs_5(elm, attr_value, @@pattern_required_m, @@pattern_required_r, REQUIRED_U) else super(elm, attr_name, attr_value) end end
get_attr_value_(elm, attr_name)
click to toggle source
Calls superclass method
Meteor::Ml::Xhtml4::ParserImpl#get_attr_value_
# File lib/meteor.rb, line 5446 def get_attr_value_(elm, attr_name) if is_match(SELECTED, attr_name) && is_match(OPTION, elm.name) get_attr_value_r(elm, attr_name, @@pattern_selected_m1) elsif is_match(MULTIPLE, attr_name) && is_match(SELECT, elm.name) get_attr_value_r(elm, attr_name, @@pattern_multiple_m1) elsif is_match(DISABLED, attr_name) && is_match(DISABLE_ELEMENT, elm.name) get_attr_value_r(elm, attr_name, @@pattern_disabled_m1) elsif is_match(CHECKED, attr_name) && is_match(INPUT, elm.name) && is_match(RADIO, get_type(elm)) get_attr_value_r(elm, attr_name, @@pattern_checked_m1) 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, attr_name, @@pattern_readonly_m1) elsif is_match(REQUIRED, attr_name) && is_match(REQUIRE_ELEMENT, elm.name) get_attr_value_r(elm, attr_name, @@pattern_required_m1) 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 5386 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