meteor 0.9.32 → 0.9.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 38acec4e07ce5a63eb73cd6492d4caa5afc394069bce3f23ce51764a3c61dd3f
4
- data.tar.gz: c75abe853ec35ba1b33d4c3500860e6383d950c5600b106b1fe2d99ef7127604
3
+ metadata.gz: aee5fe80580b85e242d09084d6b8a62d9441e0f71b6dbed9b5547a7d9f7793c9
4
+ data.tar.gz: 6916f483a9c4c997a99ca621a61f85252e786da041390868a53bb4ae8aa14bb7
5
5
  SHA512:
6
- metadata.gz: '009a77b50208303a8b9a5ca029a3604fc8a0672d4c73cb09a589aeca30ce5d4525fa013fe928698715ba1cafe0e8f12043d4d457c20948cc87993a63fc8393b2'
7
- data.tar.gz: 8c0015e1995e0e3ef2172c3489d1860978bc0202e678fa63b6d1a4c0d0ed8b315f737d0814dc05bff2a9f4033549687a52160ed6c8cba5ec9d1d20cc5a68d717
6
+ metadata.gz: 34cbbd6f67e78e0a373dbe2f974386f7cd31d4975f84c8d00a3f8cf6c9f9db95d429a54a146f7f13753f5e9381f2bdebd4dbf40b64d6d44084170a20591e308e
7
+ data.tar.gz: 81bf0b803457c58f21c819e29866d02025d8c0749f29665c4dbd40821e3dcbd06a04a271518c25d814bd6c40a7c63af41d58a2d48feb394098b490d4cf15422b
data/ChangeLog CHANGED
@@ -1,3 +1,7 @@
1
+ == 0.9.33 / 2026-07-04 Yasumasa Ashida <ys.ashida@gmail.com>
2
+
3
+ * Refactoring
4
+
1
5
  == 0.9.32 / 2026-07-04 Yasumasa Ashida <ys.ashida@gmail.com>
2
6
 
3
7
  * Refactoring
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- meteor (0.9.32)
4
+ meteor (0.9.33)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -17,33 +17,33 @@ module Meteor
17
17
  class Kernel < Meteor::Parser
18
18
  # find
19
19
  # E
20
- PATTERN_FIND_1 = '^([^,\\[\\]#\\.]+)$'
20
+ PATTERN_FIND_one = '^([^,\\[\\]#\\.]+)$'
21
21
  # # id_attribute_value
22
- PATTERN_FIND_2_1 = '^#([^\\.,\\[\\]#][^,\\[\\]#]*)$'
22
+ PATTERN_FIND_two_one = '^#([^\\.,\\[\\]#][^,\\[\\]#]*)$'
23
23
  # .class_attribute_value
24
- PATTERN_FIND_2_2 = '^\\.([^\\.,\\[\\]#][^,\\[\\]#]*)$'
24
+ PATTERN_FIND_two_two = '^\\.([^\\.,\\[\\]#][^,\\[\\]#]*)$'
25
25
  # [attribute_name=attribute_value]
26
- PATTERN_FIND_2_3 = '^\\[([^\\[\\],]+)=([^\\[\\],]+)\\]$'
26
+ PATTERN_FIND_two_three = '^\\[([^\\[\\],]+)=([^\\[\\],]+)\\]$'
27
27
  # E[attribute_name=attribute_value]
28
- PATTERN_FIND_3_1 = '^([^\\.,\\[\\]#][^,\\[\\]#]+)\\[([^,\\[\\]]+)=([^,\\[\\]]+)\\]$'
28
+ PATTERN_FIND_three_one = '^([^\\.,\\[\\]#][^,\\[\\]#]+)\\[([^,\\[\\]]+)=([^,\\[\\]]+)\\]$'
29
29
  # E# id_attribute_value
30
- PATTERN_FIND_3_2 = '^([^\\.,\\[\\]#][^,\\[\\]#]+)#([^\\.,\\[\\]#][^,\\[\\]#]*)$'
30
+ PATTERN_FIND_three_two = '^([^\\.,\\[\\]#][^,\\[\\]#]+)#([^\\.,\\[\\]#][^,\\[\\]#]*)$'
31
31
  # E.class_attribute_value
32
- PATTERN_FIND_3_3 = '^([^\\.,\\[\\]#][^,\\[\\]#]+)\\.([^\\.,\\[\\]#][^,\\[\\]#]*)$'
32
+ PATTERN_FIND_three_three = '^([^\\.,\\[\\]#][^,\\[\\]#]+)\\.([^\\.,\\[\\]#][^,\\[\\]#]*)$'
33
33
  # [attribute_name1=attribute_value1][attribute_name2=attribute_value2]
34
- PATTERN_FIND_4 = '^\\[([^,]+)=([^,]+)\\]\\[([^,]+)=([^,]+)\\]$'
34
+ PATTERN_FIND_four = '^\\[([^,]+)=([^,]+)\\]\\[([^,]+)=([^,]+)\\]$'
35
35
  # E[attribute_name1=attribute_value1][attribute_name2=attribute_value2]
36
- PATTERN_FIND_5 = '^([^\\.,\\[\\]#][^,\\[\\]#]+)\\[([^,]+)=([^,]+)\\]\\[([^,]+)=([^,]+)\\]$'
37
-
38
- @@pattern_find_1 = Regexp.new(PATTERN_FIND_1)
39
- @@pattern_find_2_1 = Regexp.new(PATTERN_FIND_2_1)
40
- @@pattern_find_2_2 = Regexp.new(PATTERN_FIND_2_2)
41
- @@pattern_find_2_3 = Regexp.new(PATTERN_FIND_2_3)
42
- @@pattern_find_3_1 = Regexp.new(PATTERN_FIND_3_1)
43
- @@pattern_find_3_2 = Regexp.new(PATTERN_FIND_3_2)
44
- @@pattern_find_3_3 = Regexp.new(PATTERN_FIND_3_3)
45
- @@pattern_find_4 = Regexp.new(PATTERN_FIND_4)
46
- @@pattern_find_5 = Regexp.new(PATTERN_FIND_5)
36
+ PATTERN_FIND_five = '^([^\\.,\\[\\]#][^,\\[\\]#]+)\\[([^,]+)=([^,]+)\\]\\[([^,]+)=([^,]+)\\]$'
37
+
38
+ @@pattern_find_one = Regexp.new(PATTERN_FIND_one)
39
+ @@pattern_find_two_one = Regexp.new(PATTERN_FIND_two_one)
40
+ @@pattern_find_two_two = Regexp.new(PATTERN_FIND_two_two)
41
+ @@pattern_find_two_three = Regexp.new(PATTERN_FIND_two_three)
42
+ @@pattern_find_three_one = Regexp.new(PATTERN_FIND_three_one)
43
+ @@pattern_find_three_two = Regexp.new(PATTERN_FIND_three_two)
44
+ @@pattern_find_three_three = Regexp.new(PATTERN_FIND_three_three)
45
+ @@pattern_find_four = Regexp.new(PATTERN_FIND_four)
46
+ @@pattern_find_five = Regexp.new(PATTERN_FIND_five)
47
47
 
48
48
  @@pattern_set_mono1 = Regexp.new('\\A[^<>]*\\Z')
49
49
 
@@ -83,7 +83,7 @@ module Meteor
83
83
 
84
84
  PATTERN_UNESCAPE = '&(amp|quot|apos|gt|lt|nbsp);'
85
85
  @@pattern_unescape = Regexp.new(PATTERN_UNESCAPE)
86
- @@pattern_br_2 = Regexp.new(BR_RE)
86
+ @@pattern_br_two = Regexp.new(BR_RE)
87
87
 
88
88
  attr_accessor :element_cache, :doc_type, :document_hook, :element_hook
89
89
 
@@ -297,7 +297,7 @@ module Meteor
297
297
  if @res[1]
298
298
  element_void_one(name)
299
299
  else
300
- # puts '---element_normal_1'
300
+ # puts '---element_normal_one'
301
301
  element_normal_one(name)
302
302
  end
303
303
  # else
@@ -377,14 +377,14 @@ module Meteor
377
377
  quote_name(name)
378
378
  end
379
379
 
380
- @pattern_cc_1 = element_pattern_three
380
+ @pattern_cc_one = element_pattern_three
381
381
 
382
- @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_1)
382
+ @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_one)
383
383
  @res1 = @pattern.match(@root.document)
384
384
 
385
385
  if @res1 && @res1[1] || !@res1
386
386
  @res2 = element_normal_three_two
387
- @pattern_cc_2 = @pattern_cc
387
+ @pattern_cc_two = @pattern_cc
388
388
 
389
389
  # puts @res2.captures.length
390
390
  # puts @res2.regexp.to_s
@@ -393,7 +393,7 @@ module Meteor
393
393
  if @res1 && @res2
394
394
  if @res1.begin(0) < @res2.begin(0)
395
395
  @res = @res1
396
- # @pattern_cc = @pattern_cc_1
396
+ # @pattern_cc = @pattern_cc_one
397
397
  if @res[1]
398
398
  element_void_three(name)
399
399
  else
@@ -401,12 +401,12 @@ module Meteor
401
401
  end
402
402
  elsif @res1.begin(0) > @res2.begin(0)
403
403
  @res = @res2
404
- # @pattern_cc = @pattern_cc_2
404
+ # @pattern_cc = @pattern_cc_two
405
405
  element_normal_three_one(name)
406
406
  end
407
407
  elsif @res1 && !@res2
408
408
  @res = @res1
409
- # @pattern_cc = @pattern_cc_1
409
+ # @pattern_cc = @pattern_cc_one
410
410
  if @res[1]
411
411
  element_void_three(name)
412
412
  else
@@ -414,7 +414,7 @@ module Meteor
414
414
  end
415
415
  elsif @res2 && !@res1
416
416
  @res = @res2
417
- # @pattern_cc = @pattern_cc_2
417
+ # @pattern_cc = @pattern_cc_two
418
418
  element_normal_three_one(name)
419
419
  else
420
420
  puts(Meteor::Exception::NoSuchElementException.new(name, attr_name, attr_value).message) if @error_check
@@ -525,31 +525,31 @@ module Meteor
525
525
  private :element_normal_three_two
526
526
 
527
527
  def element_pattern_normal_three_two
528
- # @pattern_cc_1 = String.new('') << "<" << @_name << '(\\s[^<>]*' << @_attr_name << '="'
529
- # @pattern_cc_1 << @_attr_value << '(?:[^<>\\/]*>|(?:(?!([^<>]*\\/>))[^<>]*>)))'
530
- @pattern_cc_1 = "<#{@_name}(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}(?:[^<>\\/]*>|(?:(?!([^<>]*\\/>))[^<>]*>)))"
531
- @pattern_cc_1b = String.new('') << '<' << @_name << '(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
532
- # @pattern_cc_1b = "<#{@_name}(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))"
533
- # @pattern_cc_1_1 = String.new('') << "<" << @_name << '(\\s[^<>]*' << @_attr_name << '="'
534
- # @pattern_cc_1_1 << @_attr_value << '"(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))('
535
- @pattern_cc_1_1 = "<#{@_name}(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\"(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))("
536
- @pattern_cc_1_2 = String.new('') << '.*?<' << @_name << '(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
537
- # @pattern_cc_1_2 = ".*?<#{@_name}(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))"
538
-
539
- @pattern_cc_2 = String.new('') << '<\\/' << @_name << '>'
540
- # @pattern_cc_2 = String.new('') << "<\\/#{@_name}>"
541
- @pattern_cc_2_1 = String.new('') << '.*?<\\/' << @_name << '>'
542
- # @pattern_cc_2_1 = ".*?<\\/#{@_name}>"
543
- @pattern_cc_2_2 = String.new('') << '.*?)<\\/' << @_name << '>'
544
- # @pattern_cc_2_2 = ".*?)<\\/#{@_name}>"
528
+ # @pattern_cc_one = String.new('') << "<" << @_name << '(\\s[^<>]*' << @_attr_name << '="'
529
+ # @pattern_cc_one << @_attr_value << '(?:[^<>\\/]*>|(?:(?!([^<>]*\\/>))[^<>]*>)))'
530
+ @pattern_cc_one = "<#{@_name}(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}(?:[^<>\\/]*>|(?:(?!([^<>]*\\/>))[^<>]*>)))"
531
+ @pattern_cc_oneb = String.new('') << '<' << @_name << '(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
532
+ # @pattern_cc_oneb = "<#{@_name}(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))"
533
+ # @pattern_cc_one_one = String.new('') << "<" << @_name << '(\\s[^<>]*' << @_attr_name << '="'
534
+ # @pattern_cc_one_one << @_attr_value << '"(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))('
535
+ @pattern_cc_one_one = "<#{@_name}(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\"(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))("
536
+ @pattern_cc_one_two = String.new('') << '.*?<' << @_name << '(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
537
+ # @pattern_cc_one_two = ".*?<#{@_name}(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))"
538
+
539
+ @pattern_cc_two = String.new('') << '<\\/' << @_name << '>'
540
+ # @pattern_cc_two = String.new('') << "<\\/#{@_name}>"
541
+ @pattern_cc_two_one = String.new('') << '.*?<\\/' << @_name << '>'
542
+ # @pattern_cc_two_one = ".*?<\\/#{@_name}>"
543
+ @pattern_cc_two_two = String.new('') << '.*?)<\\/' << @_name << '>'
544
+ # @pattern_cc_two_two = ".*?)<\\/#{@_name}>"
545
545
 
546
546
  # search of normal element (内容あり要素検索)
547
- @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_1)
547
+ @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_one)
548
548
 
549
549
  @sbuf = String.new('')
550
550
 
551
- @pattern_2 = Meteor::Core::Util::PatternCache.get(@pattern_cc_2)
552
- @pattern_1b = Meteor::Core::Util::PatternCache.get(@pattern_cc_1b)
551
+ @pattern_two = Meteor::Core::Util::PatternCache.get(@pattern_cc_two)
552
+ @pattern_oneb = Meteor::Core::Util::PatternCache.get(@pattern_cc_oneb)
553
553
 
554
554
  @cnt = 0
555
555
 
@@ -606,14 +606,14 @@ module Meteor
606
606
  @elm_ = nil
607
607
  end
608
608
 
609
- # @pattern_cc_1 = "<([^<>\"]*)(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\"[^<>]*)\\/>|<([^<>\"]*)(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\"[^<>]*)>(((?!(\\3[^<>]*>)).)*)<\\/\\3>"
609
+ # @pattern_cc_one = "<([^<>\"]*)(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\"[^<>]*)\\/>|<([^<>\"]*)(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\"[^<>]*)>(((?!(\\3[^<>]*>)).)*)<\\/\\3>"
610
610
  #
611
- # @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_1)
611
+ # @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_one)
612
612
  # @res1 = @pattern.match(@root.document)
613
613
  #
614
614
  # if @res1 && @res1[1] || !@res1
615
615
  # @res2 = element_normal_two_two
616
- # @pattern_cc_2 = @pattern_cc
616
+ # @pattern_cc_two = @pattern_cc
617
617
  #
618
618
  # # puts @res2.captures.length
619
619
  # # puts @res2.regexp.to_s
@@ -622,7 +622,7 @@ module Meteor
622
622
  # if @res1 && @res2
623
623
  # if @res1.begin(0) < @res2.begin(0)
624
624
  # @res = @res1
625
- # # @pattern_cc = @pattern_cc_1
625
+ # # @pattern_cc = @pattern_cc_one
626
626
  # if @res[1]
627
627
  # element_void_two
628
628
  # else
@@ -630,12 +630,12 @@ module Meteor
630
630
  # end
631
631
  # elsif @res1.begin(0) > @res2.begin(0)
632
632
  # @res = @res2
633
- # # @pattern_cc = @pattern_cc_2
633
+ # # @pattern_cc = @pattern_cc_two
634
634
  # element_normal_two_one
635
635
  # end
636
636
  # elsif @res1 && !@res2
637
637
  # @res = @res1
638
- # # @pattern_cc = @pattern_cc_1
638
+ # # @pattern_cc = @pattern_cc_one
639
639
  # if @res[1]
640
640
  # element_void_two
641
641
  # else
@@ -643,7 +643,7 @@ module Meteor
643
643
  # end
644
644
  # elsif @res2 && !@res1
645
645
  # @res = @res2
646
- # # @pattern_cc = @pattern_cc_2
646
+ # # @pattern_cc = @pattern_cc_two
647
647
  # element_normal_two_one
648
648
  # else
649
649
  # if @error_check
@@ -743,12 +743,12 @@ module Meteor
743
743
  # private :element_normal_two_one
744
744
  #
745
745
  # def element_normal_two_two
746
- # # @pattern_cc_1 = String.new('') << "<" << @_name << '(\\s[^<>]*' << @_attr_name << '="'
747
- # # @pattern_cc_1 << @_attr_value << '(?:[^<>\\/]*>|(?:(?!([^<>]*\\/>))[^<>]*>)))'
748
- # @pattern_cc_1 = "<([^<>\"]*)(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}(?:[^<>\\/]*>|(?:(?!([^<>]*\\/>))[^<>]*>)))"
746
+ # # @pattern_cc_one = String.new('') << "<" << @_name << '(\\s[^<>]*' << @_attr_name << '="'
747
+ # # @pattern_cc_one << @_attr_value << '(?:[^<>\\/]*>|(?:(?!([^<>]*\\/>))[^<>]*>)))'
748
+ # @pattern_cc_one = "<([^<>\"]*)(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}(?:[^<>\\/]*>|(?:(?!([^<>]*\\/>))[^<>]*>)))"
749
749
  #
750
750
  # # search of normal element (内容あり要素検索)
751
- # @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_1)
751
+ # @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_one)
752
752
  # @sbuf = String.new('')
753
753
  #
754
754
  # @cnt = 0
@@ -768,18 +768,18 @@ module Meteor
768
768
  # private :element_normal_two_two
769
769
  #
770
770
  # def create_pattern_two(args_cnt)
771
- # @pattern_cc_1b = String.new('') << "<" << @_name << '(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
772
- #
773
- # # @pattern_cc_1_1 = String.new('') << "<" << @_name << '(\\s[^<>]*' << @_attr_name << '="'
774
- # # @pattern_cc_1_1 << @_attr_value << '"(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))('
775
- # @pattern_cc_1_1 = "<#{@_name}(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\"(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))("
776
- # @pattern_cc_1_2 = String.new('') << '.*?<' << @_name << '(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
777
- # @pattern_cc_2 = String.new('') << '<\\/' << @_name << '>'
778
- # @pattern_cc_2_1 = String.new('') << '.*?<\/' << @_name << '>'
779
- # @pattern_cc_2_2 = String.new('') << '.*?)<\/' << @_name << '>'
780
- #
781
- # @pattern_2 = Meteor::Core::Util::PatternCache.get(@pattern_cc_2)
782
- # @pattern_1b = Meteor::Core::Util::PatternCache.get(@pattern_cc_1b)
771
+ # @pattern_cc_oneb = String.new('') << "<" << @_name << '(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
772
+ #
773
+ # # @pattern_cc_one_one = String.new('') << "<" << @_name << '(\\s[^<>]*' << @_attr_name << '="'
774
+ # # @pattern_cc_one_one << @_attr_value << '"(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))('
775
+ # @pattern_cc_one_one = "<#{@_name}(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\"(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))("
776
+ # @pattern_cc_one_two = String.new('') << '.*?<' << @_name << '(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
777
+ # @pattern_cc_two = String.new('') << '<\\/' << @_name << '>'
778
+ # @pattern_cc_two_one = String.new('') << '.*?<\/' << @_name << '>'
779
+ # @pattern_cc_two_two = String.new('') << '.*?)<\/' << @_name << '>'
780
+ #
781
+ # @pattern_two = Meteor::Core::Util::PatternCache.get(@pattern_cc_two)
782
+ # @pattern_oneb = Meteor::Core::Util::PatternCache.get(@pattern_cc_oneb)
783
783
  # end
784
784
  #
785
785
  # def element_void_two
@@ -817,14 +817,14 @@ module Meteor
817
817
  def element_five(name, attr_name1, attr_value1, attr_name2, attr_value2)
818
818
  quote_element_five(name, attr_name1, attr_value1, attr_name2, attr_value2)
819
819
 
820
- @pattern_cc_1 = "<#{@_name}(\\s[^<>]*(?:#{@_attr_name1}=\"#{@_attr_value1}\"[^<>]*#{@_attr_name2}=\"#{@_attr_value2}\"|#{@_attr_name2}=\"#{@_attr_value2}\"[^<>]*#{@_attr_name1}=\"#{@_attr_value1}\")[^<>]*)\\/>|<#{@_name}(\\s[^<>]*(?:#{@_attr_name1}=\"#{@_attr_value1}\"[^<>]*#{@_attr_name2}=\"#{@_attr_value2}\"|#{@_attr_name2}=\"#{@_attr_value2}\"[^<>]*#{@_attr_name1}=\"#{@_attr_value1}\")[^<>]*)>(((?!(#{@_name}[^<>]*>)).)*)<\\/#{@_name}>"
820
+ @pattern_cc_one = "<#{@_name}(\\s[^<>]*(?:#{@_attr_name1}=\"#{@_attr_value1}\"[^<>]*#{@_attr_name2}=\"#{@_attr_value2}\"|#{@_attr_name2}=\"#{@_attr_value2}\"[^<>]*#{@_attr_name1}=\"#{@_attr_value1}\")[^<>]*)\\/>|<#{@_name}(\\s[^<>]*(?:#{@_attr_name1}=\"#{@_attr_value1}\"[^<>]*#{@_attr_name2}=\"#{@_attr_value2}\"|#{@_attr_name2}=\"#{@_attr_value2}\"[^<>]*#{@_attr_name1}=\"#{@_attr_value1}\")[^<>]*)>(((?!(#{@_name}[^<>]*>)).)*)<\\/#{@_name}>"
821
821
 
822
- @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_1)
822
+ @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_one)
823
823
  @res1 = @pattern.match(@root.document)
824
824
 
825
825
  if @res1 && @res1[1] || !@res1
826
826
  @res2 = element_normal_five_two
827
- @pattern_cc_2 = @pattern_cc
827
+ @pattern_cc_two = @pattern_cc
828
828
 
829
829
  # puts @res2.captures.length
830
830
  # puts @res2.regexp.to_s
@@ -833,7 +833,7 @@ module Meteor
833
833
  if @res1 && @res2
834
834
  if @res1.begin(0) < @res2.begin(0)
835
835
  @res = @res1
836
- # @pattern_cc = @pattern_cc_1
836
+ # @pattern_cc = @pattern_cc_one
837
837
  if @res[1]
838
838
  element_void_five(name)
839
839
  else
@@ -841,12 +841,12 @@ module Meteor
841
841
  end
842
842
  elsif @res1.begin(0) > @res2.begin(0)
843
843
  @res = @res2
844
- # @pattern_cc = @pattern_cc_2
844
+ # @pattern_cc = @pattern_cc_two
845
845
  element_normal_five_one(name)
846
846
  end
847
847
  elsif @res1 && !@res2
848
848
  @res = @res1
849
- # @pattern_cc = @pattern_cc_1
849
+ # @pattern_cc = @pattern_cc_one
850
850
  if @res[1]
851
851
  element_void_five(name)
852
852
  else
@@ -854,7 +854,7 @@ module Meteor
854
854
  end
855
855
  elsif @res2 && !@res1
856
856
  @res = @res2
857
- # @pattern_cc = @pattern_cc_2
857
+ # @pattern_cc = @pattern_cc_two
858
858
  element_normal_five_one(name)
859
859
  else
860
860
  puts(Meteor::Exception::NoSuchElementException.new(name, attr_name, attr_value).message) if @error_check
@@ -958,38 +958,38 @@ module Meteor
958
958
  private :element_normal_five_two
959
959
 
960
960
  def element_pattern_normal_five_two
961
- # @pattern_cc_1 = String.new('') << "<" << @_name << '(\\s[^<>]*(?:' << @_attr_name1 << '="'
962
- # @pattern_cc_1 << @_attr_value1 << '"[^<>]*' << @_attr_name2 << '="'
963
- # @pattern_cc_1 << @_attr_value2 << '"|' << @_attr_name2 << '="'
964
- # @pattern_cc_1 << @_attr_value2 << '"[^<>]*' << @_attr_name1 << '="'
965
- # @pattern_cc_1 << @_attr_value1 << '")([^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>)))'
966
- @pattern_cc_1 = "<#{@_name}(\\s[^<>]*(?:#{@_attr_name1}=\"#{@_attr_value1}\"[^<>]*#{@_attr_name2}=\"#{@_attr_value2}\"|#{@_attr_name2}=\"#{@_attr_value2}\"[^<>]*#{@_attr_name1}=\"#{@_attr_value1}\")([^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>)))"
967
- @pattern_cc_1b = String.new('') << '<' << @_name << '(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
968
- # @pattern_cc_1b = "<#{@_name}(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))"
969
-
970
- # @pattern_cc_1_1 = String.new('') << "<" << @_name << '(\\s[^<>]*(?:' << @_attr_name1 << '="'
971
- # @pattern_cc_1_1 << @_attr_value1 << '"[^<>]*' << @_attr_name2 << '="'
972
- # @pattern_cc_1_1 << @_attr_value2 << '"|' << @_attr_name2 << '="'
973
- # @pattern_cc_1_1 << @_attr_value2 << '"[^<>]*' << @_attr_name1 << '="'
974
- # @pattern_cc_1_1 << @_attr_value1 << '")(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))('
975
- @pattern_cc_1_1 = "<#{@_name}(\\s[^<>]*(?:#{@_attr_name1}=\"#{@_attr_value1}\"[^<>]*#{@_attr_name2}=\"#{@_attr_value2}\"|#{@_attr_name2}=\"#{@_attr_value2}\"[^<>]*#{@_attr_name1}=\"#{@_attr_value1}\")(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))("
976
- @pattern_cc_1_2 = String.new('') << '.*?<' << @_name << '(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
977
- @pattern_cc_2 = String.new('') << '<\\/' << @_name << '>'
978
- @pattern_cc_2_1 = String.new('') << '.*?<\\/' << @_name << '>'
979
- @pattern_cc_2_2 = String.new('') << '.*?)<\\/' << @_name << '>'
980
-
981
- # @pattern_cc_1_2 = ".*?<#{@_name}(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))"
982
- # @pattern_cc_2 = String.new('') << "<\\/#{@_name}>"
983
- # @pattern_cc_2_1 = ".*?<\\/#{@_name}>"
984
- # @pattern_cc_2_2 = ".*?)<\\/#{@_name}>"
961
+ # @pattern_cc_one = String.new('') << "<" << @_name << '(\\s[^<>]*(?:' << @_attr_name1 << '="'
962
+ # @pattern_cc_one << @_attr_value1 << '"[^<>]*' << @_attr_name2 << '="'
963
+ # @pattern_cc_one << @_attr_value2 << '"|' << @_attr_name2 << '="'
964
+ # @pattern_cc_one << @_attr_value2 << '"[^<>]*' << @_attr_name1 << '="'
965
+ # @pattern_cc_one << @_attr_value1 << '")([^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>)))'
966
+ @pattern_cc_one = "<#{@_name}(\\s[^<>]*(?:#{@_attr_name1}=\"#{@_attr_value1}\"[^<>]*#{@_attr_name2}=\"#{@_attr_value2}\"|#{@_attr_name2}=\"#{@_attr_value2}\"[^<>]*#{@_attr_name1}=\"#{@_attr_value1}\")([^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>)))"
967
+ @pattern_cc_oneb = String.new('') << '<' << @_name << '(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
968
+ # @pattern_cc_oneb = "<#{@_name}(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))"
969
+
970
+ # @pattern_cc_one_one = String.new('') << "<" << @_name << '(\\s[^<>]*(?:' << @_attr_name1 << '="'
971
+ # @pattern_cc_one_one << @_attr_value1 << '"[^<>]*' << @_attr_name2 << '="'
972
+ # @pattern_cc_one_one << @_attr_value2 << '"|' << @_attr_name2 << '="'
973
+ # @pattern_cc_one_one << @_attr_value2 << '"[^<>]*' << @_attr_name1 << '="'
974
+ # @pattern_cc_one_one << @_attr_value1 << '")(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))('
975
+ @pattern_cc_one_one = "<#{@_name}(\\s[^<>]*(?:#{@_attr_name1}=\"#{@_attr_value1}\"[^<>]*#{@_attr_name2}=\"#{@_attr_value2}\"|#{@_attr_name2}=\"#{@_attr_value2}\"[^<>]*#{@_attr_name1}=\"#{@_attr_value1}\")(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))("
976
+ @pattern_cc_one_two = String.new('') << '.*?<' << @_name << '(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
977
+ @pattern_cc_two = String.new('') << '<\\/' << @_name << '>'
978
+ @pattern_cc_two_one = String.new('') << '.*?<\\/' << @_name << '>'
979
+ @pattern_cc_two_two = String.new('') << '.*?)<\\/' << @_name << '>'
980
+
981
+ # @pattern_cc_one_two = ".*?<#{@_name}(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))"
982
+ # @pattern_cc_two = String.new('') << "<\\/#{@_name}>"
983
+ # @pattern_cc_two_one = ".*?<\\/#{@_name}>"
984
+ # @pattern_cc_two_two = ".*?)<\\/#{@_name}>"
985
985
 
986
986
  # search of normal element (内容あり要素検索)
987
- @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_1)
987
+ @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_one)
988
988
 
989
989
  @sbuf = String.new('')
990
990
 
991
- @pattern_2 = Meteor::Core::Util::PatternCache.get(@pattern_cc_2)
992
- @pattern_1b = Meteor::Core::Util::PatternCache.get(@pattern_cc_1b)
991
+ @pattern_two = Meteor::Core::Util::PatternCache.get(@pattern_cc_two)
992
+ @pattern_oneb = Meteor::Core::Util::PatternCache.get(@pattern_cc_oneb)
993
993
  @cnt = 0
994
994
 
995
995
  create_element_pattern
@@ -1037,7 +1037,7 @@ module Meteor
1037
1037
  def element_four(attr_name1, attr_value1, attr_name2, attr_value2)
1038
1038
  quote_element_four(attr_name1, attr_value1, attr_name2, attr_value2)
1039
1039
 
1040
- element_pattern_4
1040
+ element_pattern_four
1041
1041
 
1042
1042
  @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
1043
1043
  @res = @pattern.match(@root.document)
@@ -1087,48 +1087,48 @@ module Meteor
1087
1087
  if @res
1088
1088
  if @cnt > ZERO
1089
1089
  @position2 = @res.end(0)
1090
- @res = @pattern_2.match(@root.document, @position)
1090
+ @res = @pattern_two.match(@root.document, @position)
1091
1091
 
1092
1092
  if @res
1093
1093
  @position = @res.end(0)
1094
1094
 
1095
1095
  if @position > @position2
1096
- @sbuf << @pattern_cc_1_2
1096
+ @sbuf << @pattern_cc_one_two
1097
1097
  @cnt += 1
1098
1098
  @position = @position2
1099
1099
  else
1100
1100
  @cnt -= ONE
1101
1101
 
1102
1102
  if @cnt != ZERO
1103
- @sbuf << @pattern_cc_2_1
1103
+ @sbuf << @pattern_cc_two_one
1104
1104
  else
1105
- @sbuf << @pattern_cc_2_2
1105
+ @sbuf << @pattern_cc_two_two
1106
1106
  break
1107
1107
  end
1108
1108
  end
1109
1109
  else
1110
- @sbuf << @pattern_cc_1_2
1110
+ @sbuf << @pattern_cc_one_two
1111
1111
  @cnt += 1
1112
1112
  @position = @position2
1113
1113
  end
1114
1114
  else
1115
1115
  @position = @res.end(0)
1116
- @sbuf << @pattern_cc_1_1
1116
+ @sbuf << @pattern_cc_one_one
1117
1117
  @cnt += ONE
1118
1118
  end
1119
1119
  else
1120
1120
  break if @cnt == ZERO
1121
1121
 
1122
- @res = @pattern_2.match(@root.document, @position)
1122
+ @res = @pattern_two.match(@root.document, @position)
1123
1123
 
1124
1124
  break unless @res
1125
1125
 
1126
1126
  @cnt -= ONE
1127
1127
 
1128
1128
  if @cnt != ZERO
1129
- @sbuf << @pattern_cc_2_1
1129
+ @sbuf << @pattern_cc_two_one
1130
1130
  else
1131
- @sbuf << @pattern_cc_2_2
1131
+ @sbuf << @pattern_cc_two_two
1132
1132
  break
1133
1133
  end
1134
1134
 
@@ -1136,7 +1136,7 @@ module Meteor
1136
1136
 
1137
1137
  end
1138
1138
 
1139
- @pattern = @pattern_1b
1139
+ @pattern = @pattern_oneb
1140
1140
  end
1141
1141
  end
1142
1142
 
@@ -1149,27 +1149,27 @@ module Meteor
1149
1149
  # if @res
1150
1150
  # if @cnt > ZERO
1151
1151
  # @position2 = @res.end(0)
1152
- # @res = @pattern_2.match(@root.document, @position)
1152
+ # @res = @pattern_two.match(@root.document, @position)
1153
1153
  #
1154
1154
  # if @res
1155
1155
  # @position = @res.end(0)
1156
1156
  #
1157
1157
  # if @position > @position2
1158
- # @sbuf << @pattern_cc_1_2
1158
+ # @sbuf << @pattern_cc_one_two
1159
1159
  # @cnt += 1
1160
1160
  # @position = @position2
1161
1161
  # else
1162
1162
  # @cnt -= ONE
1163
1163
  #
1164
1164
  # if @cnt != ZERO
1165
- # @sbuf << @pattern_cc_2_1
1165
+ # @sbuf << @pattern_cc_two_one
1166
1166
  # else
1167
- # @sbuf << @pattern_cc_2_2
1167
+ # @sbuf << @pattern_cc_two_two
1168
1168
  # break
1169
1169
  # end
1170
1170
  # end
1171
1171
  # else
1172
- # @sbuf << @pattern_cc_1_2
1172
+ # @sbuf << @pattern_cc_one_two
1173
1173
  # @cnt += 1
1174
1174
  # @position = @position2
1175
1175
  # end
@@ -1179,7 +1179,7 @@ module Meteor
1179
1179
  #
1180
1180
  # create_pattern_two(args_cnt)
1181
1181
  #
1182
- # @sbuf << @pattern_cc_1_1
1182
+ # @sbuf << @pattern_cc_one_one
1183
1183
  # @cnt += ONE
1184
1184
  # end
1185
1185
  # else
@@ -1187,15 +1187,15 @@ module Meteor
1187
1187
  # break
1188
1188
  # end
1189
1189
  #
1190
- # @res = @pattern_2.match(@root.document, @position)
1190
+ # @res = @pattern_two.match(@root.document, @position)
1191
1191
  #
1192
1192
  # if @res
1193
1193
  # @cnt -= ONE
1194
1194
  #
1195
1195
  # if @cnt != ZERO
1196
- # @sbuf << @pattern_cc_2_1
1196
+ # @sbuf << @pattern_cc_two_one
1197
1197
  # else
1198
- # @sbuf << @pattern_cc_2_2
1198
+ # @sbuf << @pattern_cc_two_two
1199
1199
  # break
1200
1200
  # end
1201
1201
  #
@@ -1205,16 +1205,16 @@ module Meteor
1205
1205
  # end
1206
1206
  # end
1207
1207
  #
1208
- # @pattern = @pattern_1b
1208
+ # @pattern = @pattern_oneb
1209
1209
  # end
1210
1210
  # end
1211
1211
  #
1212
- # private :create_element_pattern_2
1212
+ # private :create_element_pattern_two
1213
1213
  #
1214
- # # def create_pattern_2
1214
+ # # def create_pattern_two
1215
1215
  # # end
1216
1216
  #
1217
- # # private :create_pattern_2
1217
+ # # private :create_pattern_two
1218
1218
 
1219
1219
  # get elements (要素を取得する)
1220
1220
  # @overload elements(name)
@@ -1383,31 +1383,31 @@ module Meteor
1383
1383
  case open_count
1384
1384
  when ZERO
1385
1385
  if selector.count('#.').zero?
1386
- elements_(@res[1]) if (@res = @@pattern_find_1.match(selector))
1386
+ elements_(@res[1]) if (@res = @@pattern_find_one.match(selector))
1387
1387
  elsif selector.count('#') == 1
1388
1388
  if selector[0] == '#'
1389
- elements_('id', @res[1]) if (@res = @@pattern_find_2_1.match(selector))
1390
- elsif (@res = @@pattern_find_3_2.match(selector))
1389
+ elements_('id', @res[1]) if (@res = @@pattern_find_two_one.match(selector))
1390
+ elsif (@res = @@pattern_find_three_two.match(selector))
1391
1391
  elements_(@res[1], 'id', @res[2])
1392
1392
  end
1393
1393
  elsif selector.count('.') == 1
1394
1394
  if selector[0] == '.'
1395
- elements_('class', @res[1]) if (@res = @@pattern_find_2_2.match(selector))
1396
- elsif (@res = @@pattern_find_3_3.match(selector))
1395
+ elements_('class', @res[1]) if (@res = @@pattern_find_two_two.match(selector))
1396
+ elsif (@res = @@pattern_find_three_three.match(selector))
1397
1397
  elements_(@res[1], 'class', @res[2])
1398
1398
  end
1399
1399
  end
1400
1400
 
1401
1401
  when ONE
1402
1402
  if selector[0] == '['
1403
- elements_(@res[1], @res[2]) if (@res = @@pattern_find_2_3.match(selector))
1404
- elsif (@res = @@pattern_find_3_1.match(selector))
1403
+ elements_(@res[1], @res[2]) if (@res = @@pattern_find_two_three.match(selector))
1404
+ elsif (@res = @@pattern_find_three_one.match(selector))
1405
1405
  elements_(@res[1], @res[2], @res[3])
1406
1406
  end
1407
1407
  when 2
1408
1408
  if selector[0] == '['
1409
- elements_(@res[1], @res[2], @res[3], @res[4]) if (@res = @@pattern_find_4.match(selector))
1410
- elsif (@res = @@pattern_find_5.match(selector))
1409
+ elements_(@res[1], @res[2], @res[3], @res[4]) if (@res = @@pattern_find_four.match(selector))
1410
+ elsif (@res = @@pattern_find_five.match(selector))
1411
1411
  elements_(@res[1], @res[2], @res[3], @res[4], @res[5])
1412
1412
  end
1413
1413
  end
@@ -2136,10 +2136,10 @@ module Meteor
2136
2136
  private :unescape
2137
2137
 
2138
2138
  def br_to_newline(content)
2139
- return unless (elm.cx || !is_match(@@match_tag_2, elm.name)) && content.include?(BR)
2139
+ return unless (elm.cx || !is_match(@@match_tag_two, elm.name)) && content.include?(BR)
2140
2140
 
2141
2141
  # 「<br>」->「¥r?¥n」
2142
- content.gsub!(@@pattern_br_2, @root.newline)
2142
+ content.gsub!(@@pattern_br_two, @root.newline)
2143
2143
  end
2144
2144
 
2145
2145
  private :br_to_newline
@@ -57,7 +57,7 @@ module Meteor
57
57
  def initialize(*args)
58
58
  super()
59
59
  @@match_tag = MATCH_TAG
60
- @@MATCH_TAG_NNE = MATCH_TAG_NNE
60
+ @@match_tag_nne = MATCH_TAG_NNE
61
61
  @@attr_bool = ATTR_BOOL
62
62
  @doc_type = Parser::HTML
63
63
  case args.length
@@ -17,9 +17,9 @@ module Meteor
17
17
  # @@match_tag = "br|hr|img|input|meta|base"
18
18
  # [Array] void elemets (空要素)
19
19
  @@match_tag = %w[br hr img input meta base]
20
- # @@match_tag_2 = "textarea|option|pre"
20
+ # @@match_tag_two = "textarea|option|pre"
21
21
  # [Array] elements where line breaks do not need to be converted to <br> (改行を<br>に変換する必要のない要素)
22
- @@match_tag_2 = %w[textarea option pre]
22
+ @@match_tag_two = %w[textarea option pre]
23
23
 
24
24
  # [Array] non-nestable elements (入れ子にできない要素)
25
25
  @@match_tag_nne = %w[texarea select option form fieldset]
@@ -69,7 +69,7 @@ module Meteor
69
69
  @@pattern_get_attrs_map2 = Regexp.new(GET_ATTRS_MAP2)
70
70
 
71
71
  # @@pattern_match_tag = Regexp.new(@@match_tag)
72
- # @@pattern_match_tag2 = Regexp.new(@@match_tag_2)
72
+ # @@pattern_match_tag2 = Regexp.new(@@match_tag_two)
73
73
 
74
74
  #
75
75
  # initializer (イニシャライザ)
@@ -13,9 +13,9 @@ module Meteor
13
13
  BR = '<br/>'
14
14
  BR_RE = '<br\\/>'
15
15
 
16
- # @@match_tag_2 = "textarea|option|pre"
16
+ # @@match_tag_two = "textarea|option|pre"
17
17
  # [Array] elements where line breaks do not need to be converted to <br> (改行を<br/>に変換する必要のない要素)
18
- @@match_tag_2 = %w[textarea option pre]
18
+ @@match_tag_two = %w[textarea option pre]
19
19
 
20
20
  # [Array] boolean attributes (論理値で指定する属性)
21
21
  @@attr_bool = %w[disabled readonly checked selected multiple]
@@ -65,7 +65,7 @@ module Meteor
65
65
  @@pattern_multiple_r = Regexp.new(MULTIPLE_R)
66
66
 
67
67
  # @@pattern_match_tag = Regexp.new(@@match_tag)
68
- # @@pattern_match_tag2 = Regexp.new(@@match_tag_2)
68
+ # @@pattern_match_tag2 = Regexp.new(@@match_tag_two)
69
69
 
70
70
  #
71
71
  # initializer (イニシャライザ)
data/lib/meteor.rb CHANGED
@@ -18,7 +18,7 @@ require 'meteor/ml/xhtml4/parser_impl'
18
18
  require 'meteor/ml/xhtml/parser_impl'
19
19
  require 'meteor/ml/xml/parser_impl'
20
20
 
21
- # Meteor - A lightweight (X)HTML(5) & XML parser
21
+ # Meteor - A lightweight (X)HTML & XML parser
22
22
  #
23
23
  # Copyright (C) 2008-present Yasumasa Ashida.
24
24
  #
@@ -37,11 +37,11 @@ require 'meteor/ml/xml/parser_impl'
37
37
  # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
38
38
  #
39
39
  # @author Yasumasa Ashida
40
- # @version 0.9.32
40
+ # @version 0.9.33
41
41
  #
42
42
 
43
43
  module Meteor
44
- VERSION = '0.9.32'
44
+ VERSION = '0.9.33'
45
45
 
46
46
  # require 'fileutils'
47
47
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: meteor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.32
4
+ version: 0.9.33
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yasumasa Ashida