asip-meteor 0.9.1.0 → 0.9.1.1

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.
Files changed (2) hide show
  1. data/lib/meteor.rb +142 -98
  2. metadata +2 -2
data/lib/meteor.rb CHANGED
@@ -18,7 +18,7 @@
18
18
  # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
19
  #
20
20
  # @author Yasumasa Ashida
21
- # @version 0.9.1.0
21
+ # @version 0.9.1.1
22
22
  #
23
23
  if RUBY_VERSION < '1.9.0' then
24
24
  require 'kconv'
@@ -27,7 +27,7 @@ end
27
27
 
28
28
  module Meteor
29
29
 
30
- VERSION = "0.9.1.0"
30
+ VERSION = "0.9.1.1"
31
31
 
32
32
  #
33
33
  # 要素クラス
@@ -626,8 +626,8 @@ module Meteor
626
626
  TAG_SEARCH_2_2 = '"[^<>]*)>(((?!('
627
627
  TAG_SEARCH_2_2_2 = '")[^<>]*)>(((?!('
628
628
  TAG_SEARCH_2_3 = '"[^<>]*)'
629
- TAG_SEARCH_2_3_2 = "\"[^<>]*)\\/>"
630
- TAG_SEARCH_2_3_2_2 = "\")[^<>]*)\\/>"
629
+ TAG_SEARCH_2_3_2 = '"[^<>]*)\\/>'
630
+ TAG_SEARCH_2_3_2_2 = '")[^<>]*)\\/>'
631
631
  #TAG_SEARCH_2_4 = "\"[^<>\\/]*>"
632
632
  TAG_SEARCH_2_4 = '(?:[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))'
633
633
  #TAG_SEARCH_2_4_2 = "\"[^<>\\/]*)>"
@@ -1038,8 +1038,10 @@ module Meteor
1038
1038
  @res1 = @pattern.match(@root.document)
1039
1039
 
1040
1040
  #内容あり要素検索用パターン
1041
- @pattern_cc_2 = '' << TAG_OPEN << @_elmName << TAG_SEARCH_1_1 << elmName
1042
- @pattern_cc_2 << TAG_SEARCH_1_2 << @_elmName << TAG_CLOSE
1041
+ #@pattern_cc_2 = '' << TAG_OPEN << @_elmName << TAG_SEARCH_1_1 << elmName
1042
+ #@pattern_cc_2 << TAG_SEARCH_1_2 << @_elmName << TAG_CLOSE
1043
+ @pattern_cc_2 = "<#{@_elmName}(\\s?[^<>]*)>(((?!(#{elmName}[^<>]*>)).)*)<\\/#{elmName}>"
1044
+
1043
1045
 
1044
1046
  @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_2)
1045
1047
  #内容あり要素検索
@@ -1082,9 +1084,10 @@ module Meteor
1082
1084
  #全体
1083
1085
  @elm_.document = @res[0]
1084
1086
 
1085
- @pattern_cc = '' << TAG_OPEN << @_elmName << TAG_SEARCH_NC_1_1 << elmName
1086
- @pattern_cc << TAG_SEARCH_NC_1_2 << @_elmName << TAG_CLOSE
1087
-
1087
+ #@pattern_cc = '' << TAG_OPEN << @_elmName << TAG_SEARCH_NC_1_1 << elmName
1088
+ #@pattern_cc << TAG_SEARCH_NC_1_2 << @_elmName << TAG_CLOSE
1089
+ @pattern_cc = "<#{@_elmName}\\s?[^<>]*>((?!(#{@_elmName}[^<>]*>)).)*<\\/#{@_elmName}>"
1090
+
1088
1091
  #内容あり要素検索用パターン
1089
1092
  @elm_.pattern = @pattern_cc
1090
1093
 
@@ -1130,16 +1133,20 @@ module Meteor
1130
1133
  @_attrValue = escapeRegex(attrValue)
1131
1134
 
1132
1135
  #空要素検索用パターン
1133
- @pattern_cc_1 = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1 << @_attrName << ATTR_EQ
1134
- @pattern_cc_1 << @_attrValue << TAG_SEARCH_2_3_2
1136
+ #@pattern_cc_1 = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1 << @_attrName << ATTR_EQ
1137
+ #@pattern_cc_1 << @_attrValue << TAG_SEARCH_2_3_2
1138
+ @pattern_cc_1 = "<#{@_elmName}(\\s[^<>]*#{@_attrName}=\"#{@_attrValue}\"[^<>]*)\\/>"
1139
+
1135
1140
  @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_1)
1136
1141
  #空要素検索
1137
1142
  @res1 = @pattern.match(@root.document)
1138
1143
 
1139
1144
  #内容あり要素検索パターン
1140
- @pattern_cc_2 = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1 << @_attrName << ATTR_EQ
1141
- @pattern_cc_2 << @_attrValue << TAG_SEARCH_2_2 << @_elmName
1142
- @pattern_cc_2 << TAG_SEARCH_1_2 << @_elmName << TAG_CLOSE
1145
+ #@pattern_cc_2 = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1 << @_attrName << ATTR_EQ
1146
+ #@pattern_cc_2 << @_attrValue << TAG_SEARCH_2_2 << @_elmName
1147
+ #@pattern_cc_2 << TAG_SEARCH_1_2 << @_elmName << TAG_CLOSE
1148
+ @pattern_cc_2 = "<#{@_elmName}(\\s[^<>]*#{@_attrName}=\"#{@_attrValue}\"[^<>]*)>(((?!(#{@_elmName}[^<>]*>)).)*)<\\/#{@_elmName}>"
1149
+
1143
1150
  @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_2)
1144
1151
  #内容あり要素検索
1145
1152
  @res2 = @pattern.match(@root.document)
@@ -1193,9 +1200,11 @@ module Meteor
1193
1200
  #全体
1194
1201
  @elm_.document = @res[0]
1195
1202
  #内容あり要素検索用パターン
1196
- @pattern_cc = ''<< TAG_OPEN << @_elmName << TAG_SEARCH_NC_2_1 << @_attrName << ATTR_EQ
1197
- @pattern_cc << @_attrValue << TAG_SEARCH_NC_2_2 << @_elmName
1198
- @pattern_cc << TAG_SEARCH_NC_1_2 << @_elmName << TAG_CLOSE
1203
+ #@pattern_cc = ''<< TAG_OPEN << @_elmName << TAG_SEARCH_NC_2_1 << @_attrName << ATTR_EQ
1204
+ #@pattern_cc << @_attrValue << TAG_SEARCH_NC_2_2 << @_elmName
1205
+ #@pattern_cc << TAG_SEARCH_NC_1_2 << @_elmName << TAG_CLOSE
1206
+ @pattern_cc = "<#{@_elmName}\\s[^<>]*#{@_attrName}=\"#{@_attrValue}\"[^<>]*>((?!(#{@_elmName}[^<>]*>)).)*<\\/#{@_elmName}>"
1207
+
1199
1208
  @elm_.pattern = @pattern_cc
1200
1209
 
1201
1210
  @elm_.empty = true
@@ -1223,13 +1232,15 @@ module Meteor
1223
1232
 
1224
1233
  def elementWithContent_3_2(elmName)
1225
1234
 
1226
- @pattern_cc_1 = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1 << @_attrName << ATTR_EQ
1227
- @pattern_cc_1 << @_attrValue << TAG_SEARCH_2_4_2
1228
-
1235
+ #@pattern_cc_1 = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1 << @_attrName << ATTR_EQ
1236
+ #@pattern_cc_1 << @_attrValue << TAG_SEARCH_2_4_2
1237
+ @pattern_cc_1 = "<#{@_elmName}(\\s[^<>]*#{@_attrName}=\"#{@_attrValue}(?:[^<>\\/]*>|(?:(?!([^<>]*\\/>))[^<>]*>)))"
1238
+
1229
1239
  @pattern_cc_1b = '' << TAG_OPEN << @_elmName << TAG_SEARCH_1_4
1230
1240
 
1231
- @pattern_cc_1_1 = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1 << @_attrName << ATTR_EQ
1232
- @pattern_cc_1_1 << @_attrValue << TAG_SEARCH_4_7
1241
+ #@pattern_cc_1_1 = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1 << @_attrName << ATTR_EQ
1242
+ #@pattern_cc_1_1 << @_attrValue << TAG_SEARCH_4_7
1243
+ @pattern_cc_1_1 = "<#{@_elmName}(\\s[^<>]*#{@_attrName}=\"#{@_attrValue}\"(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))("
1233
1244
 
1234
1245
  @pattern_cc_1_2 = '' << TAG_SEARCH_4_2 << @_elmName << TAG_SEARCH_4_3
1235
1246
 
@@ -1299,8 +1310,10 @@ module Meteor
1299
1310
  @_attrName = escapeRegex(attrName)
1300
1311
  @_attrValue = escapeRegex(attrValue)
1301
1312
 
1302
- #@pattern_cc = '' << TAG_SEARCH_3_1 << @_attrName << ATTR_EQ << @_attrValue << TAG_SEARCH_2_4
1303
- @pattern_cc = '' << TAG_SEARCH_3_1 << @_attrName << ATTR_EQ << @_attrValue << TAG_SEARCH_2_4_2_3
1313
+ ##@pattern_cc = '' << TAG_SEARCH_3_1 << @_attrName << ATTR_EQ << @_attrValue << TAG_SEARCH_2_4
1314
+ #@pattern_cc = '' << TAG_SEARCH_3_1 << @_attrName << ATTR_EQ << @_attrValue << TAG_SEARCH_2_4_2_3
1315
+ @pattern_cc = "<([^<>\"]*)\\s[^<>]*#{@_attrName}=\"#{@_attrValue}\""
1316
+
1304
1317
  @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
1305
1318
 
1306
1319
  @res = @pattern.match(@root.document)
@@ -1334,22 +1347,26 @@ module Meteor
1334
1347
  @_attrValue2 = escapeRegex(attrValue2)
1335
1348
 
1336
1349
  #空要素検索用パターン
1337
- @pattern_cc_1 = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1_2 << @_attrName1 << ATTR_EQ
1338
- @pattern_cc_1 << @_attrValue1 << TAG_SEARCH_2_6 << @_attrName2 << ATTR_EQ
1339
- @pattern_cc_1 << @_attrValue2 << TAG_SEARCH_2_7 << @_attrName2 << ATTR_EQ
1340
- @pattern_cc_1 << @_attrValue2 << TAG_SEARCH_2_6 << @_attrName1 << ATTR_EQ
1341
- @pattern_cc_1 << @_attrValue1 << TAG_SEARCH_2_3_2_2
1350
+ #@pattern_cc_1 = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1_2 << @_attrName1 << ATTR_EQ
1351
+ #@pattern_cc_1 << @_attrValue1 << TAG_SEARCH_2_6 << @_attrName2 << ATTR_EQ
1352
+ #@pattern_cc_1 << @_attrValue2 << TAG_SEARCH_2_7 << @_attrName2 << ATTR_EQ
1353
+ #@pattern_cc_1 << @_attrValue2 << TAG_SEARCH_2_6 << @_attrName1 << ATTR_EQ
1354
+ #@pattern_cc_1 << @_attrValue1 << TAG_SEARCH_2_3_2_2
1355
+ @pattern_cc_1 = "<#{@_elmName}(\\s[^<>]*(?:#{@_attrName1}=\"#{@_attrValue1}\"[^<>]*#{@_attrName2}=\"#{@_attrValue2}\"|#{@_attrName2}=\"#{@_attrValue2}\"[^<>]*#{@_attrName1}=\"#{@_attrValue1}\")[^<>]*)\\/>"
1356
+
1342
1357
  @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_1)
1343
1358
  #空要素検索
1344
1359
  @res1 = @pattern.match(@root.document)
1345
1360
 
1346
1361
  #内容あり要素検索パターン
1347
- @pattern_cc_2 = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1_2 << @_attrName1 << ATTR_EQ
1348
- @pattern_cc_2 << @_attrValue1 << TAG_SEARCH_2_6 << @_attrName2 << ATTR_EQ
1349
- @pattern_cc_2 << @_attrValue2 << TAG_SEARCH_2_7 << @_attrName2 << ATTR_EQ
1350
- @pattern_cc_2 << @_attrValue2 << TAG_SEARCH_2_6 << @_attrName1 << ATTR_EQ
1351
- @pattern_cc_2 << @_attrValue1 << TAG_SEARCH_2_2_2 << @_elmName
1352
- @pattern_cc_2 << TAG_SEARCH_1_2 << @_elmName << TAG_CLOSE
1362
+ #@pattern_cc_2 = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1_2 << @_attrName1 << ATTR_EQ
1363
+ #@pattern_cc_2 << @_attrValue1 << TAG_SEARCH_2_6 << @_attrName2 << ATTR_EQ
1364
+ #@pattern_cc_2 << @_attrValue2 << TAG_SEARCH_2_7 << @_attrName2 << ATTR_EQ
1365
+ #@pattern_cc_2 << @_attrValue2 << TAG_SEARCH_2_6 << @_attrName1 << ATTR_EQ
1366
+ #@pattern_cc_2 << @_attrValue1 << TAG_SEARCH_2_2_2 << @_elmName
1367
+ #@pattern_cc_2 << TAG_SEARCH_1_2 << @_elmName << TAG_CLOSE
1368
+ @pattern_cc_1 = "<#{@_elmName}(\\s[^<>]*(?:#{@_attrName1}=\"#{@_attrValue1}\"[^<>]*#{@_attrName2}=\"#{@_attrValue2}\"|#{@_attrName2}=\"#{@_attrValue2}\"[^<>]*#{@_attrName1}=\"#{@_attrValue1}\")[^<>]*)>(((?!(#{@_elmName}[^<>]*>)).)*)<\\/#{@_elmName}>"
1369
+
1353
1370
  @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_2)
1354
1371
  #内容あり要素検索
1355
1372
  @res2 = @pattern.match(@root.document)
@@ -1404,12 +1421,14 @@ module Meteor
1404
1421
  #全体
1405
1422
  @elm_.document = @res[0]
1406
1423
  #内容あり要素検索用パターン
1407
- @pattern_cc = '' << TAG_OPEN << @_elmName << TAG_SEARCH_NC_2_1_2 << @_attrName1 << ATTR_EQ
1408
- @pattern_cc << @_attrValue1 << TAG_SEARCH_NC_2_6 << @_attrName2 << ATTR_EQ
1409
- @pattern_cc << @_attrValue2 << TAG_SEARCH_NC_2_7 << @_attrName2 << ATTR_EQ
1410
- @pattern_cc << @_attrValue2 << TAG_SEARCH_NC_2_6 << @_attrName1 << ATTR_EQ
1411
- @pattern_cc << @_attrValue1 << TAG_SEARCH_NC_2_2_2 << @_elmName
1412
- @pattern_cc << TAG_SEARCH_NC_1_2 << @_elmName << TAG_CLOSE
1424
+ #@pattern_cc = '' << TAG_OPEN << @_elmName << TAG_SEARCH_NC_2_1_2 << @_attrName1 << ATTR_EQ
1425
+ #@pattern_cc << @_attrValue1 << TAG_SEARCH_NC_2_6 << @_attrName2 << ATTR_EQ
1426
+ #@pattern_cc << @_attrValue2 << TAG_SEARCH_NC_2_7 << @_attrName2 << ATTR_EQ
1427
+ #@pattern_cc << @_attrValue2 << TAG_SEARCH_NC_2_6 << @_attrName1 << ATTR_EQ
1428
+ #@pattern_cc << @_attrValue1 << TAG_SEARCH_NC_2_2_2 << @_elmName
1429
+ #@pattern_cc << TAG_SEARCH_NC_1_2 << @_elmName << TAG_CLOSE
1430
+ @pattern_cc = "<#{@_elmName}\\s[^<>]*(?:#{@_attrName1}=\"#{@_attrValue1}\"[^<>]*#{@_attrName2}=\"#{@_attrValue2}\"|#{@_attrName2}=\"#{@_attrValue2}\"[^<>]*#{@_attrName1}=\"#{@_attrValue1}\")[^<>]*>((?!(#{@_elmName}[^<>]*>)).)*<\\/#{@_elmName}>"
1431
+
1413
1432
  @elm_.pattern = @pattern_cc
1414
1433
  #
1415
1434
  @elm_.empty = true
@@ -1437,20 +1456,22 @@ module Meteor
1437
1456
 
1438
1457
  def elementWithContent_5_2(elmName)
1439
1458
 
1440
- @pattern_cc_1 = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1_2 << @_attrName1 << ATTR_EQ
1441
- @pattern_cc_1 << @_attrValue1 << TAG_SEARCH_2_6 << @_attrName2 << ATTR_EQ
1442
- @pattern_cc_1 << @_attrValue2 << TAG_SEARCH_2_7 << @_attrName2 << ATTR_EQ
1443
- @pattern_cc_1 << @_attrValue2 << TAG_SEARCH_2_6 << @_attrName1 << ATTR_EQ
1444
- @pattern_cc_1 << @_attrValue1 << TAG_SEARCH_2_4_2_2
1445
-
1459
+ #@pattern_cc_1 = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1_2 << @_attrName1 << ATTR_EQ
1460
+ #@pattern_cc_1 << @_attrValue1 << TAG_SEARCH_2_6 << @_attrName2 << ATTR_EQ
1461
+ #@pattern_cc_1 << @_attrValue2 << TAG_SEARCH_2_7 << @_attrName2 << ATTR_EQ
1462
+ #@pattern_cc_1 << @_attrValue2 << TAG_SEARCH_2_6 << @_attrName1 << ATTR_EQ
1463
+ #@pattern_cc_1 << @_attrValue1 << TAG_SEARCH_2_4_2_2
1464
+ @pattern_cc_1 = "<#{@_elmName}(\\s[^<>]*(?:#{@_attrName1}=\"#{@_attrValue1}\"[^<>]*#{@_attrName2}=\"#{@_attrValue2}\"|#{@_attrName2}=\"#{@_attrValue2}\"[^<>]*#{@_attrName1}=\"#{@_attrValue1}\")([^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>)))"
1465
+
1446
1466
  @pattern_cc_1b = '' << TAG_OPEN << elmName << TAG_SEARCH_1_4
1447
1467
 
1448
- @pattern_cc_1_1 = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1_2 << @_attrName1 << ATTR_EQ
1449
- @pattern_cc_1_1 << @_attrValue1 << TAG_SEARCH_2_6 << @_attrName2 << ATTR_EQ
1450
- @pattern_cc_1_1 << @_attrValue2 << TAG_SEARCH_2_7 << @_attrName2 << ATTR_EQ
1451
- @pattern_cc_1_1 << @_attrValue2 << TAG_SEARCH_2_6 << @_attrName1 << ATTR_EQ
1452
- @pattern_cc_1_1 << @_attrValue1 << TAG_SEARCH_4_7_2
1453
-
1468
+ #@pattern_cc_1_1 = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1_2 << @_attrName1 << ATTR_EQ
1469
+ #@pattern_cc_1_1 << @_attrValue1 << TAG_SEARCH_2_6 << @_attrName2 << ATTR_EQ
1470
+ #@pattern_cc_1_1 << @_attrValue2 << TAG_SEARCH_2_7 << @_attrName2 << ATTR_EQ
1471
+ #@pattern_cc_1_1 << @_attrValue2 << TAG_SEARCH_2_6 << @_attrName1 << ATTR_EQ
1472
+ #@pattern_cc_1_1 << @_attrValue1 << TAG_SEARCH_4_7_2
1473
+ @pattern_cc_1 = "<#{@_elmName}(\\s[^<>]*(?:#{@_attrName1}=\"#{@_attrValue1}\"[^<>]*#{@_attrName2}=\"#{@_attrValue2}\"|#{@_attrName2}=\"#{@_attrValue2}\"[^<>]*#{@_attrName1}=\"#{@_attrValue1}\")(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))("
1474
+
1454
1475
  @pattern_cc_1_2 = '' << TAG_SEARCH_4_2 << @_elmName << TAG_SEARCH_4_3
1455
1476
 
1456
1477
  @pattern_cc_2 = '' << TAG_SEARCH_4_4 << @_elmName << TAG_CLOSE
@@ -1499,11 +1520,13 @@ module Meteor
1499
1520
  #全体
1500
1521
  @elm_.document = @res[0]
1501
1522
  #空要素検索用パターン
1502
- @pattern_cc = '' << TAG_OPEN << @_elmName << TAG_SEARCH_NC_2_1_2 << @_attrName1 << ATTR_EQ
1503
- @pattern_cc << @_attrValue1 << TAG_SEARCH_NC_2_6 << @_attrName2 << ATTR_EQ
1504
- @pattern_cc << @_attrValue2 << TAG_SEARCH_NC_2_7 << @_attrName2 << ATTR_EQ
1505
- @pattern_cc << @_attrValue2 << TAG_SEARCH_NC_2_6 << @_attrName1 << ATTR_EQ
1506
- @pattern_cc << @_attrValue1 << closer
1523
+ #@pattern_cc = '' << TAG_OPEN << @_elmName << TAG_SEARCH_NC_2_1_2 << @_attrName1 << ATTR_EQ
1524
+ #@pattern_cc << @_attrValue1 << TAG_SEARCH_NC_2_6 << @_attrName2 << ATTR_EQ
1525
+ #@pattern_cc << @_attrValue2 << TAG_SEARCH_NC_2_7 << @_attrName2 << ATTR_EQ
1526
+ #@pattern_cc << @_attrValue2 << TAG_SEARCH_NC_2_6 << @_attrName1 << ATTR_EQ
1527
+ #@pattern_cc << @_attrValue1 << closer
1528
+ @pattern_cc = "<#{@_elmName}\\s[^<>]*(?:#{@_attrName1}=\"#{@_attrValue1}\"[^<>]*#{@_attrName2}=\"#{@_attrValue2}\"|#{@_attrName2}=\"#{@_attrValue2}\"[^<>]*#{@_attrName1}=\"#{@_attrValue1}#{closer}"
1529
+
1507
1530
  @elm_.pattern = @pattern_cc
1508
1531
 
1509
1532
  @elm_.parser = self
@@ -1526,11 +1549,12 @@ module Meteor
1526
1549
  @_attrValue1 = escapeRegex(attrValue1)
1527
1550
  @_attrValue2 = escapeRegex(attrValue2)
1528
1551
 
1529
- @pattern_cc = '' << TAG_SEARCH_3_1_2_2 << @_attrName1 << ATTR_EQ
1530
- @pattern_cc << @_attrValue1 << TAG_SEARCH_2_6 << @_attrName2 << ATTR_EQ
1531
- @pattern_cc << @_attrValue2 << TAG_SEARCH_2_7 << @_attrName2 << ATTR_EQ
1532
- @pattern_cc << @_attrValue2 << TAG_SEARCH_2_6 << @_attrName1 << ATTR_EQ
1533
- @pattern_cc << @_attrValue1 << TAG_SEARCH_2_4_2_3
1552
+ #@pattern_cc = '' << TAG_SEARCH_3_1_2_2 << @_attrName1 << ATTR_EQ
1553
+ #@pattern_cc << @_attrValue1 << TAG_SEARCH_2_6 << @_attrName2 << ATTR_EQ
1554
+ #@pattern_cc << @_attrValue2 << TAG_SEARCH_2_7 << @_attrName2 << ATTR_EQ
1555
+ #@pattern_cc << @_attrValue2 << TAG_SEARCH_2_6 << @_attrName1 << ATTR_EQ
1556
+ #@pattern_cc << @_attrValue1 << TAG_SEARCH_2_4_2_3
1557
+ @pattern_cc = "<([^<>\"]*)\\s([^<>]*(#{@_attrName1}=\"#{@_attrValue1}\"[^<>]*#{@_attrName2}=\"#{@_attrValue2}\"|#{@_attrName2}=\"#{@_attrValue2}\"[^<>]*#{@_attrName1}=\"#{@_attrValue1}\""
1534
1558
 
1535
1559
  @pattern = PatternCache.get(@pattern_cc)
1536
1560
 
@@ -1827,7 +1851,8 @@ module Meteor
1827
1851
  elm.attributes = ''
1828
1852
  end
1829
1853
 
1830
- elm.attributes << SPACE << attrName << ATTR_EQ << @_attrValue << DOUBLE_QUATATION
1854
+ #elm.attributes << SPACE << attrName << ATTR_EQ << @_attrValue << DOUBLE_QUATATION
1855
+ elm.attributes << " #{attrName}=\"#{@_attrValue}\""
1831
1856
  end
1832
1857
 
1833
1858
  end
@@ -2233,8 +2258,9 @@ module Meteor
2233
2258
  def cxtag_2(elmName,id)
2234
2259
 
2235
2260
  #CXタグ検索用パターン
2236
- @pattern_cc = '' << SEARCH_CX_1 << elmName << SEARCH_CX_2
2237
- @pattern_cc << id << SEARCH_CX_3 << elmName << SEARCH_CX_4 << elmName << SEARCH_CX_5
2261
+ #@pattern_cc = '' << SEARCH_CX_1 << elmName << SEARCH_CX_2
2262
+ #@pattern_cc << id << SEARCH_CX_3 << elmName << SEARCH_CX_4 << elmName << SEARCH_CX_5
2263
+ @pattern_cc = "<!--\\s@#{elmName}\\s([^<>]*id=\"#{id}\"[^<>]*)-->(((?!(<!--\\s\\/@#{elmName})).)*)<!--\\s\\/@#{elmName}\\s-->"
2238
2264
 
2239
2265
  @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
2240
2266
  #CXタグ検索
@@ -3041,8 +3067,9 @@ module Meteor
3041
3067
  end
3042
3068
  else
3043
3069
  #内容あり要素検索用パターン
3044
- @pattern_cc = '' << TAG_OPEN << @_elmName << TAG_SEARCH_1_1 << elmName
3045
- @pattern_cc << TAG_SEARCH_1_2 << @_elmName << TAG_CLOSE
3070
+ #@pattern_cc = '' << TAG_OPEN << @_elmName << TAG_SEARCH_1_1 << elmName
3071
+ #@pattern_cc << TAG_SEARCH_1_2 << @_elmName << TAG_CLOSE
3072
+ @pattern_cc = "<#{elmName}(\\s?[^<>]*)>(((?!(#{elmName}[^<>]*>)).)*)<\\/#{elmName}>"
3046
3073
 
3047
3074
  @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
3048
3075
  #内容あり要素検索
@@ -3088,8 +3115,10 @@ module Meteor
3088
3115
  #空要素の場合(<->内容あり要素の場合)
3089
3116
  if isMatch(MATCH_TAG,elmName) then
3090
3117
  #空要素検索パターン
3091
- @pattern_cc = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1 << @_attrName << ATTR_EQ
3092
- @pattern_cc << @_attrValue << TAG_SEARCH_2_4_3
3118
+ #@pattern_cc = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1 << @_attrName << ATTR_EQ
3119
+ #@pattern_cc << @_attrValue << TAG_SEARCH_2_4_3
3120
+ @pattern_cc = "<#{@_elmName}(\\s[^<>]*#{@_attrName}=\"#{@_attrValue}\"[^<>]*)>"
3121
+
3093
3122
  @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
3094
3123
  #空要素検索
3095
3124
  @res = @pattern.match(@root.document)
@@ -3100,9 +3129,11 @@ module Meteor
3100
3129
  end
3101
3130
  else
3102
3131
  #内容あり要素検索パターン
3103
- @pattern_cc = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1 << @_attrName << ATTR_EQ
3104
- @pattern_cc << @_attrValue << TAG_SEARCH_2_2 << @_elmName
3105
- @pattern_cc << TAG_SEARCH_1_2 << @_elmName << TAG_CLOSE
3132
+ #@pattern_cc = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1 << @_attrName << ATTR_EQ
3133
+ #@pattern_cc << @_attrValue << TAG_SEARCH_2_2 << @_elmName
3134
+ #@pattern_cc << TAG_SEARCH_1_2 << @_elmName << TAG_CLOSE
3135
+ @pattern_cc = "<#{@_elmName}(\\s[^<>]*#{@_attrName}=\"#{@_attrValue}\"[^<>]*)>(((?!(#{@_elmName}[^<>]*>)).)*)<\\/#{@_elmName}>"
3136
+
3106
3137
  @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
3107
3138
  #内容あり要素検索
3108
3139
  @res = @pattern.match(@root.document)
@@ -3143,8 +3174,10 @@ module Meteor
3143
3174
  @_attrName = escapeRegex(attrName)
3144
3175
  @_attrValue = escapeRegex(attrValue)
3145
3176
 
3146
- @pattern_cc = '' << TAG_SEARCH_3_1 << @_attrName << ATTR_EQ << @_attrValue
3147
- @pattern_cc << TAG_SEARCH_2_4_4
3177
+ #@pattern_cc = '' << TAG_SEARCH_3_1 << @_attrName << ATTR_EQ << @_attrValue
3178
+ #@pattern_cc << TAG_SEARCH_2_4_4
3179
+ @pattern_cc = "<([^<>\"]*)\\s[^<>]*#{@_attrName}=\"#{@_attrValue}\"[^<>]*>"
3180
+
3148
3181
  @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
3149
3182
  @res = @pattern.match(@root.document)
3150
3183
 
@@ -3179,11 +3212,13 @@ module Meteor
3179
3212
  #空要素の場合(<->内容あり要素の場合)
3180
3213
  if isMatch(MATCH_TAG,elmName) then
3181
3214
  #空要素検索パターン
3182
- @pattern_cc = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1_2 << @_attrName1 << ATTR_EQ
3183
- @pattern_cc << @_attrValue1 << TAG_SEARCH_2_6 << @_attrName2 << ATTR_EQ
3184
- @pattern_cc << @_attrValue2 << TAG_SEARCH_2_7 << @_attrName2 << ATTR_EQ
3185
- @pattern_cc << @_attrValue2 << TAG_SEARCH_2_6 << @_attrName1 << ATTR_EQ
3186
- @pattern_cc << @_attrValue1 << TAG_SEARCH_2_4_3_2
3215
+ #@pattern_cc = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1_2 << @_attrName1 << ATTR_EQ
3216
+ #@pattern_cc << @_attrValue1 << TAG_SEARCH_2_6 << @_attrName2 << ATTR_EQ
3217
+ #@pattern_cc << @_attrValue2 << TAG_SEARCH_2_7 << @_attrName2 << ATTR_EQ
3218
+ #@pattern_cc << @_attrValue2 << TAG_SEARCH_2_6 << @_attrName1 << ATTR_EQ
3219
+ #@pattern_cc << @_attrValue1 << TAG_SEARCH_2_4_3_2
3220
+ @pattern_cc = "<#{@_elmName}(\\s[^<>]*(?:#{@_attrName1}=\"#{@_attrValue1}\"[^<>]*#{@_attrName2}=\"#{@_attrValue2}\"|#{@_attrName2}=\"#{@_attrValue2}\"[^<>]*#{@_attrName1}=\"#{@_attrValue1}\")[^<>]*)>"
3221
+
3187
3222
  @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
3188
3223
  #空要素検索
3189
3224
  @res = @pattern.match(@root.document)
@@ -3195,12 +3230,14 @@ module Meteor
3195
3230
  end
3196
3231
  else
3197
3232
  #内容あり要素検索パターン
3198
- @pattern_cc = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1_2 << @_attrName1 << ATTR_EQ
3199
- @pattern_cc << @_attrValue1 << TAG_SEARCH_2_6 << @_attrName2 << ATTR_EQ
3200
- @pattern_cc << @_attrValue2 << TAG_SEARCH_2_7 << @_attrName2 << ATTR_EQ
3201
- @pattern_cc << @_attrValue2 << TAG_SEARCH_2_6 << @_attrName1 << ATTR_EQ
3202
- @pattern_cc << @_attrValue1 << TAG_SEARCH_2_2_2 << @_elmName
3203
- @pattern_cc << TAG_SEARCH_1_2 << @_elmName << TAG_CLOSE
3233
+ #@pattern_cc = '' << TAG_OPEN << @_elmName << TAG_SEARCH_2_1_2 << @_attrName1 << ATTR_EQ
3234
+ #@pattern_cc << @_attrValue1 << TAG_SEARCH_2_6 << @_attrName2 << ATTR_EQ
3235
+ #@pattern_cc << @_attrValue2 << TAG_SEARCH_2_7 << @_attrName2 << ATTR_EQ
3236
+ #@pattern_cc << @_attrValue2 << TAG_SEARCH_2_6 << @_attrName1 << ATTR_EQ
3237
+ #@pattern_cc << @_attrValue1 << TAG_SEARCH_2_2_2 << @_elmName
3238
+ #@pattern_cc << TAG_SEARCH_1_2 << @_elmName << TAG_CLOSE
3239
+ @pattern_cc = "<#{@_elmName}(\\s[^<>]*(?:#{@_attrName1}=\"#{@_attrValue1}\"[^<>]*#{@_attrName2}=\"#{@_attrValue2}\"|#{@_attrName2}=\"#{@_attrValue2}\"[^<>]*#{@_attrName1}=\"#{@_attrValue1}\")[^<>]*)>(((?!(#{@_elmName}[^<>]*>)).)*)<\\/#{@_elmName}>"
3240
+
3204
3241
  @pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
3205
3242
  #内容あり要素検索
3206
3243
  @res = @pattern.match(@root.document)
@@ -3246,13 +3283,14 @@ module Meteor
3246
3283
  @_attrName2 = escapeRegex(attrName2)
3247
3284
  @_attrValue2 = escapeRegex(attrValue2)
3248
3285
 
3249
- @pattern_cc = '' << TAG_SEARCH_3_1_2_2 << @_attrName1 << ATTR_EQ << @_attrValue1
3250
- @pattern_cc << TAG_SEARCH_2_6 << @_attrName2 << ATTR_EQ << @_attrValue2
3251
- @pattern_cc << TAG_SEARCH_2_7 << @_attrName2 << ATTR_EQ << @_attrValue2
3252
- @pattern_cc << TAG_SEARCH_2_6 << @_attrName1 << ATTR_EQ << @_attrValue1
3253
- @pattern_cc << TAG_SEARCH_2_4_3_2
3286
+ #@pattern_cc = '' << TAG_SEARCH_3_1_2_2 << @_attrName1 << ATTR_EQ << @_attrValue1
3287
+ #@pattern_cc << TAG_SEARCH_2_6 << @_attrName2 << ATTR_EQ << @_attrValue2
3288
+ #@pattern_cc << TAG_SEARCH_2_7 << @_attrName2 << ATTR_EQ << @_attrValue2
3289
+ #@pattern_cc << TAG_SEARCH_2_6 << @_attrName1 << ATTR_EQ << @_attrValue1
3290
+ #@pattern_cc << TAG_SEARCH_2_4_3_2
3291
+ @pattern_CC = @pattern_cc = "<([^<>\"]*)\\s([^<>]*(#{@_attrName1}=\"#{@_attrValue1}\"[^<>]*#{@_attrName2}=\"#{@_attrValue2}\"|#{@_attrName2}=\"#{@_attrValue2}\"[^<>]*#{@_attrName1}=\"#{@_attrValue1}\")[^<>]*)>"
3254
3292
 
3255
- @pattern = Patterncache.get(@pattern_cc)
3293
+ @pattern = PatternCache.get(@pattern_cc)
3256
3294
 
3257
3295
  @res = @pattern.match(@root.document)
3258
3296
 
@@ -3407,10 +3445,12 @@ module Meteor
3407
3445
  if @res then
3408
3446
  elm.mono = true
3409
3447
  if elm.cx then
3410
- @pattern_cc = '' << SET_CX_1 << elm.name << SPACE << elm.attributes << SET_CX_2 << elm.mixed_content << SET_CX_3 << elm.name << SET_CX_4
3448
+ #@pattern_cc = '' << SET_CX_1 << elm.name << SPACE << elm.attributes << SET_CX_2 << elm.mixed_content << SET_CX_3 << elm.name << SET_CX_4
3449
+ @pattern_cc = "<!-- @#{elmName} #{elm.attributes} -->#{elm.mixed_content}<!-- /@#{elm.name} -->"
3411
3450
  else
3412
3451
  if elm.empty then
3413
- @pattern_cc = '' << TAG_OPEN << elm.name << elm.attributes << TAG_CLOSE << elm.mixed_content << TAG_OPEN3 << elm.name << TAG_CLOSE
3452
+ #@pattern_cc = '' << TAG_OPEN << elm.name << elm.attributes << TAG_CLOSE << elm.mixed_content << TAG_OPEN3 << elm.name << TAG_CLOSE
3453
+ @pattern_cc = "<#{elm.name}#{elm.attributes}>#{elm.mixed_content}</#{elm.name}>"
3414
3454
  else
3415
3455
  @pattern_cc = '' << TAG_OPEN << elm.name << elm.attributes << TAG_CLOSE
3416
3456
  end
@@ -3917,10 +3957,12 @@ module Meteor
3917
3957
  if @res then
3918
3958
  elm.mono = true
3919
3959
  if elm.cx then
3920
- @pattern_cc = '' << SET_CX_1 << elm.name << SPACE << elm.attributes << SET_CX_2 << elm.mixed_content << SET_CX_3 << elm.name << SET_CX_4
3960
+ #@pattern_cc = '' << SET_CX_1 << elm.name << SPACE << elm.attributes << SET_CX_2 << elm.mixed_content << SET_CX_3 << elm.name << SET_CX_4
3961
+ @pattern_cc = "<!-- @#{elmName} #{elm.attributes} -->#{elm.mixed_content}<!-- /@#{elm.name} -->"
3921
3962
  else
3922
3963
  if elm.empty then
3923
- @pattern_cc = '' << TAG_OPEN << elm.name << elm.attributes << TAG_CLOSE << elm.mixed_content << TAG_OPEN3 << elm.name << TAG_CLOSE
3964
+ #@pattern_cc = '' << TAG_OPEN << elm.name << elm.attributes << TAG_CLOSE << elm.mixed_content << TAG_OPEN3 << elm.name << TAG_CLOSE
3965
+ @pattern_cc = "<#{elm.name}#{elm.attributes}>#{elm.mixed_content}</#{elm.name}>"
3924
3966
  else
3925
3967
  @pattern_cc = '' << TAG_OPEN << elm.name << elm.attributes << TAG_CLOSE3
3926
3968
  end
@@ -4140,10 +4182,12 @@ module Meteor
4140
4182
  if @res then
4141
4183
  elm.mono = true
4142
4184
  if elm.cx then
4143
- @pattern_cc = '' << SET_CX_1 << elm.name << SPACE << elm.attributes << SET_CX_2 << elm.mixed_content << SET_CX_3 << elm.name << SET_CX_4
4185
+ #@pattern_cc = '' << SET_CX_1 << elm.name << SPACE << elm.attributes << SET_CX_2 << elm.mixed_content << SET_CX_3 << elm.name << SET_CX_4
4186
+ @pattern_cc = "<!-- @#{elmName} #{elm.attributes} -->#{elm.mixed_content}<!-- /@#{elm.name} -->"
4144
4187
  else
4145
4188
  if elm.empty then
4146
- @pattern_cc = '' << TAG_OPEN << elm.name << elm.attributes << TAG_CLOSE << elm.mixed_content << TAG_OPEN3 << elm.name << TAG_CLOSE
4189
+ #@pattern_cc = '' << TAG_OPEN << elm.name << elm.attributes << TAG_CLOSE << elm.mixed_content << TAG_OPEN3 << elm.name << TAG_CLOSE
4190
+ @pattern_cc = "<#{elm.name}#{elm.attributes}>#{elm.mixed_content}</#{elm.name}>"
4147
4191
  else
4148
4192
  @pattern_cc = '' << TAG_OPEN << elm.name << elm.attributes << TAG_CLOSE3
4149
4193
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: asip-meteor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1.0
4
+ version: 0.9.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - asip
@@ -9,7 +9,7 @@ autorequire: meteor
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-03-24 00:00:00 -07:00
12
+ date: 2009-03-27 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies: []
15
15