asip-meteor 0.9.0.6 → 0.9.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/README +1 -1
- data/lib/meteor.rb +155 -151
- metadata +1 -1
data/README
CHANGED
data/lib/meteor.rb
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
19
19
|
#
|
20
20
|
# @author Yasumasa Ashida
|
21
|
-
# @version 0.9.0.
|
21
|
+
# @version 0.9.0.7
|
22
22
|
#
|
23
23
|
if RUBY_VERSION < '1.9.0' then
|
24
24
|
require 'kconv'
|
@@ -27,7 +27,7 @@ end
|
|
27
27
|
|
28
28
|
module Meteor
|
29
29
|
|
30
|
-
VERSION = "0.9.0.
|
30
|
+
VERSION = "0.9.0.7"
|
31
31
|
|
32
32
|
#
|
33
33
|
# 要素クラス
|
@@ -187,11 +187,11 @@ module Meteor
|
|
187
187
|
#
|
188
188
|
def initialize()
|
189
189
|
#コンテントタイプ
|
190
|
-
|
190
|
+
#@contentType = ''
|
191
191
|
#改行コード
|
192
|
-
|
192
|
+
#@kaigyoCode = ''
|
193
193
|
#文字コード
|
194
|
-
|
194
|
+
#@characterEncoding=''
|
195
195
|
|
196
196
|
#フックドキュメント
|
197
197
|
@hookDocument =''
|
@@ -574,95 +574,95 @@ module Meteor
|
|
574
574
|
class Kernel < Meteor::Parser
|
575
575
|
|
576
576
|
EMPTY = ''
|
577
|
-
SPACE =
|
578
|
-
DOUBLE_QUATATION = "
|
579
|
-
TAG_OPEN =
|
580
|
-
TAG_OPEN3 =
|
581
|
-
TAG_OPEN4 =
|
582
|
-
TAG_CLOSE =
|
583
|
-
TAG_CLOSE2 =
|
584
|
-
TAG_CLOSE3 =
|
585
|
-
ATTR_EQ = "
|
577
|
+
SPACE = ' '
|
578
|
+
DOUBLE_QUATATION = '"'
|
579
|
+
TAG_OPEN = '<'
|
580
|
+
TAG_OPEN3 = '</'
|
581
|
+
TAG_OPEN4 = '<\\\\/'
|
582
|
+
TAG_CLOSE = '>'
|
583
|
+
TAG_CLOSE2 = '\\/>'
|
584
|
+
TAG_CLOSE3 = '/>'
|
585
|
+
ATTR_EQ = '="'
|
586
586
|
#element
|
587
587
|
#TAG_SEARCH_1_1 = "([^<>]*)>(((?!(<\\/"
|
588
|
-
TAG_SEARCH_1_1 =
|
588
|
+
TAG_SEARCH_1_1 = '(\\s?[^<>]*)>(((?!('
|
589
589
|
#TAG_SEARCH_1_2 = ")).)*)<\\/";
|
590
|
-
TAG_SEARCH_1_2 =
|
591
|
-
TAG_SEARCH_1_3 =
|
590
|
+
TAG_SEARCH_1_2 = '[^<>]*>)).)*)<\\/'
|
591
|
+
TAG_SEARCH_1_3 = '(\\s?[^<>]*)\\/>'
|
592
592
|
#TAG_SEARCH_1_4 = "([^<>\\/]*)>"
|
593
|
-
TAG_SEARCH_1_4 =
|
594
|
-
TAG_SEARCH_1_4_2 =
|
593
|
+
TAG_SEARCH_1_4 = '(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
|
594
|
+
TAG_SEARCH_1_4_2 = '(\\s[^<>]*)>'
|
595
595
|
|
596
|
-
TAG_SEARCH_NC_1_1 =
|
597
|
-
TAG_SEARCH_NC_1_2 =
|
598
|
-
TAG_SEARCH_NC_1_3 =
|
599
|
-
TAG_SEARCH_NC_1_4 =
|
600
|
-
TAG_SEARCH_NC_1_4_2 =
|
596
|
+
TAG_SEARCH_NC_1_1 = '\\s?[^<>]*>((?!('
|
597
|
+
TAG_SEARCH_NC_1_2 = '[^<>]*>)).)*<\\/'
|
598
|
+
TAG_SEARCH_NC_1_3 = '\\s?[^<>]*\\/>'
|
599
|
+
TAG_SEARCH_NC_1_4 = '(?:\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
|
600
|
+
TAG_SEARCH_NC_1_4_2 = '\\s[^<>]*>'
|
601
601
|
|
602
602
|
#TAG_SEARCH_2_1 = "\\s([^<>]*"
|
603
|
-
TAG_SEARCH_2_1 =
|
604
|
-
TAG_SEARCH_2_1_2 =
|
603
|
+
TAG_SEARCH_2_1 = '(\\s[^<>]*'
|
604
|
+
TAG_SEARCH_2_1_2 = '(\\s[^<>]*(?:'
|
605
605
|
#TAG_SEARCH_2_2 = "\"[^<>]*)>(((?!(<\\/"
|
606
|
-
TAG_SEARCH_2_2 = "
|
607
|
-
TAG_SEARCH_2_2_2 = "
|
608
|
-
TAG_SEARCH_2_3 = "
|
606
|
+
TAG_SEARCH_2_2 = '"[^<>]*)>(((?!('
|
607
|
+
TAG_SEARCH_2_2_2 = '")[^<>]*)>(((?!('
|
608
|
+
TAG_SEARCH_2_3 = '"[^<>]*)'
|
609
609
|
TAG_SEARCH_2_3_2 = "\"[^<>]*)\\/>"
|
610
610
|
TAG_SEARCH_2_3_2_2 = "\")[^<>]*)\\/>"
|
611
611
|
#TAG_SEARCH_2_4 = "\"[^<>\\/]*>"
|
612
|
-
TAG_SEARCH_2_4 =
|
612
|
+
TAG_SEARCH_2_4 = '(?:[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
|
613
613
|
#TAG_SEARCH_2_4_2 = "\"[^<>\\/]*)>"
|
614
|
-
TAG_SEARCH_2_4_2 =
|
615
|
-
TAG_SEARCH_2_4_2_2 = "
|
616
|
-
TAG_SEARCH_2_4_2_3 = "
|
617
|
-
TAG_SEARCH_2_4_3 = "
|
618
|
-
TAG_SEARCH_2_4_3_2 = "
|
619
|
-
TAG_SEARCH_2_4_4 = "
|
620
|
-
|
621
|
-
TAG_SEARCH_2_6 = "
|
622
|
-
TAG_SEARCH_2_7 = "
|
623
|
-
|
624
|
-
TAG_SEARCH_NC_2_1 =
|
625
|
-
TAG_SEARCH_NC_2_1_2 =
|
626
|
-
TAG_SEARCH_NC_2_2 = "
|
627
|
-
TAG_SEARCH_NC_2_2_2 = "
|
628
|
-
TAG_SEARCH_NC_2_3 = "
|
629
|
-
TAG_SEARCH_NC_2_3_2 = "
|
630
|
-
TAG_SEARCH_NC_2_3_2_2 = "
|
631
|
-
TAG_SEARCH_NC_2_4 =
|
632
|
-
TAG_SEARCH_NC_2_4_2 =
|
633
|
-
TAG_SEARCH_NC_2_4_2_2 = "
|
634
|
-
TAG_SEARCH_NC_2_4_2_3 = "
|
635
|
-
TAG_SEARCH_NC_2_4_3 = "
|
636
|
-
TAG_SEARCH_NC_2_4_3_2 = "
|
637
|
-
TAG_SEARCH_NC_2_4_4 = "
|
638
|
-
TAG_SEARCH_NC_2_6 = "
|
639
|
-
TAG_SEARCH_NC_2_7 = "
|
614
|
+
TAG_SEARCH_2_4_2 = '(?:[^<>\\/]*>|(?:(?!([^<>]*\\/>))[^<>]*>)))'
|
615
|
+
TAG_SEARCH_2_4_2_2 = '")([^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>)))'
|
616
|
+
TAG_SEARCH_2_4_2_3 = '"'
|
617
|
+
TAG_SEARCH_2_4_3 = '"[^<>]*)>'
|
618
|
+
TAG_SEARCH_2_4_3_2 = '")[^<>]*)>'
|
619
|
+
TAG_SEARCH_2_4_4 = '"[^<>]*>'
|
620
|
+
|
621
|
+
TAG_SEARCH_2_6 = '"[^<>]*'
|
622
|
+
TAG_SEARCH_2_7 = '"|'
|
623
|
+
|
624
|
+
TAG_SEARCH_NC_2_1 = '\\s[^<>]*'
|
625
|
+
TAG_SEARCH_NC_2_1_2 = '\\s[^<>]*(?:'
|
626
|
+
TAG_SEARCH_NC_2_2 = '"[^<>]*>((?!('
|
627
|
+
TAG_SEARCH_NC_2_2_2 = '")[^<>]*>((?!('
|
628
|
+
TAG_SEARCH_NC_2_3 = '"[^<>]*)'
|
629
|
+
TAG_SEARCH_NC_2_3_2 = '"[^<>]*\\/>'
|
630
|
+
TAG_SEARCH_NC_2_3_2_2 = '")[^<>]*\\/>'
|
631
|
+
TAG_SEARCH_NC_2_4 = '(?:[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
|
632
|
+
TAG_SEARCH_NC_2_4_2 = '(?:[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
|
633
|
+
TAG_SEARCH_NC_2_4_2_2 = '")(?:[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
|
634
|
+
TAG_SEARCH_NC_2_4_2_3 = '"'
|
635
|
+
TAG_SEARCH_NC_2_4_3 = '"[^<>]*>'
|
636
|
+
TAG_SEARCH_NC_2_4_3_2 = '")[^<>]*>'
|
637
|
+
TAG_SEARCH_NC_2_4_4 = '"[^<>]*>'
|
638
|
+
TAG_SEARCH_NC_2_6 = '"[^<>]*'
|
639
|
+
TAG_SEARCH_NC_2_7 = '"|'
|
640
640
|
|
641
|
-
TAG_SEARCH_3_1 =
|
642
|
-
TAG_SEARCH_3_1_2 =
|
643
|
-
TAG_SEARCH_3_1_2_2 =
|
641
|
+
TAG_SEARCH_3_1 = '<([^<>"]*)\\s[^<>]*'
|
642
|
+
TAG_SEARCH_3_1_2 = '<([^<>"]*)\\s([^<>]*'
|
643
|
+
TAG_SEARCH_3_1_2_2 = '<([^<>"]*)\\s([^<>]*('
|
644
644
|
|
645
|
-
TAG_SEARCH_3_2 = "
|
646
|
-
TAG_SEARCH_3_2_2 = "
|
647
|
-
TAG_SEARCH_3_2_2_2 = "
|
645
|
+
TAG_SEARCH_3_2 = '"[^<>]*\\/>'
|
646
|
+
TAG_SEARCH_3_2_2 = '"[^<>]*)\\/>'
|
647
|
+
TAG_SEARCH_3_2_2_2 = '")[^<>]*)\\/>'
|
648
648
|
|
649
|
-
TAG_SEARCH_4_1 =
|
650
|
-
TAG_SEARCH_4_2 =
|
649
|
+
TAG_SEARCH_4_1 = '(\\s[^<>\\/]*)>('
|
650
|
+
TAG_SEARCH_4_2 = '.*?<'
|
651
651
|
#TAG_SEARCH_4_3 = "\\s[^<>\\/]*>"
|
652
|
-
TAG_SEARCH_4_3 =
|
653
|
-
TAG_SEARCH_4_4 =
|
654
|
-
TAG_SEARCH_4_5 =
|
655
|
-
TAG_SEARCH_4_6 =
|
656
|
-
#TAG_SEARCH_4_7 =
|
657
|
-
TAG_SEARCH_4_7 = "
|
658
|
-
TAG_SEARCH_4_7_2 = "
|
659
|
-
|
660
|
-
TAG_SEARCH_NC_3_1 =
|
661
|
-
TAG_SEARCH_NC_3_1_2 =
|
662
|
-
TAG_SEARCH_NC_3_1_2_2 =
|
663
|
-
TAG_SEARCH_NC_3_2 = "
|
664
|
-
TAG_SEARCH_NC_3_2_2 = "
|
665
|
-
TAG_SEARCH_NC_3_2_2_2 = "
|
652
|
+
TAG_SEARCH_4_3 = '(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
|
653
|
+
TAG_SEARCH_4_4 = '<\\/'
|
654
|
+
TAG_SEARCH_4_5 = '.*?<\/'
|
655
|
+
TAG_SEARCH_4_6 = '.*?)<\/'
|
656
|
+
#TAG_SEARCH_4_7 = '\"[^<>\\/]*)>(''
|
657
|
+
TAG_SEARCH_4_7 = '"(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))('
|
658
|
+
TAG_SEARCH_4_7_2 = '")(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))('
|
659
|
+
|
660
|
+
TAG_SEARCH_NC_3_1 = '<[^<>"]*\\s[^<>]*'
|
661
|
+
TAG_SEARCH_NC_3_1_2 = '<([^<>"]*)\\s(?:[^<>]*'
|
662
|
+
TAG_SEARCH_NC_3_1_2_2 = '<([^<>"]*)\\s(?:[^<>]*('
|
663
|
+
TAG_SEARCH_NC_3_2 = '"[^<>]*\\/>'
|
664
|
+
TAG_SEARCH_NC_3_2_2 = '"[^<>]*)\\/>'
|
665
|
+
TAG_SEARCH_NC_3_2_2_2 = '")[^<>]*)\\/>'
|
666
666
|
#TAG_SEARCH_NC_4_1 = "(?:\\s[^<>\\/]*)>("
|
667
667
|
#TAG_SEARCH_NC_4_2 = ".*?<"
|
668
668
|
#TAG_SEARCH_NC_4_3 = "(?:\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))"
|
@@ -673,35 +673,35 @@ module Meteor
|
|
673
673
|
#TAG_SEARCH_NC_4_7_2 = "\")(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))("
|
674
674
|
|
675
675
|
#setAttribute
|
676
|
-
SET_ATTR_1 = "
|
676
|
+
SET_ATTR_1 = '="[^"]*"'
|
677
677
|
#getAttributeValue
|
678
|
-
GET_ATTR_1 = "
|
678
|
+
GET_ATTR_1 = '="([^"]*)"'
|
679
679
|
#attributeMap
|
680
680
|
#todo
|
681
|
-
GET_ATTRS_MAP =
|
681
|
+
GET_ATTRS_MAP = '([^\\s]*)="([^\"]*)"'
|
682
682
|
#removeAttribute
|
683
|
-
ERASE_ATTR_1 = "
|
683
|
+
ERASE_ATTR_1 = '="[^\"]*"\\s'
|
684
684
|
|
685
685
|
#cxtag
|
686
|
-
SEARCH_CX_1 =
|
687
|
-
SEARCH_CX_2 =
|
688
|
-
SEARCH_CX_3 =
|
689
|
-
SEARCH_CX_4 =
|
690
|
-
SEARCH_CX_5 =
|
691
|
-
SEARCH_CX_6 =
|
686
|
+
SEARCH_CX_1 = '<!--\\s@'
|
687
|
+
SEARCH_CX_2 = '\\s([^<>]*id="'
|
688
|
+
SEARCH_CX_3 = '\"[^<>]*)-->(((?!(<!--\\s\\/@'
|
689
|
+
SEARCH_CX_4 = ')).)*)<!--\\s\\/@'
|
690
|
+
SEARCH_CX_5 = '\\s-->'
|
691
|
+
SEARCH_CX_6 = '<!--\\s@([^<>]*)\\s[^<>]*id="'
|
692
692
|
|
693
693
|
#setElementToCXTag
|
694
|
-
SET_CX_1 =
|
695
|
-
SET_CX_2 =
|
696
|
-
SET_CX_3 =
|
697
|
-
SET_CX_4 =
|
694
|
+
SET_CX_1 = '<!-- @'
|
695
|
+
SET_CX_2 = '-->'
|
696
|
+
SET_CX_3 = '<!-- /@'
|
697
|
+
SET_CX_4 = ' -->'
|
698
698
|
|
699
699
|
#setMonoInfo
|
700
|
-
SET_MONO_1 =
|
700
|
+
SET_MONO_1 = '\\A[^<>]*\\Z'
|
701
701
|
|
702
702
|
#clean
|
703
|
-
CLEAN_1 =
|
704
|
-
CLEAN_2 =
|
703
|
+
CLEAN_1 = '<!--\\s@[^<>]*\\s[^<>]*(\\s)*-->'
|
704
|
+
CLEAN_2 = '<!--\\s\\/@[^<>]*(\\s)*-->'
|
705
705
|
#escape
|
706
706
|
AND_1 = '&'
|
707
707
|
AND_2 = '&'
|
@@ -722,9 +722,9 @@ module Meteor
|
|
722
722
|
|
723
723
|
ESCAPE_ENTITY_REF = ''
|
724
724
|
|
725
|
-
SUB_REGEX1 =
|
726
|
-
SUB_REGEX2 =
|
727
|
-
SUB_REGEX3 =
|
725
|
+
SUB_REGEX1 = '(\\\\*)\\\\([0-9]+)'
|
726
|
+
SUB_REGEX2 = '\\1\\1\\\\\\\\\\2'
|
727
|
+
SUB_REGEX3 = '\\1\\1\\1\\1\\\\\\\\\\\\\\\\\\2'
|
728
728
|
|
729
729
|
@@pattern_get_attrs_map = Regexp.new(GET_ATTRS_MAP)
|
730
730
|
|
@@ -1201,7 +1201,6 @@ module Meteor
|
|
1201
1201
|
private :elementWithContent_3_1
|
1202
1202
|
|
1203
1203
|
def elementWithContent_3_2(elmName)
|
1204
|
-
@cnt = 0
|
1205
1204
|
|
1206
1205
|
@pattern_cc_1 = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1 << @_attrName << ATTR_EQ
|
1207
1206
|
@pattern_cc_1 << @_attrValue << TAG_SEARCH_2_4_2
|
@@ -1226,7 +1225,9 @@ module Meteor
|
|
1226
1225
|
|
1227
1226
|
@pattern_2 = Meteor::Core::Util::PatternCache.get(@pattern_cc_2)
|
1228
1227
|
@pattern_1b = Meteor::Core::Util::PatternCache.get(@pattern_cc_1b);
|
1229
|
-
|
1228
|
+
|
1229
|
+
@cnt = 0
|
1230
|
+
|
1230
1231
|
create_element_pattern
|
1231
1232
|
|
1232
1233
|
@pattern_cc = @sbuf
|
@@ -1414,8 +1415,7 @@ module Meteor
|
|
1414
1415
|
private :elementWithContent_5_1
|
1415
1416
|
|
1416
1417
|
def elementWithContent_5_2(elmName)
|
1417
|
-
|
1418
|
-
|
1418
|
+
|
1419
1419
|
@pattern_cc_1 = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1_2 << @_attrName1 << ATTR_EQ
|
1420
1420
|
@pattern_cc_1 << @_attrValue1 << TAG_SEARCH_2_6 << @_attrName2 << ATTR_EQ
|
1421
1421
|
@pattern_cc_1 << @_attrValue2 << TAG_SEARCH_2_7 << @_attrName2 << ATTR_EQ
|
@@ -1445,7 +1445,9 @@ module Meteor
|
|
1445
1445
|
|
1446
1446
|
@pattern_2 = Meteor::Core::Util::PatternCache.get(@pattern_cc_2)
|
1447
1447
|
@pattern_1b = Meteor::Core::Util::PatternCache.get(@pattern_cc_1b);
|
1448
|
-
|
1448
|
+
|
1449
|
+
@cnt = 0
|
1450
|
+
|
1449
1451
|
create_element_pattern
|
1450
1452
|
|
1451
1453
|
@pattern_cc = @sbuf
|
@@ -1787,7 +1789,9 @@ module Meteor
|
|
1787
1789
|
end
|
1788
1790
|
#属性の置換
|
1789
1791
|
@pattern = Meteor::Core::Util::PatternCache.get('' << attrName << SET_ATTR_1)
|
1790
|
-
|
1792
|
+
|
1793
|
+
#elm.attributes.sub!(@pattern,'' << attrName << ATTR_EQ << @_attrValue << DOUBLE_QUATATION)
|
1794
|
+
elm.attributes.sub!(@pattern,"#{attrName}=\"#{@_attrValue}\"")
|
1791
1795
|
else
|
1792
1796
|
#属性文字列の最後に新規の属性を追加する
|
1793
1797
|
@_attrValue = attrValue
|
@@ -1849,9 +1853,9 @@ module Meteor
|
|
1849
1853
|
@pattern = Meteor::Core::Util::PatternCache.get(elm.pattern)
|
1850
1854
|
|
1851
1855
|
#タグ置換
|
1852
|
-
|
1853
|
-
|
1854
|
-
|
1856
|
+
#@pattern_cc = '' << SET_CX_1 << elm.name << SPACE << elm.attributes << SET_CX_2
|
1857
|
+
#@pattern_cc << @_content << SET_CX_3 << elm.name << SET_CX_4
|
1858
|
+
@pattern_cc = "<!-- @#{elm.name} #{elm.attributes}-->#{@_content}<!-- /@#{elm.name} -->"
|
1855
1859
|
@root.document.sub!(@pattern,@pattern_cc)
|
1856
1860
|
end
|
1857
1861
|
end
|
@@ -1864,11 +1868,11 @@ module Meteor
|
|
1864
1868
|
if attr.changed then
|
1865
1869
|
@_attrValue = escapeRegex(attr.value)
|
1866
1870
|
#replace2Regex(@_attrValue)
|
1867
|
-
|
1868
|
-
|
1871
|
+
#@pattern_cc = '' << name << SET_ATTR_1
|
1872
|
+
@pattern_cc = "#{attrName}=\"[^\"]*\""
|
1869
1873
|
@pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
|
1870
|
-
elm.pattern.gsub!(@pattern,'' << name << ATTR_EQ << @_attrValue << DOUBLE_QUATATION)
|
1871
|
-
|
1874
|
+
#elm.pattern.gsub!(@pattern,'' << name << ATTR_EQ << @_attrValue << DOUBLE_QUATATION)
|
1875
|
+
elm.pattern.sub!(@pattern,"#{attrName}=\"#{@_attrValue}\"")
|
1872
1876
|
elsif attr.removed then
|
1873
1877
|
@pattern_cc = '' << name << SET_ATTR_1
|
1874
1878
|
#@pattern_cc = "#{attrName}=\"[^\"]*\""
|
@@ -2747,10 +2751,10 @@ module Meteor
|
|
2747
2751
|
#
|
2748
2752
|
class ParserImpl < Meteor::Core::Kernel
|
2749
2753
|
|
2750
|
-
KAIGYO_CODE =
|
2754
|
+
KAIGYO_CODE = '(\r?\n|\r)'
|
2751
2755
|
NBSP_2 = ' '
|
2752
|
-
BR_1 =
|
2753
|
-
BR_2 =
|
2756
|
+
BR_1 = '\r?\n|\r'
|
2757
|
+
BR_2 = '<br>'
|
2754
2758
|
|
2755
2759
|
META = 'META'
|
2756
2760
|
META_S = 'meta'
|
@@ -2793,21 +2797,21 @@ module Meteor
|
|
2793
2797
|
#@@pattern_select = Regexp.new(SELECT)
|
2794
2798
|
#@@pattern_multiple = Regexp.new(MULTIPLE)
|
2795
2799
|
|
2796
|
-
SELECTED_M =
|
2800
|
+
SELECTED_M = '\\sselected\\s|\\sselected$|\\sSELECTED\\s|\\sSELECTED$'
|
2797
2801
|
#SELECTED_M = [' selected ',' selected',' SELECTED ',' SELECTED']
|
2798
|
-
SELECTED_R =
|
2799
|
-
CHECKED_M =
|
2802
|
+
SELECTED_R = 'selected\\s|selected$|SELECTED\\s|SELECTED$'
|
2803
|
+
CHECKED_M = '\\schecked\\s|\\schecked$|\\sCHECKED\\s|\\sCHECKED$'
|
2800
2804
|
#CHECKED_M = [' checked ',' checked',' CHECKED ',' CHECKED']
|
2801
|
-
CHECKED_R =
|
2802
|
-
DISABLED_M =
|
2805
|
+
CHECKED_R = 'checked\\s|checked$|CHECKED\\s|CHECKED$'
|
2806
|
+
DISABLED_M = '\\sdisabled\\s|\\sdisabled$|\\sDISABLED\\s|\\sDISABLED$'
|
2803
2807
|
#DISABLED_M = [' disabled ',' disiabled',' DISABLED ',' DISABLED']
|
2804
|
-
DISABLED_R =
|
2805
|
-
READONLY_M =
|
2808
|
+
DISABLED_R = 'disabled\\s|disabled$|DISABLED\\s|DISABLED$'
|
2809
|
+
READONLY_M = '\\sreadonly\\s|\\sreadonly$|\\sREADONLY\\s|\\sREADONLY$'
|
2806
2810
|
#READONLY_M = [' readonly ',' readonly',' READONLY ',' READONLY']
|
2807
|
-
READONLY_R =
|
2808
|
-
MULTIPLE_M =
|
2811
|
+
READONLY_R = 'readonly\\s|readonly$|READONLY\\s|READONLY$'
|
2812
|
+
MULTIPLE_M = '\\smultiple\\s|\\smultiple$|\\sMULTIPLE\\s|\\sMULTIPLE$'
|
2809
2813
|
#MULTIPLE_M = [' multiple ',' multiple',' MULTIPLE ',' MULTIPLE']
|
2810
|
-
MULTIPLE_R =
|
2814
|
+
MULTIPLE_R = 'multiple\\s|multiple$|MULTIPLE\\s|MULTIPLE$'
|
2811
2815
|
|
2812
2816
|
@@pattern_selected_m = Regexp.new(SELECTED_M)
|
2813
2817
|
@@pattern_selected_r = Regexp.new(SELECTED_R)
|
@@ -2877,7 +2881,7 @@ module Meteor
|
|
2877
2881
|
@@pattern_set_mono1 = Regexp.new(SET_MONO_1)
|
2878
2882
|
#@@pattern_match_tag2 = Regexp.new(MATCH_TAG_2)
|
2879
2883
|
|
2880
|
-
GET_ATTRS_MAP2=
|
2884
|
+
GET_ATTRS_MAP2='\\s(disabled|readonly|checked|selected|multiple)'
|
2881
2885
|
@@pattern_get_attrs_map2 = Regexp.new(GET_ATTRS_MAP2)
|
2882
2886
|
|
2883
2887
|
#
|
@@ -3499,11 +3503,11 @@ module Meteor
|
|
3499
3503
|
#
|
3500
3504
|
class ParserImpl < Meteor::Core::Kernel
|
3501
3505
|
|
3502
|
-
KAIGYO_CODE =
|
3506
|
+
KAIGYO_CODE = '(\r?\n|\r)'
|
3503
3507
|
NBSP_2 = ' '
|
3504
|
-
BR_1 =
|
3508
|
+
BR_1 = '\r?\n|\r'
|
3505
3509
|
BR_2 = '<br/>'
|
3506
|
-
BR_3 =
|
3510
|
+
BR_3 = '<br\\/>'
|
3507
3511
|
|
3508
3512
|
META = 'META'
|
3509
3513
|
META_S = 'meta'
|
@@ -3540,26 +3544,26 @@ module Meteor
|
|
3540
3544
|
#@@pattern_select = Regexp.new(SELECT)
|
3541
3545
|
#@@pattern_multiple = Regexp.new(MULTIPLE)
|
3542
3546
|
|
3543
|
-
SELECTED_M =
|
3544
|
-
SELECTED_M1 =
|
3545
|
-
SELECTED_R =
|
3546
|
-
SELECTED_U =
|
3547
|
-
CHECKED_M =
|
3548
|
-
CHECKED_M1 =
|
3549
|
-
CHECKED_R =
|
3550
|
-
CHECKED_U =
|
3551
|
-
DISABLED_M =
|
3552
|
-
DISABLED_M1 =
|
3553
|
-
DISABLED_R =
|
3554
|
-
DISABLED_U =
|
3555
|
-
READONLY_M =
|
3556
|
-
READONLY_M1 =
|
3557
|
-
READONLY_R =
|
3558
|
-
READONLY_U =
|
3559
|
-
MULTIPLE_M =
|
3560
|
-
MULTIPLE_M1 =
|
3561
|
-
MULTIPLE_R =
|
3562
|
-
MULTIPLE_U =
|
3547
|
+
SELECTED_M = '\\sselected="[^"]*"\\s|\\sselected="[^"]*"$'
|
3548
|
+
SELECTED_M1 = '\\sselected="([^"]*)"\\s|\\sselected="([^"]*)"$'
|
3549
|
+
SELECTED_R = 'selected="[^"]*"'
|
3550
|
+
SELECTED_U = 'selected="selected"'
|
3551
|
+
CHECKED_M = '\\schecked="[^"]*"\\s|\\schecked="[^"]*"$'
|
3552
|
+
CHECKED_M1 = '\\schecked="([^"]*)"\\s|\\schecked="([^"]*)"$'
|
3553
|
+
CHECKED_R = 'checked="[^"]*"'
|
3554
|
+
CHECKED_U = 'checked="checked"'
|
3555
|
+
DISABLED_M = '\\sdisabled="[^"]*"\\s|\\sdisabled="[^"]*"$'
|
3556
|
+
DISABLED_M1 = '\\sdisabled="([^"]*)"\\s|\\sdisabled="([^"]*)"$'
|
3557
|
+
DISABLED_R = 'disabled="[^"]*"'
|
3558
|
+
DISABLED_U = 'disabled="disabled"'
|
3559
|
+
READONLY_M = '\\sreadonly="[^"]*"\\s|\\sreadonly="[^"]*"$'
|
3560
|
+
READONLY_M1 = '\\sreadonly="([^"]*)"\\s|\\sreadonly="([^"]*)"$'
|
3561
|
+
READONLY_R = 'readonly="[^"]*"'
|
3562
|
+
READONLY_U = 'readonly="readonly"'
|
3563
|
+
MULTIPLE_M = '\\smultiple="[^"]*"\\s|\\smultiple="[^"]*"$'
|
3564
|
+
MULTIPLE_M1 = '\\smultiple="([^"]*)"\\s|\\smultiple="([^"]*)"$'
|
3565
|
+
MULTIPLE_R = 'multiple="[^"]*"'
|
3566
|
+
MULTIPLE_U = 'multiple="multiple"'
|
3563
3567
|
|
3564
3568
|
HTTP_EQUIV = 'http-equiv'
|
3565
3569
|
CONTENT_TYPE = 'Content-Type'
|
@@ -3607,8 +3611,8 @@ module Meteor
|
|
3607
3611
|
"\n" => '<br/>',
|
3608
3612
|
}
|
3609
3613
|
|
3610
|
-
PATTERN_ESCAPE =
|
3611
|
-
PATTERN_ESCAPE_CONTENT =
|
3614
|
+
PATTERN_ESCAPE = '[&"\'<> ]'
|
3615
|
+
PATTERN_ESCAPE_CONTENT = '[&"\'<> \\n]'
|
3612
3616
|
@@pattern_escape = Regexp.new(PATTERN_ESCAPE)
|
3613
3617
|
@@pattern_escape_content = Regexp.new(PATTERN_ESCAPE_CONTENT)
|
3614
3618
|
|
@@ -4022,7 +4026,7 @@ module Meteor
|
|
4022
4026
|
'>' => '>',
|
4023
4027
|
}
|
4024
4028
|
|
4025
|
-
PATTERN_ESCAPE =
|
4029
|
+
PATTERN_ESCAPE = '[&\"\'<>]'
|
4026
4030
|
PATTERN_UNESCAPE = '&(amp|quot|apos|gt|lt);'
|
4027
4031
|
|
4028
4032
|
@@pattern_and_1 = Regexp.new(AND_1)
|