asip-meteor 0.9.1.0 → 0.9.1.1

Sign up to get free protection for your applications and to get access to all the features.
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