meteor 0.9.11 → 0.9.12

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.
data/lib/meteor.rb CHANGED
@@ -1,4 +1,6 @@
1
1
  # -* coding: UTF-8 -*-
2
+ # frozen_string_literal: true
3
+
2
4
  # Meteor - A lightweight (X)HTML(5) & XML parser
3
5
  #
4
6
  # Copyright (C) 2008-2021 Yasumasa Ashida.
@@ -18,12 +20,12 @@
18
20
  # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
21
  #
20
22
  # @author Yasumasa Ashida
21
- # @version 0.9.9.0
23
+ # @version 0.9.12
22
24
  #
23
25
 
24
26
  module Meteor
25
27
 
26
- VERSION = '0.9.11'.freeze
28
+ VERSION = '0.9.12'
27
29
 
28
30
  #require 'fileutils'
29
31
 
@@ -243,27 +245,27 @@ module Meteor
243
245
  case @parser.doc_type
244
246
  when Parser::HTML, Parser::HTML4
245
247
  if @cx
246
- #@pattern_cc = '' << SET_CX_1 << elm.name << SPACE << elm.attributes << SET_CX_2 << elm.mixed_content << SET_CX_3 << elm.name << SET_CX_4
248
+ #@pattern_cc = String.new('') << SET_CX_1 << elm.name << SPACE << elm.attributes << SET_CX_2 << elm.mixed_content << SET_CX_3 << elm.name << SET_CX_4
247
249
  @document = "<!-- @#{@name} #{@attributes} -->#{@mixed_content}<!-- /@#{@name} -->"
248
250
  else
249
251
  if @empty
250
- #@pattern_cc = '' << TAG_OPEN << elm.name << elm.attributes << TAG_CLOSE << elm.mixed_content << TAG_OPEN3 << elm.name << TAG_CLOSE
252
+ #@pattern_cc = String.new('') << TAG_OPEN << elm.name << elm.attributes << TAG_CLOSE << elm.mixed_content << TAG_OPEN3 << elm.name << TAG_CLOSE
251
253
  @document = "<#{@name}#{@attributes}>#{@mixed_content}</#{@name}>"
252
254
  else
253
- @document = '' << Meteor::Core::Kernel::TAG_OPEN << @name << @attributes << Meteor::Core::Kernel::TAG_CLOSE
255
+ @document = String.new('') << Meteor::Core::Kernel::TAG_OPEN << @name << @attributes << Meteor::Core::Kernel::TAG_CLOSE
254
256
  #@document = "<#{@name}#{@attributes}>"
255
257
  end
256
258
  end
257
259
  when Parser::XHTML, Parser::XHTML4, Parser::XML
258
260
  if @cx
259
- #@pattern_cc = '' << SET_CX_1 << elm.name << SPACE << elm.attributes << SET_CX_2 << elm.mixed_content << SET_CX_3 << elm.name << SET_CX_4
261
+ #@pattern_cc = String.new('') << SET_CX_1 << elm.name << SPACE << elm.attributes << SET_CX_2 << elm.mixed_content << SET_CX_3 << elm.name << SET_CX_4
260
262
  @document = "<!-- @#{@name} #{@attributes} -->#{@mixed_content}<!-- /@#{@name} -->"
261
263
  else
262
264
  if @empty
263
- #@pattern_cc = '' << TAG_OPEN << elm.name << elm.attributes << TAG_CLOSE << elm.mixed_content << TAG_OPEN3 << elm.name << TAG_CLOSE
265
+ #@pattern_cc = String.new('') << TAG_OPEN << elm.name << elm.attributes << TAG_CLOSE << elm.mixed_content << TAG_OPEN3 << elm.name << TAG_CLOSE
264
266
  @document = "<#{@name}#{@attributes}>#{@mixed_content}</#{@name}>"
265
267
  else
266
- @document = '' << Meteor::Core::Kernel::TAG_OPEN << @name << @attributes << Meteor::Core::Kernel::TAG_CLOSE3
268
+ @document = String.new('') << Meteor::Core::Kernel::TAG_OPEN << @name << @attributes << Meteor::Core::Kernel::TAG_CLOSE3
267
269
  #@document = "<#{@name}#{@attributes}/>"
268
270
  end
269
271
  end
@@ -981,10 +983,10 @@ module Meteor
981
983
  if CURRENT_DIR.eql?(paths[0])
982
984
  paths.delete_at 0
983
985
  paths[paths.length - 1] = File.basename(paths[paths.length - 1], ABST_EXT_NAME)
984
- return '' << SLASH << paths.join(SLASH)
986
+ return String.new('') << SLASH << paths.join(SLASH)
985
987
  else
986
988
  paths[paths.length - 1] = File.basename(paths[paths.length - 1], ABST_EXT_NAME)
987
- return '' << SLASH << paths.join(SLASH)
989
+ return String.new('') << SLASH << paths.join(SLASH)
988
990
  end
989
991
  end
990
992
  end
@@ -1447,115 +1449,115 @@ module Meteor
1447
1449
  #
1448
1450
  class Kernel < Meteor::Parser
1449
1451
 
1450
- EMPTY = ''.freeze
1451
- SPACE = ' '.freeze
1452
- DOUBLE_QUATATION = '"'.freeze
1453
- TAG_OPEN = '<'.freeze
1454
- TAG_OPEN3 = '</'.freeze
1455
- #TAG_OPEN4 = '<\\\\/'.freeze
1456
- TAG_CLOSE = '>'.freeze
1457
- #TAG_CLOSE2 = '\\/>'.freeze
1458
- TAG_CLOSE3 = '/>'.freeze
1459
- ATTR_EQ = '="'.freeze
1452
+ EMPTY = ''
1453
+ SPACE = ' '
1454
+ DOUBLE_QUATATION = '"'
1455
+ TAG_OPEN = '<'
1456
+ TAG_OPEN3 = '</'
1457
+ #TAG_OPEN4 = '<\\\\/'
1458
+ TAG_CLOSE = '>'
1459
+ #TAG_CLOSE2 = '\\/>'
1460
+ TAG_CLOSE3 = '/>'
1461
+ ATTR_EQ = '="'
1460
1462
  #element
1461
- TAG_SEARCH_1_1 = '(|\\s[^<>]*)>(((?!('.freeze
1462
- TAG_SEARCH_1_2 = '[^<>]*>)).)*)<\\/'.freeze
1463
- TAG_SEARCH_1_3 = '(|\\s[^<>]*)\\/>'.freeze
1464
- TAG_SEARCH_1_4 = '(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'.freeze
1465
- TAG_SEARCH_1_4_2 = '(|\\s[^<>]*)>'.freeze
1466
-
1467
- TAG_SEARCH_NC_1_1 = '(?:|\\s[^<>]*)>((?!('.freeze
1468
- TAG_SEARCH_NC_1_2 = '[^<>]*>)).)*<\\/'.freeze
1469
- TAG_SEARCH_NC_1_3 = '(?:|\\s[^<>]*)\\/>'.freeze
1470
- TAG_SEARCH_NC_1_4 = '(?:\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'.freeze
1471
- TAG_SEARCH_NC_1_4_2 = '(?:|\\s[^<>]*)>'.freeze
1472
-
1473
- TAG_SEARCH_2_1 = '(\\s[^<>]*'.freeze
1474
- TAG_SEARCH_2_1_2 = '(\\s[^<>]*(?:'.freeze
1475
- TAG_SEARCH_2_2 = '"[^<>]*)>(((?!('.freeze
1476
- TAG_SEARCH_2_2_2 = '")[^<>]*)>(((?!('.freeze
1477
- TAG_SEARCH_2_3 = '"[^<>]*)'.freeze
1478
- TAG_SEARCH_2_3_2 = '"[^<>]*)\\/>'.freeze
1479
- TAG_SEARCH_2_3_2_2 = '")[^<>]*)\\/>'.freeze
1480
- TAG_SEARCH_2_4 = '(?:[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'.freeze
1481
- TAG_SEARCH_2_4_2 = '(?:[^<>\\/]*>|(?:(?!([^<>]*\\/>))[^<>]*>)))'.freeze
1482
- TAG_SEARCH_2_4_2_2 = '")([^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>)))'.freeze
1483
- TAG_SEARCH_2_4_2_3 = '"'.freeze
1484
- TAG_SEARCH_2_4_3 = '"[^<>]*)>'.freeze
1485
- TAG_SEARCH_2_4_3_2 = '")[^<>]*)>'.freeze
1486
- TAG_SEARCH_2_4_4 = '"[^<>]*>'.freeze
1487
-
1488
- TAG_SEARCH_2_6 = '"[^<>]*'.freeze
1489
- TAG_SEARCH_2_7 = '"|'.freeze
1490
-
1491
- TAG_SEARCH_NC_2_1 = '\\s[^<>]*'.freeze
1492
- TAG_SEARCH_NC_2_1_2 = '\\s[^<>]*(?:'.freeze
1493
- TAG_SEARCH_NC_2_2 = '"[^<>]*>((?!('.freeze
1494
- TAG_SEARCH_NC_2_2_2 = '")[^<>]*>((?!('.freeze
1495
- TAG_SEARCH_NC_2_3 = '"[^<>]*)'.freeze
1496
- TAG_SEARCH_NC_2_3_2 = '"[^<>]*\\/>'.freeze
1497
- TAG_SEARCH_NC_2_3_2_2 = '")[^<>]*\\/>'.freeze
1498
- TAG_SEARCH_NC_2_4 = '(?:[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'.freeze
1499
- TAG_SEARCH_NC_2_4_2 = '(?:[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'.freeze
1500
- TAG_SEARCH_NC_2_4_2_2 = '")(?:[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'.freeze
1501
- TAG_SEARCH_NC_2_4_2_3 = '"'.freeze
1502
- TAG_SEARCH_NC_2_4_3 = '"[^<>]*>'.freeze
1503
- TAG_SEARCH_NC_2_4_3_2 = '")[^<>]*>'.freeze
1504
- TAG_SEARCH_NC_2_4_4 = '"[^<>]*>'.freeze
1505
- TAG_SEARCH_NC_2_6 = '"[^<>]*'.freeze
1506
- TAG_SEARCH_NC_2_7 = '"|'.freeze
1507
-
1508
- TAG_SEARCH_3_1 = '<([^<>"]*)\\s[^<>]*'.freeze
1509
- TAG_SEARCH_3_1_2 = '<([^<>"]*)\\s([^<>]*'.freeze
1510
- TAG_SEARCH_3_1_2_2 = '<([^<>"]*)\\s([^<>]*('.freeze
1511
-
1512
- TAG_SEARCH_3_2 = '"[^<>]*\\/>'.freeze
1513
- TAG_SEARCH_3_2_2 = '"[^<>]*)\\/>'.freeze
1514
- TAG_SEARCH_3_2_2_2 = '")[^<>]*)\\/>'.freeze
1515
-
1516
- TAG_SEARCH_4_1 = '(\\s[^<>\\/]*)>('.freeze
1517
- TAG_SEARCH_4_2 = '.*?<'.freeze
1518
- TAG_SEARCH_4_3 = '(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'.freeze
1519
- TAG_SEARCH_4_4 = '<\\/'.freeze
1520
- TAG_SEARCH_4_5 = '.*?<\/'.freeze
1521
- TAG_SEARCH_4_6 = '.*?)<\/'.freeze
1522
- TAG_SEARCH_4_7 = '"(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))('.freeze
1523
- TAG_SEARCH_4_7_2 = '")(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))('.freeze
1524
-
1525
- TAG_SEARCH_NC_3_1 = '<[^<>"]*\\s[^<>]*'.freeze
1526
- TAG_SEARCH_NC_3_1_2 = '<([^<>"]*)\\s(?:[^<>]*'.freeze
1527
- TAG_SEARCH_NC_3_1_2_2 = '<([^<>"]*)\\s(?:[^<>]*('.freeze
1528
- TAG_SEARCH_NC_3_2 = '"[^<>]*\\/>'.freeze
1529
- TAG_SEARCH_NC_3_2_2 = '"[^<>]*)\\/>'.freeze
1530
- TAG_SEARCH_NC_3_2_2_2 = '")[^<>]*)\\/>'.freeze
1531
- #TAG_SEARCH_NC_4_1 = "(?:\\s[^<>\\/]*)>(".freeze
1532
- #TAG_SEARCH_NC_4_2 = ".*?<".freeze
1533
- #TAG_SEARCH_NC_4_3 = "(?:\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))".freeze
1534
- #TAG_SEARCH_NC_4_4 = "<\\/".freeze
1535
- #TAG_SEARCH_NC_4_5 = ".*?<\/".freeze
1536
- #TAG_SEARCH_NC_4_6 = ".*?<\/".freeze
1537
- #TAG_SEARCH_NC_4_7 = "\"(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))(".freeze
1538
- #TAG_SEARCH_NC_4_7_2 = "\")(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))(".freeze
1463
+ TAG_SEARCH_1_1 = '(|\\s[^<>]*)>(((?!('
1464
+ TAG_SEARCH_1_2 = '[^<>]*>)).)*)<\\/'
1465
+ TAG_SEARCH_1_3 = '(|\\s[^<>]*)\\/>'
1466
+ TAG_SEARCH_1_4 = '(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
1467
+ TAG_SEARCH_1_4_2 = '(|\\s[^<>]*)>'
1468
+
1469
+ TAG_SEARCH_NC_1_1 = '(?:|\\s[^<>]*)>((?!('
1470
+ TAG_SEARCH_NC_1_2 = '[^<>]*>)).)*<\\/'
1471
+ TAG_SEARCH_NC_1_3 = '(?:|\\s[^<>]*)\\/>'
1472
+ TAG_SEARCH_NC_1_4 = '(?:\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
1473
+ TAG_SEARCH_NC_1_4_2 = '(?:|\\s[^<>]*)>'
1474
+
1475
+ TAG_SEARCH_2_1 = '(\\s[^<>]*'
1476
+ TAG_SEARCH_2_1_2 = '(\\s[^<>]*(?:'
1477
+ TAG_SEARCH_2_2 = '"[^<>]*)>(((?!('
1478
+ TAG_SEARCH_2_2_2 = '")[^<>]*)>(((?!('
1479
+ TAG_SEARCH_2_3 = '"[^<>]*)'
1480
+ TAG_SEARCH_2_3_2 = '"[^<>]*)\\/>'
1481
+ TAG_SEARCH_2_3_2_2 = '")[^<>]*)\\/>'
1482
+ TAG_SEARCH_2_4 = '(?:[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
1483
+ TAG_SEARCH_2_4_2 = '(?:[^<>\\/]*>|(?:(?!([^<>]*\\/>))[^<>]*>)))'
1484
+ TAG_SEARCH_2_4_2_2 = '")([^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>)))'
1485
+ TAG_SEARCH_2_4_2_3 = '"'
1486
+ TAG_SEARCH_2_4_3 = '"[^<>]*)>'
1487
+ TAG_SEARCH_2_4_3_2 = '")[^<>]*)>'
1488
+ TAG_SEARCH_2_4_4 = '"[^<>]*>'
1489
+
1490
+ TAG_SEARCH_2_6 = '"[^<>]*'
1491
+ TAG_SEARCH_2_7 = '"|'
1492
+
1493
+ TAG_SEARCH_NC_2_1 = '\\s[^<>]*'
1494
+ TAG_SEARCH_NC_2_1_2 = '\\s[^<>]*(?:'
1495
+ TAG_SEARCH_NC_2_2 = '"[^<>]*>((?!('
1496
+ TAG_SEARCH_NC_2_2_2 = '")[^<>]*>((?!('
1497
+ TAG_SEARCH_NC_2_3 = '"[^<>]*)'
1498
+ TAG_SEARCH_NC_2_3_2 = '"[^<>]*\\/>'
1499
+ TAG_SEARCH_NC_2_3_2_2 = '")[^<>]*\\/>'
1500
+ TAG_SEARCH_NC_2_4 = '(?:[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
1501
+ TAG_SEARCH_NC_2_4_2 = '(?:[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
1502
+ TAG_SEARCH_NC_2_4_2_2 = '")(?:[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
1503
+ TAG_SEARCH_NC_2_4_2_3 = '"'
1504
+ TAG_SEARCH_NC_2_4_3 = '"[^<>]*>'
1505
+ TAG_SEARCH_NC_2_4_3_2 = '")[^<>]*>'
1506
+ TAG_SEARCH_NC_2_4_4 = '"[^<>]*>'
1507
+ TAG_SEARCH_NC_2_6 = '"[^<>]*'
1508
+ TAG_SEARCH_NC_2_7 = '"|'
1509
+
1510
+ TAG_SEARCH_3_1 = '<([^<>"]*)\\s[^<>]*'
1511
+ TAG_SEARCH_3_1_2 = '<([^<>"]*)\\s([^<>]*'
1512
+ TAG_SEARCH_3_1_2_2 = '<([^<>"]*)\\s([^<>]*('
1513
+
1514
+ TAG_SEARCH_3_2 = '"[^<>]*\\/>'
1515
+ TAG_SEARCH_3_2_2 = '"[^<>]*)\\/>'
1516
+ TAG_SEARCH_3_2_2_2 = '")[^<>]*)\\/>'
1517
+
1518
+ TAG_SEARCH_4_1 = '(\\s[^<>\\/]*)>('
1519
+ TAG_SEARCH_4_2 = '.*?<'
1520
+ TAG_SEARCH_4_3 = '(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
1521
+ TAG_SEARCH_4_4 = '<\\/'
1522
+ TAG_SEARCH_4_5 = '.*?<\/'
1523
+ TAG_SEARCH_4_6 = '.*?)<\/'
1524
+ TAG_SEARCH_4_7 = '"(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))('
1525
+ TAG_SEARCH_4_7_2 = '")(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))('
1526
+
1527
+ TAG_SEARCH_NC_3_1 = '<[^<>"]*\\s[^<>]*'
1528
+ TAG_SEARCH_NC_3_1_2 = '<([^<>"]*)\\s(?:[^<>]*'
1529
+ TAG_SEARCH_NC_3_1_2_2 = '<([^<>"]*)\\s(?:[^<>]*('
1530
+ TAG_SEARCH_NC_3_2 = '"[^<>]*\\/>'
1531
+ TAG_SEARCH_NC_3_2_2 = '"[^<>]*)\\/>'
1532
+ TAG_SEARCH_NC_3_2_2_2 = '")[^<>]*)\\/>'
1533
+ #TAG_SEARCH_NC_4_1 = "(?:\\s[^<>\\/]*)>("
1534
+ #TAG_SEARCH_NC_4_2 = ".*?<"
1535
+ #TAG_SEARCH_NC_4_3 = "(?:\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))"
1536
+ #TAG_SEARCH_NC_4_4 = "<\\/"
1537
+ #TAG_SEARCH_NC_4_5 = ".*?<\/"
1538
+ #TAG_SEARCH_NC_4_6 = ".*?<\/"
1539
+ #TAG_SEARCH_NC_4_7 = "\"(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))("
1540
+ #TAG_SEARCH_NC_4_7_2 = "\")(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))("
1539
1541
 
1540
1542
  #find
1541
1543
  # E
1542
- PATTERN_FIND_1 = '^([^,\\[\\]#\\.]+)$'.freeze
1544
+ PATTERN_FIND_1 = '^([^,\\[\\]#\\.]+)$'
1543
1545
  # #id_attribute_value
1544
- PATTERN_FIND_2_1 = '^#([^\\.,\\[\\]#][^,\\[\\]#]*)$'.freeze
1546
+ PATTERN_FIND_2_1 = '^#([^\\.,\\[\\]#][^,\\[\\]#]*)$'
1545
1547
  # .class_attribute_value
1546
- PATTERN_FIND_2_2 = '^\\.([^\\.,\\[\\]#][^,\\[\\]#]*)$'.freeze
1548
+ PATTERN_FIND_2_2 = '^\\.([^\\.,\\[\\]#][^,\\[\\]#]*)$'
1547
1549
  # [attribute_name=attribute_value]
1548
- PATTERN_FIND_2_3 = '^\\[([^\\[\\],]+)=([^\\[\\],]+)\\]$'.freeze
1550
+ PATTERN_FIND_2_3 = '^\\[([^\\[\\],]+)=([^\\[\\],]+)\\]$'
1549
1551
  # E[attribute_name=attribute_value]
1550
- PATTERN_FIND_3_1 = '^([^\\.,\\[\\]#][^,\\[\\]#]+)\\[([^,\\[\\]]+)=([^,\\[\\]]+)\\]$'.freeze
1552
+ PATTERN_FIND_3_1 = '^([^\\.,\\[\\]#][^,\\[\\]#]+)\\[([^,\\[\\]]+)=([^,\\[\\]]+)\\]$'
1551
1553
  # E#id_attribute_value
1552
- PATTERN_FIND_3_2 = '^([^\\.,\\[\\]#][^,\\[\\]#]+)#([^\\.,\\[\\]#][^,\\[\\]#]*)$'.freeze
1554
+ PATTERN_FIND_3_2 = '^([^\\.,\\[\\]#][^,\\[\\]#]+)#([^\\.,\\[\\]#][^,\\[\\]#]*)$'
1553
1555
  # E.class_attribute_value
1554
- PATTERN_FIND_3_3 = '^([^\\.,\\[\\]#][^,\\[\\]#]+)\\.([^\\.,\\[\\]#][^,\\[\\]#]*)$'.freeze
1556
+ PATTERN_FIND_3_3 = '^([^\\.,\\[\\]#][^,\\[\\]#]+)\\.([^\\.,\\[\\]#][^,\\[\\]#]*)$'
1555
1557
  # [attribute_name1=attribute_value1][attribute_name2=attribute_value2]
1556
1558
  PATTERN_FIND_4 = '^\\[([^,]+)=([^,]+)\\]\\[([^,]+)=([^,]+)\\]$'
1557
1559
  # E[attribute_name1=attribute_value1][attribute_name2=attribute_value2]
1558
- PATTERN_FIND_5 = '^([^\\.,\\[\\]#][^,\\[\\]#]+)\\[([^,]+)=([^,]+)\\]\\[([^,]+)=([^,]+)\\]$'.freeze
1560
+ PATTERN_FIND_5 = '^([^\\.,\\[\\]#][^,\\[\\]#]+)\\[([^,]+)=([^,]+)\\]\\[([^,]+)=([^,]+)\\]$'
1559
1561
 
1560
1562
  @@pattern_find_1 = Regexp.new(PATTERN_FIND_1)
1561
1563
  @@pattern_find_2_1 = Regexp.new(PATTERN_FIND_2_1)
@@ -1568,98 +1570,98 @@ module Meteor
1568
1570
  @@pattern_find_5 = Regexp.new(PATTERN_FIND_5)
1569
1571
 
1570
1572
  #setAttribute
1571
- SET_ATTR_1 = '="[^"]*"'.freeze
1573
+ SET_ATTR_1 = '="[^"]*"'
1572
1574
  #getAttributeValue
1573
- GET_ATTR_1 = '="([^"]*)"'.freeze
1575
+ GET_ATTR_1 = '="([^"]*)"'
1574
1576
  #attributeMap
1575
- GET_ATTRS_MAP = '([^\\s]*)="([^\"]*)"'.freeze
1577
+ GET_ATTRS_MAP = '([^\\s]*)="([^\"]*)"'
1576
1578
  #removeAttribute
1577
- ERASE_ATTR_1 = '="[^"]*"\\s?'.freeze
1579
+ ERASE_ATTR_1 = '="[^"]*"\\s?'
1578
1580
 
1579
1581
  #cxtag
1580
- #SEARCH_CX_1 = '<!--\\s@'.freeze
1581
- #SEARCH_CX_2 = '\\s([^<>]*id="'.freeze
1582
- #SEARCH_CX_3 = '\"[^<>]*)-->(((?!(<!--\\s\\/@'.freeze
1583
- #SEARCH_CX_4 = ')).)*)<!--\\s\\/@'.freeze
1584
- #SEARCH_CX_5 = '\\s-->'.freeze
1585
- #SEARCH_CX_6 = '<!--\\s@([^<>]*)\\s[^<>]*id="'.freeze
1586
-
1587
- SEARCH_CX_1 = '<!--\\s@'.freeze
1582
+ #SEARCH_CX_1 = '<!--\\s@'
1583
+ #SEARCH_CX_2 = '\\s([^<>]*id="'
1584
+ #SEARCH_CX_3 = '\"[^<>]*)-->(((?!(<!--\\s\\/@'
1585
+ #SEARCH_CX_4 = ')).)*)<!--\\s\\/@'
1586
+ #SEARCH_CX_5 = '\\s-->'
1587
+ #SEARCH_CX_6 = '<!--\\s@([^<>]*)\\s[^<>]*id="'
1588
+
1589
+ SEARCH_CX_1 = '<!--\\s@'
1588
1590
  #SEARCH_CX_1 = "<!--\\s@"
1589
- SEARCH_CX_2 = '\\s([^<>]*id="'.freeze
1590
- #SEARCH_CX_2 = "\\s([^<>]*id=\"".freeze
1591
- SEARCH_CX_3 = '"[^<>]*)-->(((?!(<!--\\s/@'.freeze
1592
- #SEARCH_CX_3 = "\"[^<>]*)-->(((?!(<!--\\s/@".freeze
1593
- SEARCH_CX_4 = ')).)*)<!--\\s/@'.freeze
1594
- #SEARCH_CX_4 = ")).)*)<!--\\s/@".freeze
1595
- SEARCH_CX_5 = '\\s-->'.freeze
1596
- #SEARCH_CX_5 = "\\s-->".freeze
1597
- SEARCH_CX_6 = '<!--\\s@([^<>]*)\\s[^<>]*id="'.freeze
1598
- #SEARCH_CX_6 = "<!--\\s@([^<>]*)\\s[^<>]*id=\"".freeze
1591
+ SEARCH_CX_2 = '\\s([^<>]*id="'
1592
+ #SEARCH_CX_2 = "\\s([^<>]*id=\""
1593
+ SEARCH_CX_3 = '"[^<>]*)-->(((?!(<!--\\s/@'
1594
+ #SEARCH_CX_3 = "\"[^<>]*)-->(((?!(<!--\\s/@"
1595
+ SEARCH_CX_4 = ')).)*)<!--\\s/@'
1596
+ #SEARCH_CX_4 = ")).)*)<!--\\s/@"
1597
+ SEARCH_CX_5 = '\\s-->'
1598
+ #SEARCH_CX_5 = "\\s-->"
1599
+ SEARCH_CX_6 = '<!--\\s@([^<>]*)\\s[^<>]*id="'
1600
+ #SEARCH_CX_6 = "<!--\\s@([^<>]*)\\s[^<>]*id=\""
1599
1601
 
1600
1602
  #setElementToCXTag
1601
- SET_CX_1 = '<!-- @'.freeze
1602
- SET_CX_2 = '-->'.freeze
1603
- SET_CX_3 = '<!-- /@'.freeze
1604
- SET_CX_4 = ' -->'.freeze
1603
+ SET_CX_1 = '<!-- @'
1604
+ SET_CX_2 = '-->'
1605
+ SET_CX_3 = '<!-- /@'
1606
+ SET_CX_4 = ' -->'
1605
1607
 
1606
1608
  #setMonoInfo
1607
- SET_MONO_1 = '\\A[^<>]*\\Z'.freeze
1609
+ SET_MONO_1 = '\\A[^<>]*\\Z'
1608
1610
 
1609
1611
  @@pattern_set_mono1 = Regexp.new(SET_MONO_1)
1610
1612
 
1611
1613
  #clean
1612
- CLEAN_1 = '<!--\\s@[^<>]*\\s[^<>]*(\\s)*-->'.freeze
1613
- CLEAN_2 = '<!--\\s\\/@[^<>]*(\\s)*-->'.freeze
1614
+ CLEAN_1 = '<!--\\s@[^<>]*\\s[^<>]*(\\s)*-->'
1615
+ CLEAN_2 = '<!--\\s\\/@[^<>]*(\\s)*-->'
1614
1616
  #escape
1615
- AND_1 = '&'.freeze
1616
- AND_2 = '&amp;'.freeze
1617
- AND_3 = 'amp'.freeze
1618
- LT_1 = '<'.freeze
1619
- LT_2 = '&lt;'.freeze
1620
- LT_3 = 'lt'.freeze
1621
- GT_1 = '>'.freeze
1622
- GT_2 = '&gt;'.freeze
1623
- GT_3 = 'gt'.freeze
1624
- QO_2 = '&quot;'.freeze
1625
- QO_3 = 'quot'.freeze
1626
- AP_1 = '\''.freeze
1627
- AP_2 = '&apos;'.freeze
1628
- AP_3 = 'apos'.freeze
1629
- #EN_1 = "\\\\".freeze
1630
- EN_1 = "\\".freeze
1631
- #EN_2 = "\\\\\\\\".freeze
1632
- #DOL_1 = "\\\$".freeze
1633
- #DOL_2 = "\\\\\\$".freeze
1634
- #PLUS_1 = "\\\+".freeze
1635
- #PLUS_2 = "\\\\\\+".freeze
1636
-
1637
- ESCAPE_ENTITY_REF = ''.freeze
1638
-
1639
- #SUB_REGEX1 = (\\\\*)\\\\([0-9]+)'.freeze
1640
- #SUB_REGEX2 = '\\1\\1\\\\\\\\\\2'.freeze
1641
- #SUB_REGEX3 = '\\1\\1\\1\\1\\\\\\\\\\\\\\\\\\2'.freeze
1642
-
1643
- #BRAC_OPEN_1 = "\\\(".freeze
1644
- #BRAC_OPEN_2 = "\\\\\\(".freeze
1645
- #BRAC_CLOSE_1 = "\\\)".freeze
1646
- #BRAC_CLOSE_2 = "\\\\\\)".freeze
1647
- #SBRAC_OPEN_1 = "\\\[".freeze
1648
- #SBRAC_OPEN_2 = "\\\\\\[".freeze
1649
- #SBRAC_CLOSE_1 = "\\\]".freeze
1650
- #SBRAC_CLOSE_2 = "\\\\\\]".freeze
1651
- #CBRAC_OPEN_1 = "\\\{".freeze
1652
- #CBRAC_OPEN_2 = "\\\\\\{".freeze
1653
- #CBRAC_CLOSE_1 = "\\\}".freeze
1654
- #CBRAC_CLOSE_2 = "\\\\\\}".freeze
1655
- #COMMA_1 = "\\\.".freeze
1656
- #COMMA_2 = "\\\\\\.".freeze
1657
- #VLINE_1 = "\\\|".freeze
1658
- #VLINE_2 = "\\\\\\|".freeze
1659
- #QMARK_1 = "\\\?".freeze
1660
- #QMARK_2 = "\\\\\\?".freeze
1661
- #ASTERISK_1 = "\\\*".freeze
1662
- #ASTERISK_2 = "\\\\\\*".freeze
1617
+ AND_1 = '&'
1618
+ AND_2 = '&amp;'
1619
+ AND_3 = 'amp'
1620
+ LT_1 = '<'
1621
+ LT_2 = '&lt;'
1622
+ LT_3 = 'lt'
1623
+ GT_1 = '>'
1624
+ GT_2 = '&gt;'
1625
+ GT_3 = 'gt'
1626
+ QO_2 = '&quot;'
1627
+ QO_3 = 'quot'
1628
+ AP_1 = '\''
1629
+ AP_2 = '&apos;'
1630
+ AP_3 = 'apos'
1631
+ #EN_1 = "\\\\"
1632
+ EN_1 = "\\"
1633
+ #EN_2 = "\\\\\\\\"
1634
+ #DOL_1 = "\\\$"
1635
+ #DOL_2 = "\\\\\\$"
1636
+ #PLUS_1 = "\\\+"
1637
+ #PLUS_2 = "\\\\\\+"
1638
+
1639
+ ESCAPE_ENTITY_REF = String.new('')
1640
+
1641
+ #SUB_REGEX1 = (\\\\*)\\\\([0-9]+)'
1642
+ #SUB_REGEX2 = '\\1\\1\\\\\\\\\\2'
1643
+ #SUB_REGEX3 = '\\1\\1\\1\\1\\\\\\\\\\\\\\\\\\2'
1644
+
1645
+ #BRAC_OPEN_1 = "\\\("
1646
+ #BRAC_OPEN_2 = "\\\\\\("
1647
+ #BRAC_CLOSE_1 = "\\\)"
1648
+ #BRAC_CLOSE_2 = "\\\\\\)"
1649
+ #SBRAC_OPEN_1 = "\\\["
1650
+ #SBRAC_OPEN_2 = "\\\\\\["
1651
+ #SBRAC_CLOSE_1 = "\\\]"
1652
+ #SBRAC_CLOSE_2 = "\\\\\\]"
1653
+ #CBRAC_OPEN_1 = "\\\{"
1654
+ #CBRAC_OPEN_2 = "\\\\\\{"
1655
+ #CBRAC_CLOSE_1 = "\\\}"
1656
+ #CBRAC_CLOSE_2 = "\\\\\\}"
1657
+ #COMMA_1 = "\\\."
1658
+ #COMMA_2 = "\\\\\\."
1659
+ #VLINE_1 = "\\\|"
1660
+ #VLINE_2 = "\\\\\\|"
1661
+ #QMARK_1 = "\\\?"
1662
+ #QMARK_2 = "\\\\\\?"
1663
+ #ASTERISK_1 = "\\\*"
1664
+ #ASTERISK_2 = "\\\\\\*"
1663
1665
 
1664
1666
  #@@pattern_en = Regexp.new(EN_1)
1665
1667
  #@@pattern_dol = Regexp.new(DOL_1)
@@ -1682,12 +1684,12 @@ module Meteor
1682
1684
  @@pattern_clean1 = Regexp.new(CLEAN_1)
1683
1685
  @@pattern_clean2 = Regexp.new(CLEAN_2)
1684
1686
 
1685
- MODE_UTF8 = 'r:UTF-8'.freeze
1686
- MODE_BF = 'r:'.freeze
1687
- MODE_AF = ':utf-8'.freeze
1687
+ MODE_UTF8 = 'r:UTF-8'
1688
+ MODE_BF = 'r:'
1689
+ MODE_AF = ':utf-8'
1688
1690
 
1689
- CSS_ID = 'id'.freeze
1690
- CSS_CLASS = 'class'.freeze
1691
+ CSS_ID = 'id'
1692
+ CSS_CLASS = 'class'
1691
1693
 
1692
1694
  attr_accessor :element_cache
1693
1695
  attr_accessor :doc_type
@@ -1750,7 +1752,7 @@ module Meteor
1750
1752
  #要素キャッシュ
1751
1753
  @element_cache = Hash.new
1752
1754
  #フックドキュメント
1753
- @document_hook = ''
1755
+ @document_hook = String.new('')
1754
1756
 
1755
1757
  @error_check = true
1756
1758
  end
@@ -1769,7 +1771,7 @@ module Meteor
1769
1771
  #io = File.open(file_path,MODE_BF << enc)
1770
1772
  io = File.open(file_path, MODE_UTF8)
1771
1773
  else
1772
- io = File.open(file_path, '' << MODE_BF << enc << MODE_AF)
1774
+ io = File.open(file_path, String.new('') << MODE_BF << enc << MODE_AF)
1773
1775
  end
1774
1776
 
1775
1777
  #読込及び格納
@@ -1963,7 +1965,7 @@ module Meteor
1963
1965
  @elm_.document = @res[0]
1964
1966
  end
1965
1967
  #内容あり要素検索用パターン
1966
- #@pattern_cc = '' << TAG_OPEN << @_name << TAG_SEARCH_NC_1_1 << @_name
1968
+ #@pattern_cc = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_NC_1_1 << @_name
1967
1969
  #@pattern_cc << TAG_SEARCH_NC_1_2 << @_name << TAG_CLOSE
1968
1970
  @pattern_cc = "<#{@_name}(|\\s[^<>]*)>(((?!(#{@_name}[^<>]*>)).)*)<\\/#{@_name}>"
1969
1971
 
@@ -1986,7 +1988,7 @@ module Meteor
1986
1988
  #全体
1987
1989
  @elm_.document = @res[0]
1988
1990
  #空要素検索用パターン
1989
- @pattern_cc = '' << TAG_OPEN << @_name << TAG_SEARCH_1_3
1991
+ @pattern_cc = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_1_3
1990
1992
  #@pattern_cc = "<#{@_name}(|\\s[^<>]*)\\/>"
1991
1993
  @elm_.pattern = @pattern_cc
1992
1994
 
@@ -2087,7 +2089,7 @@ module Meteor
2087
2089
  #全体
2088
2090
  @elm_.document = @res[0]
2089
2091
  #内容あり要素検索用パターン
2090
- #@pattern_cc = ''<< TAG_OPEN << @_name << TAG_SEARCH_NC_2_1 << @_attr_name << ATTR_EQ
2092
+ #@pattern_cc = String.new('')<< TAG_OPEN << @_name << TAG_SEARCH_NC_2_1 << @_attr_name << ATTR_EQ
2091
2093
  #@pattern_cc << @_attr_value << TAG_SEARCH_NC_2_2 << @_name
2092
2094
  #@pattern_cc << TAG_SEARCH_NC_1_2 << @_name << TAG_CLOSE
2093
2095
  @pattern_cc = "<#{@_name}(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\"[^<>]*)>(((?!(#{@_name}[^<>]*>)).)*)<\\/#{@_name}>"
@@ -2108,7 +2110,7 @@ module Meteor
2108
2110
  #全体
2109
2111
  @elm_.document = @res[0]
2110
2112
  #内容あり要素検索用パターン
2111
- #@pattern_cc = ''<< TAG_OPEN << @_name << TAG_SEARCH_NC_2_1 << @_attr_name << ATTR_EQ
2113
+ #@pattern_cc = String.new('')<< TAG_OPEN << @_name << TAG_SEARCH_NC_2_1 << @_attr_name << ATTR_EQ
2112
2114
  #@pattern_cc << @_attr_value << TAG_SEARCH_NC_2_2 << @_name
2113
2115
  #@pattern_cc << TAG_SEARCH_NC_1_2 << @_name << TAG_CLOSE
2114
2116
  @pattern_cc = "<#{@_name}(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\"[^<>]*)>((?!(#{@_name}[^<>]*>)).)*<\\/#{@_name}>"
@@ -2165,34 +2167,34 @@ module Meteor
2165
2167
 
2166
2168
  def element_pattern_with_3_2
2167
2169
 
2168
- #@pattern_cc_1 = '' << TAG_OPEN << @_name << TAG_SEARCH_2_1 << @_attr_name << ATTR_EQ
2170
+ #@pattern_cc_1 = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_2_1 << @_attr_name << ATTR_EQ
2169
2171
  #@pattern_cc_1 << @_attr_value << TAG_SEARCH_2_4_2
2170
2172
  @pattern_cc_1 = "<#{@_name}(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}(?:[^<>\\/]*>|(?:(?!([^<>]*\\/>))[^<>]*>)))"
2171
2173
 
2172
- @pattern_cc_1b = '' << TAG_OPEN << @_name << TAG_SEARCH_1_4
2174
+ @pattern_cc_1b = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_1_4
2173
2175
  #@pattern_cc_1b = "<#{@_name}(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))"
2174
2176
 
2175
- #@pattern_cc_1_1 = '' << TAG_OPEN << @_name << TAG_SEARCH_2_1 << @_attr_name << ATTR_EQ
2177
+ #@pattern_cc_1_1 = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_2_1 << @_attr_name << ATTR_EQ
2176
2178
  #@pattern_cc_1_1 << @_attr_value << TAG_SEARCH_4_7
2177
2179
  @pattern_cc_1_1 = "<#{@_name}(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\"(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))("
2178
2180
 
2179
- @pattern_cc_1_2 = '' << TAG_SEARCH_4_2 << @_name << TAG_SEARCH_4_3
2181
+ @pattern_cc_1_2 = String.new('') << TAG_SEARCH_4_2 << @_name << TAG_SEARCH_4_3
2180
2182
  #@pattern_cc_1_2 = ".*?<#{@_name}(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))"
2181
2183
 
2182
2184
 
2183
- @pattern_cc_2 = '' << TAG_SEARCH_4_4 << @_name << TAG_CLOSE
2184
- #@pattern_cc_2 = '' << "<\\/#{@_name}>"
2185
+ @pattern_cc_2 = String.new('') << TAG_SEARCH_4_4 << @_name << TAG_CLOSE
2186
+ #@pattern_cc_2 = String.new('') << "<\\/#{@_name}>"
2185
2187
 
2186
- @pattern_cc_2_1 = '' << TAG_SEARCH_4_5 << @_name << TAG_CLOSE
2188
+ @pattern_cc_2_1 = String.new('') << TAG_SEARCH_4_5 << @_name << TAG_CLOSE
2187
2189
  #@pattern_cc_2_1 = ".*?<\\/#{@_name}>"
2188
2190
 
2189
- @pattern_cc_2_2 = '' << TAG_SEARCH_4_6 << @_name << TAG_CLOSE
2191
+ @pattern_cc_2_2 = String.new('') << TAG_SEARCH_4_6 << @_name << TAG_CLOSE
2190
2192
  #@pattern_cc_2_2 = ".*?)<\\/#{@_name}>"
2191
2193
 
2192
2194
  #内容あり要素検索
2193
2195
  @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_1)
2194
2196
 
2195
- @sbuf = ''
2197
+ @sbuf = String.new('')
2196
2198
 
2197
2199
  @pattern_2 = Meteor::Core::Util::PatternCache.get(@pattern_cc_2)
2198
2200
  @pattern_1b = Meteor::Core::Util::PatternCache.get(@pattern_cc_1b)
@@ -2222,7 +2224,7 @@ module Meteor
2222
2224
  #全体
2223
2225
  @elm_.document = @res[0]
2224
2226
  #空要素検索用パターン
2225
- @pattern_cc = '' << TAG_OPEN << @_name << TAG_SEARCH_2_1 << @_attr_name << ATTR_EQ << @_attr_value << closer
2227
+ @pattern_cc = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_2_1 << @_attr_name << ATTR_EQ << @_attr_value << closer
2226
2228
  #@pattern_cc = "<#{@_name}\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}#{closer}"
2227
2229
  @elm_.pattern = @pattern_cc
2228
2230
 
@@ -2321,8 +2323,8 @@ module Meteor
2321
2323
 
2322
2324
  def element_pattern_2
2323
2325
 
2324
- ##@pattern_cc = '' << TAG_SEARCH_3_1 << @_attr_name << ATTR_EQ << @_attr_value << TAG_SEARCH_2_4
2325
- #@pattern_cc = '' << TAG_SEARCH_3_1 << @_attr_name << ATTR_EQ << @_attr_value << TAG_SEARCH_2_4_2_3
2326
+ ##@pattern_cc = String.new('') << TAG_SEARCH_3_1 << @_attr_name << ATTR_EQ << @_attr_value << TAG_SEARCH_2_4
2327
+ #@pattern_cc = String.new('') << TAG_SEARCH_3_1 << @_attr_name << ATTR_EQ << @_attr_value << TAG_SEARCH_2_4_2_3
2326
2328
  @pattern_cc = "<([^<>\"]*)\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\""
2327
2329
  end
2328
2330
 
@@ -2343,7 +2345,7 @@ module Meteor
2343
2345
  #全体
2344
2346
  @elm_.document = @res[0]
2345
2347
  #内容あり要素検索用パターン
2346
- #@pattern_cc = ''<< TAG_OPEN << @_name << TAG_SEARCH_NC_2_1 << @_attr_name << ATTR_EQ
2348
+ #@pattern_cc = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_NC_2_1 << @_attr_name << ATTR_EQ
2347
2349
  #@pattern_cc << @_attr_value << TAG_SEARCH_NC_2_2 << @_name
2348
2350
  #@pattern_cc << TAG_SEARCH_NC_1_2 << @_name << TAG_CLOSE
2349
2351
  @pattern_cc = "<#{@_name}\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\"[^<>]*>((?!(#{@_name}[^<>]*>)).)*<\\/#{@_name}>"
@@ -2365,7 +2367,7 @@ module Meteor
2365
2367
  #全体
2366
2368
  @elm_.document = @res[0]
2367
2369
  #内容あり要素検索用パターン
2368
- #@pattern_cc = ''<< TAG_OPEN << @_name << TAG_SEARCH_NC_2_1 << @_attr_name << ATTR_EQ
2370
+ #@pattern_cc = String.new()<< TAG_OPEN << @_name << TAG_SEARCH_NC_2_1 << @_attr_name << ATTR_EQ
2369
2371
  #@pattern_cc << @_attr_value << TAG_SEARCH_NC_2_2 << @_name
2370
2372
  #@pattern_cc << TAG_SEARCH_NC_1_2 << @_name << TAG_CLOSE
2371
2373
  @pattern_cc = "<#{@_name}\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\"[^<>]*>((?!(#{@_name}[^<>]*>)).)*<\\/#{@_name}>"
@@ -2402,14 +2404,14 @@ module Meteor
2402
2404
 
2403
2405
  def element_with_2_2
2404
2406
 
2405
- #@pattern_cc_1 = '' << TAG_OPEN << @_name << TAG_SEARCH_2_1 << @_attr_name << ATTR_EQ
2407
+ #@pattern_cc_1 = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_2_1 << @_attr_name << ATTR_EQ
2406
2408
  #@pattern_cc_1 << @_attr_value << TAG_SEARCH_2_4_2
2407
2409
  @pattern_cc_1 = "<([^<>\"]*)(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}(?:[^<>\\/]*>|(?:(?!([^<>]*\\/>))[^<>]*>)))"
2408
2410
 
2409
2411
  #内容あり要素検索
2410
2412
  @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_1)
2411
2413
 
2412
- @sbuf = ''
2414
+ @sbuf = String.new('')
2413
2415
 
2414
2416
  @cnt = 0
2415
2417
 
@@ -2433,19 +2435,19 @@ module Meteor
2433
2435
 
2434
2436
  #puts @_name
2435
2437
 
2436
- @pattern_cc_1b = '' << TAG_OPEN << @_name << TAG_SEARCH_1_4
2438
+ @pattern_cc_1b = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_1_4
2437
2439
 
2438
- #@pattern_cc_1_1 = '' << TAG_OPEN << @_name << TAG_SEARCH_2_1 << @_attr_name << ATTR_EQ
2440
+ #@pattern_cc_1_1 = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_2_1 << @_attr_name << ATTR_EQ
2439
2441
  #@pattern_cc_1_1 << @_attr_value << TAG_SEARCH_4_7
2440
2442
  @pattern_cc_1_1 = "<#{@_name}(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\"(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))("
2441
2443
 
2442
- @pattern_cc_1_2 = '' << TAG_SEARCH_4_2 << @_name << TAG_SEARCH_4_3
2444
+ @pattern_cc_1_2 = String.new('') << TAG_SEARCH_4_2 << @_name << TAG_SEARCH_4_3
2443
2445
 
2444
- @pattern_cc_2 = '' << TAG_SEARCH_4_4 << @_name << TAG_CLOSE
2446
+ @pattern_cc_2 = String.new('') << TAG_SEARCH_4_4 << @_name << TAG_CLOSE
2445
2447
 
2446
- @pattern_cc_2_1 = '' << TAG_SEARCH_4_5 << @_name << TAG_CLOSE
2448
+ @pattern_cc_2_1 = String.new('') << TAG_SEARCH_4_5 << @_name << TAG_CLOSE
2447
2449
 
2448
- @pattern_cc_2_2 = '' << TAG_SEARCH_4_6 << @_name << TAG_CLOSE
2450
+ @pattern_cc_2_2 = String.new('') << TAG_SEARCH_4_6 << @_name << TAG_CLOSE
2449
2451
 
2450
2452
  @pattern_2 = Meteor::Core::Util::PatternCache.get(@pattern_cc_2)
2451
2453
  @pattern_1b = Meteor::Core::Util::PatternCache.get(@pattern_cc_1b)
@@ -2467,7 +2469,7 @@ module Meteor
2467
2469
  #全体
2468
2470
  @elm_.document = @res[0]
2469
2471
  #空要素検索用パターン
2470
- @pattern_cc = '' << TAG_OPEN << @_name << TAG_SEARCH_NC_2_1 << @_attr_name << ATTR_EQ << @_attr_value << closer
2472
+ @pattern_cc = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_NC_2_1 << @_attr_name << ATTR_EQ << @_attr_value << closer
2471
2473
  @elm_.pattern = @pattern_cc
2472
2474
 
2473
2475
  @elm_.parser = self
@@ -2566,7 +2568,7 @@ module Meteor
2566
2568
  #全体
2567
2569
  @elm_.document = @res[0]
2568
2570
  #内容あり要素検索用パターン
2569
- #@pattern_cc = '' << TAG_OPEN << @_name << TAG_SEARCH_NC_2_1_2 << @_attr_name1 << ATTR_EQ
2571
+ #@pattern_cc = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_NC_2_1_2 << @_attr_name1 << ATTR_EQ
2570
2572
  #@pattern_cc << @_attr_value1 << TAG_SEARCH_NC_2_6 << @_attr_name2 << ATTR_EQ
2571
2573
  #@pattern_cc << @_attr_value2 << TAG_SEARCH_NC_2_7 << @_attr_name2 << ATTR_EQ
2572
2574
  #@pattern_cc << @_attr_value2 << TAG_SEARCH_NC_2_6 << @_attr_name1 << ATTR_EQ
@@ -2589,7 +2591,7 @@ module Meteor
2589
2591
  #全体
2590
2592
  @elm_.document = @res[0]
2591
2593
  #内容あり要素検索用パターン
2592
- #@pattern_cc = '' << TAG_OPEN << @_name << TAG_SEARCH_NC_2_1_2 << @_attr_name1 << ATTR_EQ
2594
+ #@pattern_cc = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_NC_2_1_2 << @_attr_name1 << ATTR_EQ
2593
2595
  #@pattern_cc << @_attr_value1 << TAG_SEARCH_NC_2_6 << @_attr_name2 << ATTR_EQ
2594
2596
  #@pattern_cc << @_attr_value2 << TAG_SEARCH_NC_2_7 << @_attr_name2 << ATTR_EQ
2595
2597
  #@pattern_cc << @_attr_value2 << TAG_SEARCH_NC_2_6 << @_attr_name1 << ATTR_EQ
@@ -2642,34 +2644,34 @@ module Meteor
2642
2644
 
2643
2645
  def element_pattern_with_5_2
2644
2646
 
2645
- #@pattern_cc_1 = '' << TAG_OPEN << @_name << TAG_SEARCH_2_1_2 << @_attr_name1 << ATTR_EQ
2647
+ #@pattern_cc_1 = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_2_1_2 << @_attr_name1 << ATTR_EQ
2646
2648
  #@pattern_cc_1 << @_attr_value1 << TAG_SEARCH_2_6 << @_attr_name2 << ATTR_EQ
2647
2649
  #@pattern_cc_1 << @_attr_value2 << TAG_SEARCH_2_7 << @_attr_name2 << ATTR_EQ
2648
2650
  #@pattern_cc_1 << @_attr_value2 << TAG_SEARCH_2_6 << @_attr_name1 << ATTR_EQ
2649
2651
  #@pattern_cc_1 << @_attr_value1 << TAG_SEARCH_2_4_2_2
2650
2652
  @pattern_cc_1 = "<#{@_name}(\\s[^<>]*(?:#{@_attr_name1}=\"#{@_attr_value1}\"[^<>]*#{@_attr_name2}=\"#{@_attr_value2}\"|#{@_attr_name2}=\"#{@_attr_value2}\"[^<>]*#{@_attr_name1}=\"#{@_attr_value1}\")([^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>)))"
2651
2653
 
2652
- @pattern_cc_1b = '' << TAG_OPEN << @_name << TAG_SEARCH_1_4
2654
+ @pattern_cc_1b = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_1_4
2653
2655
  #@pattern_cc_1b = "<#{@_name}(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))"
2654
2656
 
2655
- #@pattern_cc_1_1 = '' << TAG_OPEN << @_name << TAG_SEARCH_2_1_2 << @_attr_name1 << ATTR_EQ
2657
+ #@pattern_cc_1_1 = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_2_1_2 << @_attr_name1 << ATTR_EQ
2656
2658
  #@pattern_cc_1_1 << @_attr_value1 << TAG_SEARCH_2_6 << @_attr_name2 << ATTR_EQ
2657
2659
  #@pattern_cc_1_1 << @_attr_value2 << TAG_SEARCH_2_7 << @_attr_name2 << ATTR_EQ
2658
2660
  #@pattern_cc_1_1 << @_attr_value2 << TAG_SEARCH_2_6 << @_attr_name1 << ATTR_EQ
2659
2661
  #@pattern_cc_1_1 << @_attr_value1 << TAG_SEARCH_4_7_2
2660
2662
  @pattern_cc_1_1 = "<#{@_name}(\\s[^<>]*(?:#{@_attr_name1}=\"#{@_attr_value1}\"[^<>]*#{@_attr_name2}=\"#{@_attr_value2}\"|#{@_attr_name2}=\"#{@_attr_value2}\"[^<>]*#{@_attr_name1}=\"#{@_attr_value1}\")(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))("
2661
2663
 
2662
- @pattern_cc_1_2 = '' << TAG_SEARCH_4_2 << @_name << TAG_SEARCH_4_3
2664
+ @pattern_cc_1_2 = String.new('') << TAG_SEARCH_4_2 << @_name << TAG_SEARCH_4_3
2663
2665
 
2664
- @pattern_cc_2 = '' << TAG_SEARCH_4_4 << @_name << TAG_CLOSE
2666
+ @pattern_cc_2 = String.new('') << TAG_SEARCH_4_4 << @_name << TAG_CLOSE
2665
2667
 
2666
- @pattern_cc_2_1 = '' << TAG_SEARCH_4_5 << @_name << TAG_CLOSE
2668
+ @pattern_cc_2_1 = String.new('') << TAG_SEARCH_4_5 << @_name << TAG_CLOSE
2667
2669
 
2668
- @pattern_cc_2_2 = '' << TAG_SEARCH_4_6 << @_name << TAG_CLOSE
2670
+ @pattern_cc_2_2 = String.new('') << TAG_SEARCH_4_6 << @_name << TAG_CLOSE
2669
2671
 
2670
2672
  #@pattern_cc_1_2 = ".*?<#{@_name}(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))"
2671
2673
  #
2672
- #@pattern_cc_2 = '' << "<\\/#{@_name}>"
2674
+ #@pattern_cc_2 = String.new('') << "<\\/#{@_name}>"
2673
2675
  #
2674
2676
  #@pattern_cc_2_1 = ".*?<\\/#{@_name}>"
2675
2677
  #
@@ -2678,7 +2680,7 @@ module Meteor
2678
2680
  #内容あり要素検索
2679
2681
  @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_1)
2680
2682
 
2681
- @sbuf = ''
2683
+ @sbuf = String.new('')
2682
2684
 
2683
2685
  @pattern_2 = Meteor::Core::Util::PatternCache.get(@pattern_cc_2)
2684
2686
  @pattern_1b = Meteor::Core::Util::PatternCache.get(@pattern_cc_1b)
@@ -2708,7 +2710,7 @@ module Meteor
2708
2710
  #全体
2709
2711
  @elm_.document = @res[0]
2710
2712
  #空要素検索用パターン
2711
- #@pattern_cc = '' << TAG_OPEN << @_name << TAG_SEARCH_NC_2_1_2 << @_attr_name1 << ATTR_EQ
2713
+ #@pattern_cc = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_NC_2_1_2 << @_attr_name1 << ATTR_EQ
2712
2714
  #@pattern_cc << @_attr_value1 << TAG_SEARCH_NC_2_6 << @_attr_name2 << ATTR_EQ
2713
2715
  #@pattern_cc << @_attr_value2 << TAG_SEARCH_NC_2_7 << @_attr_name2 << ATTR_EQ
2714
2716
  #@pattern_cc << @_attr_value2 << TAG_SEARCH_NC_2_6 << @_attr_name1 << ATTR_EQ
@@ -2767,7 +2769,7 @@ module Meteor
2767
2769
 
2768
2770
  def element_pattern_4
2769
2771
 
2770
- #@pattern_cc = '' << TAG_SEARCH_3_1_2_2 << @_attr_name1 << ATTR_EQ
2772
+ #@pattern_cc = String.new('') << TAG_SEARCH_3_1_2_2 << @_attr_name1 << ATTR_EQ
2771
2773
  #@pattern_cc << @_attr_value1 << TAG_SEARCH_2_6 << @_attr_name2 << ATTR_EQ
2772
2774
  #@pattern_cc << @_attr_value2 << TAG_SEARCH_2_7 << @_attr_name2 << ATTR_EQ
2773
2775
  #@pattern_cc << @_attr_value2 << TAG_SEARCH_2_6 << @_attr_name1 << ATTR_EQ
@@ -3263,24 +3265,24 @@ module Meteor
3263
3265
  #@res = @pattern.match(elm.attributes)
3264
3266
 
3265
3267
  #検索対象属性の存在判定
3266
- if elm.attributes.include?(' ' << attr_name << ATTR_EQ)
3268
+ if elm.attributes.include?(String.new(' ') << attr_name << ATTR_EQ)
3267
3269
 
3268
3270
  @_attr_value = attr_value
3269
3271
 
3270
3272
  #属性の置換
3271
- @pattern = Meteor::Core::Util::PatternCache.get('' << attr_name << SET_ATTR_1)
3273
+ @pattern = Meteor::Core::Util::PatternCache.get(String.new('') << attr_name << SET_ATTR_1)
3272
3274
  #@pattern = Meteor::Core::Util::PatternCache.get("#{attr_name}=\"[^\"]*\"")
3273
3275
 
3274
- elm.attributes.sub!(@pattern,'' << attr_name << ATTR_EQ << @_attr_value << DOUBLE_QUATATION)
3276
+ elm.attributes.sub!(@pattern, String.new('') << attr_name << ATTR_EQ << @_attr_value << DOUBLE_QUATATION)
3275
3277
  #elm.attributes.sub!(@pattern, "#{attr_name}=\"#{@_attr_value}\"")
3276
3278
  else
3277
3279
  #属性文字列の最後に新規の属性を追加する
3278
3280
  @_attr_value = attr_value
3279
3281
 
3280
3282
  if EMPTY != elm.attributes && EMPTY != elm.attributes.strip
3281
- elm.attributes = '' << SPACE << elm.attributes.strip
3283
+ elm.attributes = String.new('') << SPACE << elm.attributes.strip
3282
3284
  else
3283
- elm.attributes = ''
3285
+ elm.attributes = String.new('')
3284
3286
  end
3285
3287
 
3286
3288
  elm.attributes << SPACE << attr_name << ATTR_EQ << @_attr_value << DOUBLE_QUATATION
@@ -3305,7 +3307,7 @@ module Meteor
3305
3307
  def get_attr_value_(elm, attr_name)
3306
3308
 
3307
3309
  #属性検索用パターン
3308
- @pattern = Meteor::Core::Util::PatternCache.get('' << attr_name << GET_ATTR_1)
3310
+ @pattern = Meteor::Core::Util::PatternCache.get(String.new('') << attr_name << GET_ATTR_1)
3309
3311
  #@pattern = Meteor::Core::Util::PatternCache.get("#{attr_name}=\"([^\"]*)\"")
3310
3312
 
3311
3313
  @res = @pattern.match(elm.attributes)
@@ -3560,7 +3562,7 @@ module Meteor
3560
3562
 
3561
3563
  def remove_attrs_(elm, attr_name)
3562
3564
  #属性検索用パターン
3563
- @pattern = Meteor::Core::Util::PatternCache.get('' << attr_name << ERASE_ATTR_1)
3565
+ @pattern = Meteor::Core::Util::PatternCache.get(String.new('') << attr_name << ERASE_ATTR_1)
3564
3566
  #@pattern = Meteor::Core::Util::PatternCache.get("#{attr_name}=\"[^\"]*\"\\s?")
3565
3567
  #属性の置換
3566
3568
  elm.attributes.sub!(@pattern, EMPTY)
@@ -3618,7 +3620,7 @@ module Meteor
3618
3620
  @_id = Regexp.quote(id)
3619
3621
 
3620
3622
  #CXタグ検索用パターン
3621
- #@pattern_cc = '' << SEARCH_CX_1 << @_name << SEARCH_CX_2
3623
+ #@pattern_cc = String.new('') << SEARCH_CX_1 << @_name << SEARCH_CX_2
3622
3624
  #@pattern_cc << id << SEARCH_CX_3 << @_name << SEARCH_CX_4 << @_name << SEARCH_CX_5
3623
3625
  #@pattern_cc = "<!--\\s@#{tag}\\s([^<>]*id=\"#{id}\"[^<>]*)-->(((?!(<!--\\s\\/@#{tag})).)*)<!--\\s\\/@#{tag}\\s-->"
3624
3626
  @pattern_cc = "<!--\\s@#{@_name}\\s([^<>]*id=\"#{@_id}\"[^<>]*)-->(((?!(<!--\\s/@#{@_name})).)*)<!--\\s/@#{@_name}\\s-->"
@@ -3662,7 +3664,7 @@ module Meteor
3662
3664
 
3663
3665
  @_id = Regexp.quote(id)
3664
3666
 
3665
- @pattern_cc = '' << SEARCH_CX_6 << @_id << DOUBLE_QUATATION
3667
+ @pattern_cc = String.new('') << SEARCH_CX_6 << @_id << DOUBLE_QUATATION
3666
3668
  #@pattern_cc = "<!--\\s@([^<>]*)\\s[^<>]*id=\"#{@_id}\""
3667
3669
 
3668
3670
  @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
@@ -4027,41 +4029,41 @@ module Meteor
4027
4029
 
4028
4030
  #KAIGYO_CODE = "\r?\n|\r"
4029
4031
  #KAIGYO_CODE = "\r\n|\n|\r"
4030
- KAIGYO_CODE = ["\r\n".freeze, "\n".freeze, "\r".freeze]
4031
- NBSP_2 = '&nbsp;'.freeze
4032
- NBSP_3 = 'nbsp'.freeze
4033
- BR_1 = "\r?\n|\r".freeze
4034
- BR_2 = '<br>'.freeze
4032
+ KAIGYO_CODE = ["\r\n", "\n", "\r"]
4033
+ NBSP_2 = '&nbsp;'
4034
+ NBSP_3 = 'nbsp'
4035
+ BR_1 = "\r?\n|\r"
4036
+ BR_2 = '<br>'
4035
4037
 
4036
- META = 'META'.freeze
4037
- META_S = 'meta'.freeze
4038
+ META = 'META'
4039
+ META_S = 'meta'
4038
4040
 
4039
4041
  #MATCH_TAG = "br|hr|img|input|meta|base"
4040
- @@match_tag = ['br'.freeze, 'hr'.freeze, 'img'.freeze, 'input'.freeze, 'meta'.freeze, 'base'.freeze] #[Array] 内容のない要素
4042
+ @@match_tag = ['br', 'hr', 'img', 'input', 'meta', 'base'] #[Array] 内容のない要素
4041
4043
  #@@match_tag_2 = "textarea|option|pre"
4042
- @@match_tag_2 =['textarea'.freeze, 'option'.freeze, 'pre'.freeze] #[Array] 改行を<br>に変換する必要のない要素
4044
+ @@match_tag_2 =['textarea', 'option', 'pre'] #[Array] 改行を<br>に変換する必要のない要素
4043
4045
 
4044
- @@match_tag_sng = ['texarea'.freeze, 'select'.freeze, 'option'.freeze, 'form'.freeze, 'fieldset'.freeze] #[Array] 入れ子にできない要素
4046
+ @@match_tag_sng = ['texarea', 'select', 'option', 'form', 'fieldset'] #[Array] 入れ子にできない要素
4045
4047
 
4046
- HTTP_EQUIV = 'http-equiv'.freeze
4047
- CONTENT_TYPE = 'Content-Type'.freeze
4048
- CONTENT = 'content'.freeze
4048
+ HTTP_EQUIV = 'http-equiv'
4049
+ CONTENT_TYPE = 'Content-Type'
4050
+ CONTENT = 'content'
4049
4051
 
4050
- @@attr_logic = ['disabled'.freeze, 'readonly'.freeze, 'checked'.freeze, 'selected'.freeze, 'multiple'.freeze] #[Array] 論理値で指定する属性
4051
- OPTION = 'option'.freeze
4052
- SELECTED = 'selected'.freeze
4053
- INPUT = 'input'.freeze
4054
- CHECKED = 'checked'.freeze
4055
- RADIO = 'radio'.freeze
4052
+ @@attr_logic = ['disabled', 'readonly', 'checked', 'selected', 'multiple'] #[Array] 論理値で指定する属性
4053
+ OPTION = 'option'
4054
+ SELECTED = 'selected'
4055
+ INPUT = 'input'
4056
+ CHECKED = 'checked'
4057
+ RADIO = 'radio'
4056
4058
  #DISABLE_ELEMENT = "input|textarea|select|optgroup"
4057
- DISABLE_ELEMENT = ['input'.freeze, 'textarea'.freeze, 'select'.freeze, 'optgroup'.freeze] #[Array] disabled属性のある要素
4058
- DISABLED = 'disabled'.freeze
4059
+ DISABLE_ELEMENT = ['input', 'textarea', 'select', 'optgroup'] #[Array] disabled属性のある要素
4060
+ DISABLED = 'disabled'
4059
4061
  #READONLY_TYPE = "text|password"
4060
- READONLY_TYPE = ['text'.freeze, 'password'.freeze] #[Array] readonly属性のあるinput要素のタイプ
4061
- TEXTAREA = 'textarea'.freeze
4062
- READONLY='readonly'.freeze
4063
- SELECT = 'select'.freeze
4064
- MULTIPLE = 'multiple'.freeze
4062
+ READONLY_TYPE = ['text', 'password'] #[Array] readonly属性のあるinput要素のタイプ
4063
+ TEXTAREA = 'textarea'
4064
+ READONLY='readonly'
4065
+ SELECT = 'select'
4066
+ MULTIPLE = 'multiple'
4065
4067
 
4066
4068
  #@@pattern_option = Regexp.new(OPTION)
4067
4069
  #@@pattern_selected = Regexp.new(SELECTED)
@@ -4076,33 +4078,33 @@ module Meteor
4076
4078
  #@@pattern_select = Regexp.new(SELECT)
4077
4079
  #@@pattern_multiple = Regexp.new(MULTIPLE)
4078
4080
 
4079
- SELECTED_M = '\\sselected\\s|\\sselected$|\\sSELECTED\\s|\\sSELECTED$'.freeze
4081
+ SELECTED_M = '\\sselected\\s|\\sselected$|\\sSELECTED\\s|\\sSELECTED$'
4080
4082
  #SELECTED_M = [' selected ',' selected',' SELECTED ',' SELECTED']
4081
- SELECTED_R = 'selected\\s|selected$|SELECTED\\s|SELECTED$'.freeze
4082
- CHECKED_M = '\\schecked\\s|\\schecked$|\\sCHECKED\\s|\\sCHECKED$'.freeze
4083
+ SELECTED_R = 'selected\\s|selected$|SELECTED\\s|SELECTED$'
4084
+ CHECKED_M = '\\schecked\\s|\\schecked$|\\sCHECKED\\s|\\sCHECKED$'
4083
4085
  #CHECKED_M = [' checked ',' checked',' CHECKED ',' CHECKED']
4084
- CHECKED_R = 'checked\\s|checked$|CHECKED\\s|CHECKED$'.freeze
4085
- DISABLED_M = '\\sdisabled\\s|\\sdisabled$|\\sDISABLED\\s|\\sDISABLED$'.freeze
4086
+ CHECKED_R = 'checked\\s|checked$|CHECKED\\s|CHECKED$'
4087
+ DISABLED_M = '\\sdisabled\\s|\\sdisabled$|\\sDISABLED\\s|\\sDISABLED$'
4086
4088
  #DISABLED_M = [' disabled ',' disiabled',' DISABLED ',' DISABLED']
4087
- DISABLED_R = 'disabled\\s|disabled$|DISABLED\\s|DISABLED$'.freeze
4088
- READONLY_M = '\\sreadonly\\s|\\sreadonly$|\\sREADONLY\\s|\\sREADONLY$'.freeze
4089
+ DISABLED_R = 'disabled\\s|disabled$|DISABLED\\s|DISABLED$'
4090
+ READONLY_M = '\\sreadonly\\s|\\sreadonly$|\\sREADONLY\\s|\\sREADONLY$'
4089
4091
  #READONLY_M = [' readonly ',' readonly',' READONLY ',' READONLY']
4090
- READONLY_R = 'readonly\\s|readonly$|READONLY\\s|READONLY$'.freeze
4091
- MULTIPLE_M = '\\smultiple\\s|\\smultiple$|\\sMULTIPLE\\s|\\sMULTIPLE$'.freeze
4092
+ READONLY_R = 'readonly\\s|readonly$|READONLY\\s|READONLY$'
4093
+ MULTIPLE_M = '\\smultiple\\s|\\smultiple$|\\sMULTIPLE\\s|\\sMULTIPLE$'
4092
4094
  #MULTIPLE_M = [' multiple ',' multiple',' MULTIPLE ',' MULTIPLE']
4093
- MULTIPLE_R = 'multiple\\s|multiple$|MULTIPLE\\s|MULTIPLE$'.freeze
4095
+ MULTIPLE_R = 'multiple\\s|multiple$|MULTIPLE\\s|MULTIPLE$'
4094
4096
 
4095
- TRUE = 'true'.freeze
4096
- FALSE = 'false'.freeze
4097
+ TRUE = 'true'
4098
+ FALSE = 'false'
4097
4099
 
4098
4100
  #@@pattern_true = Regexp.new(TRUE)
4099
4101
  #@@pattern_false = Regexp.new(FALSE)
4100
4102
 
4101
- TYPE_L = 'type'.freeze
4102
- TYPE_U = 'TYPE'.freeze
4103
+ TYPE_L = 'type'
4104
+ TYPE_U = 'TYPE'
4103
4105
 
4104
- PATTERN_UNESCAPE = '&(amp|quot|apos|gt|lt|nbsp);'.freeze
4105
- GET_ATTRS_MAP2='\\s(disabled|readonly|checked|selected|multiple)'.freeze
4106
+ PATTERN_UNESCAPE = '&(amp|quot|apos|gt|lt|nbsp);'
4107
+ GET_ATTRS_MAP2='\\s(disabled|readonly|checked|selected|multiple)'
4106
4108
 
4107
4109
  @@pattern_selected_m = Regexp.new(SELECTED_M)
4108
4110
  @@pattern_selected_r = Regexp.new(SELECTED_R)
@@ -4122,28 +4124,28 @@ module Meteor
4122
4124
  #@@pattern_@@match_tag2 = Regexp.new(@@match_tag_2)
4123
4125
 
4124
4126
  TABLE_FOR_ESCAPE_ = {
4125
- '&' => '&amp;'.freeze,
4126
- '"' => '&quot;'.freeze,
4127
- '\'' => '&apos;'.freeze,
4128
- '<' => '&lt;'.freeze,
4129
- '>' => '&gt;'.freeze,
4130
- ' ' => '&nbsp;'.freeze,
4127
+ '&' => '&amp;',
4128
+ '"' => '&quot;',
4129
+ '\'' => '&apos;',
4130
+ '<' => '&lt;',
4131
+ '>' => '&gt;',
4132
+ ' ' => '&nbsp;',
4131
4133
  }
4132
4134
 
4133
4135
  TABLE_FOR_ESCAPE_CONTENT_ = {
4134
- '&' => '&amp;'.freeze,
4135
- '"' => '&quot;'.freeze,
4136
- '\'' => '&apos;'.freeze,
4137
- '<' => '&lt;'.freeze,
4138
- '>' => '&gt;'.freeze,
4139
- ' ' => '&nbsp;'.freeze,
4140
- "\r\n" => '<br>'.freeze,
4141
- "\r" => '<br>'.freeze,
4142
- "\n" => '<br>'.freeze,
4136
+ '&' => '&amp;',
4137
+ '"' => '&quot;',
4138
+ '\'' => '&apos;',
4139
+ '<' => '&lt;',
4140
+ '>' => '&gt;',
4141
+ ' ' => '&nbsp;',
4142
+ "\r\n" => '<br>',
4143
+ "\r" => '<br>',
4144
+ "\n" => '<br>',
4143
4145
  }
4144
4146
 
4145
- PATTERN_ESCAPE = "[&\"'<> ]".freeze
4146
- PATTERN_ESCAPE_CONTENT = "[&\"'<> \\n]".freeze
4147
+ PATTERN_ESCAPE = "[&\"'<> ]"
4148
+ PATTERN_ESCAPE_CONTENT = "[&\"'<> \\n]"
4147
4149
 
4148
4150
  @@pattern_escape = Regexp.new(PATTERN_ESCAPE)
4149
4151
  @@pattern_escape_content = Regexp.new(PATTERN_ESCAPE_CONTENT)
@@ -4269,7 +4271,7 @@ module Meteor
4269
4271
  #空要素の場合(<->内容あり要素の場合)
4270
4272
  if is_match(@@match_tag, name)
4271
4273
  #空要素検索用パターン
4272
- @pattern_cc = '' << TAG_OPEN << @_name << TAG_SEARCH_1_4_2
4274
+ @pattern_cc = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_1_4_2
4273
4275
  #@pattern_cc = "<#{@_name}(|\\s[^<>]*)>"
4274
4276
  @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
4275
4277
  @res = @pattern.match(@root.document)
@@ -4283,7 +4285,7 @@ module Meteor
4283
4285
  end
4284
4286
  else
4285
4287
  #内容あり要素検索用パターン
4286
- #@pattern_cc = '' << TAG_OPEN << @_name << TAG_SEARCH_1_1 << @_name
4288
+ #@pattern_cc = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_1_1 << @_name
4287
4289
  #@pattern_cc << TAG_SEARCH_1_2 << @_name << TAG_CLOSE
4288
4290
  @pattern_cc = "<#{@_name}(|\\s[^<>]*)>(((?!(#{tag}[^<>]*>)).)*)<\\/#{@_name}>"
4289
4291
 
@@ -4334,7 +4336,7 @@ module Meteor
4334
4336
  #空要素の場合(<->内容あり要素の場合)
4335
4337
  if is_match(@@match_tag, name)
4336
4338
  #空要素検索パターン
4337
- #@pattern_cc = '' << TAG_OPEN << @_name << TAG_SEARCH_2_1 << @_attr_name << ATTR_EQ
4339
+ #@pattern_cc = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_2_1 << @_attr_name << ATTR_EQ
4338
4340
  #@pattern_cc << @_attr_value << TAG_SEARCH_2_4_3
4339
4341
  @pattern_cc = "<#{@_name}(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\"[^<>]*)>"
4340
4342
 
@@ -4351,7 +4353,7 @@ module Meteor
4351
4353
  end
4352
4354
  else
4353
4355
  #内容あり要素検索パターン
4354
- #@pattern_cc = '' << TAG_OPEN << @_name << TAG_SEARCH_2_1 << @_attr_name << ATTR_EQ
4356
+ #@pattern_cc = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_2_1 << @_attr_name << ATTR_EQ
4355
4357
  #@pattern_cc << @_attr_value << TAG_SEARCH_2_2 << @_name
4356
4358
  #@pattern_cc << TAG_SEARCH_1_2 << @_name << TAG_CLOSE
4357
4359
  @pattern_cc = "<#{@_name}(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\"[^<>]*)>(((?!(#{@_name}[^<>]*>)).)*)<\\/#{@_name}>"
@@ -4395,7 +4397,7 @@ module Meteor
4395
4397
 
4396
4398
  element_quote_2(attr_name, attr_value)
4397
4399
 
4398
- #@pattern_cc = '' << TAG_SEARCH_3_1 << @_attr_name << ATTR_EQ << @_attr_value
4400
+ #@pattern_cc = String.new('') << TAG_SEARCH_3_1 << @_attr_name << ATTR_EQ << @_attr_value
4399
4401
  #@pattern_cc << TAG_SEARCH_2_4_4
4400
4402
  @pattern_cc = "<([^<>\"]*)\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\"[^<>]*>"
4401
4403
 
@@ -4432,7 +4434,7 @@ module Meteor
4432
4434
  #空要素の場合(<->内容あり要素の場合)
4433
4435
  if is_match(@@match_tag, name)
4434
4436
  #空要素検索パターン
4435
- #@pattern_cc = '' << TAG_OPEN << @_name << TAG_SEARCH_2_1_2 << @_attr_name1 << ATTR_EQ
4437
+ #@pattern_cc = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_2_1_2 << @_attr_name1 << ATTR_EQ
4436
4438
  #@pattern_cc << @_attr_value1 << TAG_SEARCH_2_6 << @_attr_name2 << ATTR_EQ
4437
4439
  #@pattern_cc << @_attr_value2 << TAG_SEARCH_2_7 << @_attr_name2 << ATTR_EQ
4438
4440
  #@pattern_cc << @_attr_value2 << TAG_SEARCH_2_6 << @_attr_name1 << ATTR_EQ
@@ -4453,7 +4455,7 @@ module Meteor
4453
4455
  end
4454
4456
  else
4455
4457
  #内容あり要素検索パターン
4456
- #@pattern_cc = '' << TAG_OPEN << @_name << TAG_SEARCH_2_1_2 << @_attr_name1 << ATTR_EQ
4458
+ #@pattern_cc = String.new('') << TAG_OPEN << @_name << TAG_SEARCH_2_1_2 << @_attr_name1 << ATTR_EQ
4457
4459
  #@pattern_cc << @_attr_value1 << TAG_SEARCH_2_6 << @_attr_name2 << ATTR_EQ
4458
4460
  #@pattern_cc << @_attr_value2 << TAG_SEARCH_2_7 << @_attr_name2 << ATTR_EQ
4459
4461
  #@pattern_cc << @_attr_value2 << TAG_SEARCH_2_6 << @_attr_name1 << ATTR_EQ
@@ -4503,7 +4505,7 @@ module Meteor
4503
4505
 
4504
4506
  element_quote_4(attr_name1, attr_value1, attr_name2, attr_value2)
4505
4507
 
4506
- #@pattern_cc = '' << TAG_SEARCH_3_1_2_2 << @_attr_name1 << ATTR_EQ << @_attr_value1
4508
+ #@pattern_cc = String.new('') << TAG_SEARCH_3_1_2_2 << @_attr_name1 << ATTR_EQ << @_attr_value1
4507
4509
  #@pattern_cc << TAG_SEARCH_2_6 << @_attr_name2 << ATTR_EQ << @_attr_value2
4508
4510
  #@pattern_cc << TAG_SEARCH_2_7 << @_attr_name2 << ATTR_EQ << @_attr_value2
4509
4511
  #@pattern_cc << TAG_SEARCH_2_6 << @_attr_name1 << ATTR_EQ << @_attr_value1
@@ -4553,9 +4555,9 @@ module Meteor
4553
4555
 
4554
4556
  if !@res
4555
4557
  if !EMPTY.eql?(elm.attributes) && !EMPTY.eql?(elm.attributes.strip)
4556
- elm.attributes = '' << SPACE << elm.attributes.strip
4558
+ elm.attributes = String.new('') << SPACE << elm.attributes.strip
4557
4559
  else
4558
- elm.attributes = ''
4560
+ elm.attributes = String.new('')
4559
4561
  end
4560
4562
  elm.attributes << SPACE << attr_name
4561
4563
  #else
@@ -4665,7 +4667,7 @@ module Meteor
4665
4667
  #検索対象属性の論理型是非判定
4666
4668
  if !is_match(@@attr_logic, attr_name)
4667
4669
  #属性検索用パターン
4668
- @pattern = Meteor::Core::Util::PatternCache.get('' << attr_name << ERASE_ATTR_1)
4670
+ @pattern = Meteor::Core::Util::PatternCache.get(String.new('') << attr_name << ERASE_ATTR_1)
4669
4671
  #@pattern = Meteor::Core::Util::PatternCache.get("#{attr_name}=\"[^\"]*\"\\s?")
4670
4672
  elm.attributes.sub!(@pattern, EMPTY)
4671
4673
  else
@@ -4678,14 +4680,15 @@ module Meteor
4678
4680
  private :remove_attrs_
4679
4681
 
4680
4682
  def escape(content)
4681
- #特殊文字の置換
4683
+ # 特殊文字の置換
4682
4684
  content = content.gsub(@@pattern_escape, TABLE_FOR_ESCAPE_)
4683
4685
 
4684
4686
  content
4685
4687
  end
4686
4688
 
4687
4689
  def escape_content(content, elm)
4688
- content.gsub!(@@pattern_escape_content, TABLE_FOR_ESCAPE_CONTENT_)
4690
+ # 特殊文字の置換
4691
+ content = content.gsub(@@pattern_escape_content, TABLE_FOR_ESCAPE_CONTENT_)
4689
4692
 
4690
4693
  content
4691
4694
  end
@@ -4748,35 +4751,35 @@ module Meteor
4748
4751
  #
4749
4752
  class ParserImpl < Meteor::Core::Kernel
4750
4753
 
4751
- #KAIGYO_CODE = "\r?\n|\r".freeze
4752
- KAIGYO_CODE = ["\r\n".freeze, "\n".freeze, "\r".freeze]
4753
- NBSP_2 = '&nbsp;'.freeze
4754
- NBSP_3 = 'nbsp'.freeze
4755
- BR_1 = "\r?\n|\r".freeze
4756
- BR_2 = '<br/>'.freeze
4757
- BR_3 = '<br\\/>'.freeze
4754
+ #KAIGYO_CODE = "\r?\n|\r"
4755
+ KAIGYO_CODE = ["\r\n", "\n", "\r"]
4756
+ NBSP_2 = '&nbsp;'
4757
+ NBSP_3 = 'nbsp'
4758
+ BR_1 = "\r?\n|\r"
4759
+ BR_2 = '<br/>'
4760
+ BR_3 = '<br\\/>'
4758
4761
 
4759
- META = 'META'.freeze
4760
- META_S = 'meta'.freeze
4762
+ META = 'META'
4763
+ META_S = 'meta'
4761
4764
 
4762
4765
  #@@match_tag_2 = "textarea|option|pre"
4763
- @@match_tag_2 = ['textarea'.freeze, 'option'.freeze, 'pre'.freeze] #[Array] 改行を<br/>に変換する必要のない要素
4764
-
4765
- @@attr_logic = ['disabled'.freeze, 'readonly'.freeze, 'checked'.freeze, 'selected'.freeze, 'multiple'.freeze] #[Array] 論理値で指定する属性
4766
- OPTION = 'option'.freeze
4767
- SELECTED = 'selected'.freeze
4768
- INPUT = 'input'.freeze
4769
- CHECKED = 'checked'.freeze
4770
- RADIO = 'radio'.freeze
4766
+ @@match_tag_2 = ['textarea', 'option', 'pre'] #[Array] 改行を<br/>に変換する必要のない要素
4767
+
4768
+ @@attr_logic = ['disabled', 'readonly', 'checked', 'selected', 'multiple'] #[Array] 論理値で指定する属性
4769
+ OPTION = 'option'
4770
+ SELECTED = 'selected'
4771
+ INPUT = 'input'
4772
+ CHECKED = 'checked'
4773
+ RADIO = 'radio'
4771
4774
  #DISABLE_ELEMENT = "input|textarea|select|optgroup"
4772
- DISABLE_ELEMENT = ['input'.freeze, 'textarea'.freeze, 'select'.freeze, 'optgroup'.freeze] #[Array] disabled属性のある要素
4773
- DISABLED = 'disabled'.freeze
4775
+ DISABLE_ELEMENT = ['input', 'textarea', 'select', 'optgroup'] #[Array] disabled属性のある要素
4776
+ DISABLED = 'disabled'
4774
4777
  #READONLY_TYPE = "text|password"
4775
- READONLY_TYPE = ['text'.freeze, 'password'.freeze] #[Array] readonly属性のあるinput要素のタイプ
4776
- TEXTAREA = 'textarea'.freeze
4777
- READONLY='readonly'.freeze
4778
- SELECT = 'select'.freeze
4779
- MULTIPLE = 'multiple'.freeze
4778
+ READONLY_TYPE = ['text', 'password'] #[Array] readonly属性のあるinput要素のタイプ
4779
+ TEXTAREA = 'textarea'
4780
+ READONLY='readonly'
4781
+ SELECT = 'select'
4782
+ MULTIPLE = 'multiple'
4780
4783
 
4781
4784
  #@@pattern_option = Regexp.new(OPTION)
4782
4785
  #@@pattern_selected = Regexp.new(SELECTED)
@@ -4791,38 +4794,38 @@ module Meteor
4791
4794
  #@@pattern_select = Regexp.new(SELECT)
4792
4795
  #@@pattern_multiple = Regexp.new(MULTIPLE)
4793
4796
 
4794
- SELECTED_M = '\\sselected="[^"]*"\\s|\\sselected="[^"]*"$'.freeze
4795
- SELECTED_M1 = '\\sselected="([^"]*)"\\s|\\sselected="([^"]*)"$'.freeze
4796
- SELECTED_R = 'selected="[^"]*"'.freeze
4797
- SELECTED_U = 'selected="selected"'.freeze
4798
- CHECKED_M = '\\schecked="[^"]*"\\s|\\schecked="[^"]*"$'.freeze
4799
- CHECKED_M1 = '\\schecked="([^"]*)"\\s|\\schecked="([^"]*)"$'.freeze
4800
- CHECKED_R = 'checked="[^"]*"'.freeze
4801
- CHECKED_U = 'checked="checked"'.freeze
4802
- DISABLED_M = '\\sdisabled="[^"]*"\\s|\\sdisabled="[^"]*"$'.freeze
4803
- DISABLED_M1 = '\\sdisabled="([^"]*)"\\s|\\sdisabled="([^"]*)"$'.freeze
4804
- DISABLED_R = 'disabled="[^"]*"'.freeze
4805
- DISABLED_U = 'disabled="disabled"'.freeze
4806
- READONLY_M = '\\sreadonly="[^"]*"\\s|\\sreadonly="[^"]*"$'.freeze
4807
- READONLY_M1 = '\\sreadonly="([^"]*)"\\s|\\sreadonly="([^"]*)"$'.freeze
4808
- READONLY_R = 'readonly="[^"]*"'.freeze
4809
- READONLY_U = 'readonly="readonly"'.freeze
4810
- MULTIPLE_M = '\\smultiple="[^"]*"\\s|\\smultiple="[^"]*"$'.freeze
4811
- MULTIPLE_M1 = '\\smultiple="([^"]*)"\\s|\\smultiple="([^"]*)"$'.freeze
4812
- MULTIPLE_R = 'multiple="[^"]*"'.freeze
4813
- MULTIPLE_U = 'multiple="multiple"'.freeze
4814
-
4815
- HTTP_EQUIV = 'http-equiv'.freeze
4816
- CONTENT_TYPE = 'Content-Type'.freeze
4817
- CONTENT = 'content'.freeze
4818
-
4819
- TRUE = 'true'.freeze
4820
- FALSE = 'false'.freeze
4821
-
4822
- TYPE_L = 'type'.freeze
4823
- TYPE_U = 'TYPE'.freeze
4824
-
4825
- PATTERN_UNESCAPE = '&(amp|quot|apos|gt|lt|nbsp);'.freeze
4797
+ SELECTED_M = '\\sselected="[^"]*"\\s|\\sselected="[^"]*"$'
4798
+ SELECTED_M1 = '\\sselected="([^"]*)"\\s|\\sselected="([^"]*)"$'
4799
+ SELECTED_R = 'selected="[^"]*"'
4800
+ SELECTED_U = 'selected="selected"'
4801
+ CHECKED_M = '\\schecked="[^"]*"\\s|\\schecked="[^"]*"$'
4802
+ CHECKED_M1 = '\\schecked="([^"]*)"\\s|\\schecked="([^"]*)"$'
4803
+ CHECKED_R = 'checked="[^"]*"'
4804
+ CHECKED_U = 'checked="checked"'
4805
+ DISABLED_M = '\\sdisabled="[^"]*"\\s|\\sdisabled="[^"]*"$'
4806
+ DISABLED_M1 = '\\sdisabled="([^"]*)"\\s|\\sdisabled="([^"]*)"$'
4807
+ DISABLED_R = 'disabled="[^"]*"'
4808
+ DISABLED_U = 'disabled="disabled"'
4809
+ READONLY_M = '\\sreadonly="[^"]*"\\s|\\sreadonly="[^"]*"$'
4810
+ READONLY_M1 = '\\sreadonly="([^"]*)"\\s|\\sreadonly="([^"]*)"$'
4811
+ READONLY_R = 'readonly="[^"]*"'
4812
+ READONLY_U = 'readonly="readonly"'
4813
+ MULTIPLE_M = '\\smultiple="[^"]*"\\s|\\smultiple="[^"]*"$'
4814
+ MULTIPLE_M1 = '\\smultiple="([^"]*)"\\s|\\smultiple="([^"]*)"$'
4815
+ MULTIPLE_R = 'multiple="[^"]*"'
4816
+ MULTIPLE_U = 'multiple="multiple"'
4817
+
4818
+ HTTP_EQUIV = 'http-equiv'
4819
+ CONTENT_TYPE = 'Content-Type'
4820
+ CONTENT = 'content'
4821
+
4822
+ TRUE = 'true'
4823
+ FALSE = 'false'
4824
+
4825
+ TYPE_L = 'type'
4826
+ TYPE_U = 'TYPE'
4827
+
4828
+ PATTERN_UNESCAPE = '&(amp|quot|apos|gt|lt|nbsp);'
4826
4829
 
4827
4830
  @@pattern_selected_m = Regexp.new(SELECTED_M)
4828
4831
  @@pattern_selected_m1 = Regexp.new(SELECTED_M1)
@@ -4848,28 +4851,28 @@ module Meteor
4848
4851
  #@@pattern_@@match_tag2 = Regexp.new(@@match_tag_2)
4849
4852
 
4850
4853
  TABLE_FOR_ESCAPE_ = {
4851
- '&' => '&amp;'.freeze,
4852
- '"' => '&quot;'.freeze,
4853
- '\'' => '&apos;'.freeze,
4854
- '<' => '&lt;'.freeze,
4855
- '>' => '&gt;'.freeze,
4856
- ' ' => '&nbsp;'.freeze,
4854
+ '&' => '&amp;',
4855
+ '"' => '&quot;',
4856
+ '\'' => '&apos;',
4857
+ '<' => '&lt;',
4858
+ '>' => '&gt;',
4859
+ ' ' => '&nbsp;',
4857
4860
  }
4858
4861
 
4859
4862
  TABLE_FOR_ESCAPE_CONTENT_ = {
4860
- '&' => '&amp;'.freeze,
4861
- '"' => '&quot;'.freeze,
4862
- '\'' => '&apos;'.freeze,
4863
- '<' => '&lt;'.freeze,
4864
- '>' => '&gt;'.freeze,
4865
- ' ' => '&nbsp;'.freeze,
4866
- "\r\n" => '<br/>'.freeze,
4867
- "\r" => '<br/>'.freeze,
4868
- "\n" => '<br/>'.freeze,
4863
+ '&' => '&amp;',
4864
+ '"' => '&quot;',
4865
+ '\'' => '&apos;',
4866
+ '<' => '&lt;',
4867
+ '>' => '&gt;',
4868
+ ' ' => '&nbsp;',
4869
+ "\r\n" => '<br/>',
4870
+ "\r" => '<br/>',
4871
+ "\n" => '<br/>',
4869
4872
  }
4870
4873
 
4871
- PATTERN_ESCAPE = '[&"\'<> ]'.freeze
4872
- PATTERN_ESCAPE_CONTENT = '[&"\'<> \\n]'.freeze
4874
+ PATTERN_ESCAPE = '[&"\'<> ]'
4875
+ PATTERN_ESCAPE_CONTENT = '[&"\'<> \\n]'
4873
4876
  @@pattern_escape = Regexp.new(PATTERN_ESCAPE)
4874
4877
  @@pattern_escape_content = Regexp.new(PATTERN_ESCAPE_CONTENT)
4875
4878
 
@@ -5010,7 +5013,7 @@ module Meteor
5010
5013
  if !@res
5011
5014
  #属性文字列の最後に新規の属性を追加する
5012
5015
  if elm.attributes != EMPTY
5013
- elm.attributes = '' << SPACE << elm.attributes.strip
5016
+ elm.attributes = String.new('') << SPACE << elm.attributes.strip
5014
5017
  #else
5015
5018
  end
5016
5019
  elm.attributes << SPACE << replace_update
@@ -5118,14 +5121,15 @@ module Meteor
5118
5121
  private :get_attr_map
5119
5122
 
5120
5123
  def escape(content)
5121
- #特殊文字の置換
5124
+ # 特殊文字の置換
5122
5125
  content = content.gsub(@@pattern_escape, TABLE_FOR_ESCAPE_)
5123
5126
 
5124
5127
  content
5125
5128
  end
5126
5129
 
5127
5130
  def escape_content(content, elm)
5128
- content.gsub!(@@pattern_escape_content, TABLE_FOR_ESCAPE_CONTENT_)
5131
+ # 特殊文字の置換
5132
+ content = content.gsub(@@pattern_escape_content, TABLE_FOR_ESCAPE_CONTENT_)
5129
5133
 
5130
5134
  content
5131
5135
  end
@@ -5134,7 +5138,7 @@ module Meteor
5134
5138
  private :escape_content
5135
5139
 
5136
5140
  def unescape(content)
5137
- #特殊文字の置換
5141
+ # 特殊文字の置換
5138
5142
  #「<」<-「&lt;」
5139
5143
  #「>」<-「&gt;」
5140
5144
  #「"」<-「&quotl」
@@ -5186,23 +5190,23 @@ module Meteor
5186
5190
  #
5187
5191
  class ParserImpl < Meteor::Ml::Html4::ParserImpl
5188
5192
 
5189
- CHARSET = 'charset'.freeze
5190
- UTF8 = 'utf-8'.freeze
5193
+ CHARSET = 'charset'
5194
+ UTF8 = 'utf-8'
5191
5195
 
5192
- MATCH_TAG = ['br'.freeze, 'hr'.freeze, 'img'.freeze, 'input'.freeze, 'meta'.freeze, 'base'.freeze, 'embed'.freeze, 'command'.freeze, 'keygen'.freeze] #[Array] 内容のない要素
5196
+ MATCH_TAG = ['br', 'hr', 'img', 'input', 'meta', 'base', 'embed', 'command', 'keygen'] #[Array] 内容のない要素
5193
5197
 
5194
- MATCH_TAG_SNG = ['texarea'.freeze, 'select'.freeze, 'option'.freeze, 'form'.freeze, 'fieldset'.freeze, 'figure'.freeze, 'figcaption'.freeze, 'video'.freeze, 'audio'.freeze, 'progress'.freeze, 'meter'.freeze, 'time'.freeze, 'ruby'.freeze, 'rt'.freeze, 'rp'.freeze, 'datalist'.freeze, 'output'.freeze] #[Array] 入れ子にできない要素
5198
+ MATCH_TAG_SNG = ['texarea', 'select', 'option', 'form', 'fieldset', 'figure', 'figcaption', 'video', 'audio', 'progress', 'meter', 'time', 'ruby', 'rt', 'rp', 'datalist', 'output'] #[Array] 入れ子にできない要素
5195
5199
 
5196
- ATTR_LOGIC = ['disabled'.freeze, 'readonly'.freeze, 'checked'.freeze, 'selected'.freeze, 'multiple'.freeze, 'required'.freeze] #[Array] 論理値で指定する属性
5200
+ ATTR_LOGIC = ['disabled', 'readonly', 'checked', 'selected', 'multiple', 'required'] #[Array] 論理値で指定する属性
5197
5201
 
5198
- DISABLE_ELEMENT = ['input'.freeze, 'textarea'.freeze, 'select'.freeze, 'optgroup'.freeze, 'fieldset'.freeze] #[Array] disabled属性のある要素
5202
+ DISABLE_ELEMENT = ['input', 'textarea', 'select', 'optgroup', 'fieldset'] #[Array] disabled属性のある要素
5199
5203
 
5200
5204
  REQUIRE_ELEMENT = ['input', 'textarea'] #[Array] required属性のある要素
5201
5205
  REQUIRED = 'required'
5202
5206
 
5203
- REQUIRED_M = '\\srequired\\s|\\srequired$|\\sREQUIRED\\s|\\sREQUIRED$'.freeze
5207
+ REQUIRED_M = '\\srequired\\s|\\srequired$|\\sREQUIRED\\s|\\sREQUIRED$'
5204
5208
  #REQUIRED_M = [' required ',' required',' REQUIRED ',' REQUIRED']
5205
- REQUIRED_R = 'required\\s|required$|REQUIRED\\s|REQUIRED$'.freeze
5209
+ REQUIRED_R = 'required\\s|required$|REQUIRED\\s|REQUIRED$'
5206
5210
 
5207
5211
  @@pattern_required_m = Regexp.new(REQUIRED_M)
5208
5212
  @@pattern_required_r = Regexp.new(REQUIRED_R)
@@ -5330,20 +5334,20 @@ module Meteor
5330
5334
  #
5331
5335
  class ParserImpl < Meteor::Ml::Xhtml4::ParserImpl
5332
5336
 
5333
- CHARSET = 'charset'.freeze
5334
- UTF8 = 'utf-8'.freeze
5337
+ CHARSET = 'charset'
5338
+ UTF8 = 'utf-8'
5335
5339
 
5336
- ATTR_LOGIC = ['disabled'.freeze, 'readonly'.freeze, 'checked'.freeze, 'selected'.freeze, 'multiple'.freeze, 'required'.freeze] #[Array] 論理値で指定する属性
5340
+ ATTR_LOGIC = ['disabled', 'readonly', 'checked', 'selected', 'multiple', 'required'] #[Array] 論理値で指定する属性
5337
5341
 
5338
- DISABLE_ELEMENT = ['input'.freeze, 'textarea'.freeze, 'select'.freeze, 'optgroup'.freeze, 'fieldset'.freeze] #[Array] disabled属性のある要素
5342
+ DISABLE_ELEMENT = ['input', 'textarea', 'select', 'optgroup', 'fieldset'] #[Array] disabled属性のある要素
5339
5343
 
5340
- REQUIRE_ELEMENT = ['input'.freeze, 'textarea'.freeze] #[Array] required属性のある要素
5341
- REQUIRED = 'required'.freeze
5344
+ REQUIRE_ELEMENT = ['input', 'textarea'] #[Array] required属性のある要素
5345
+ REQUIRED = 'required'
5342
5346
 
5343
- REQUIRED_M = '\\srequired="[^"]*"\\s|\\srequired="[^"]*"$'.freeze
5344
- REQUIRED_M1 = '\\srequired="([^"]*)"\\s|\\srequired="([^"]*)"$'.freeze
5345
- REQUIRED_R = 'required="[^"]*"'.freeze
5346
- REQUIRED_U = 'required="required"'.freeze
5347
+ REQUIRED_M = '\\srequired="[^"]*"\\s|\\srequired="[^"]*"$'
5348
+ REQUIRED_M1 = '\\srequired="([^"]*)"\\s|\\srequired="([^"]*)"$'
5349
+ REQUIRED_R = 'required="[^"]*"'
5350
+ REQUIRED_U = 'required="required"'
5347
5351
 
5348
5352
  @@pattern_required_m = Regexp.new(REQUIRED_M)
5349
5353
  @@pattern_required_m1 = Regexp.new(REQUIRED_M1)
@@ -5472,21 +5476,21 @@ module Meteor
5472
5476
  #
5473
5477
  class ParserImpl < Meteor::Core::Kernel
5474
5478
 
5475
- #KAIGYO_CODE = "\r?\n|\r".freeze
5476
- KAIGYO_CODE = ["\r\n".freeze, "\n".freeze, "\r".freeze]
5479
+ #KAIGYO_CODE = "\r?\n|\r"
5480
+ KAIGYO_CODE = ["\r\n", "\n", "\r"]
5477
5481
 
5478
- PATTERN_UNESCAPE = '&(amp|quot|apos|gt|lt);'.freeze
5482
+ PATTERN_UNESCAPE = '&(amp|quot|apos|gt|lt);'
5479
5483
 
5480
5484
  @@pattern_unescape = Regexp.new(PATTERN_UNESCAPE)
5481
5485
 
5482
5486
  TABLE_FOR_ESCAPE_ = {
5483
- '&' => '&amp;'.freeze,
5484
- '"' => '&quot;'.freeze,
5485
- '\'' => '&apos;'.freeze,
5486
- '<' => '&lt;'.freeze,
5487
- '>' => '&gt;'.freeze,
5487
+ '&' => '&amp;',
5488
+ '"' => '&quot;',
5489
+ '\'' => '&apos;',
5490
+ '<' => '&lt;',
5491
+ '>' => '&gt;',
5488
5492
  }
5489
- PATTERN_ESCAPE = '[&\"\'<>]'.freeze
5493
+ PATTERN_ESCAPE = '[&\"\'<>]'
5490
5494
  @@pattern_escape = Regexp.new(PATTERN_ESCAPE)
5491
5495
 
5492
5496
  #
@@ -5575,8 +5579,8 @@ module Meteor
5575
5579
  private :analyze_kaigyo_code
5576
5580
 
5577
5581
  def escape(content)
5578
- #特殊文字の置換
5579
- content.gsub!(@@pattern_escape, TABLE_FOR_ESCAPE_)
5582
+ # 特殊文字の置換
5583
+ content = content.gsub(@@pattern_escape, TABLE_FOR_ESCAPE_)
5580
5584
 
5581
5585
  content
5582
5586
  end
@@ -5590,7 +5594,7 @@ module Meteor
5590
5594
  private :escape_content
5591
5595
 
5592
5596
  def unescape(content)
5593
- #特殊文字の置換
5597
+ # 特殊文字の置換
5594
5598
  #「<」<-「&lt;」
5595
5599
  #「>」<-「&gt;」
5596
5600
  #「"」<-「&quot;」