meteor 0.9.7.2 → 0.9.7.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/meteor.rb +33 -7
- metadata +3 -2
data/lib/meteor.rb
CHANGED
@@ -18,12 +18,12 @@
|
|
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.7.
|
21
|
+
# @version 0.9.7.3
|
22
22
|
#
|
23
23
|
|
24
24
|
module Meteor
|
25
25
|
|
26
|
-
VERSION = "0.9.7.
|
26
|
+
VERSION = "0.9.7.3"
|
27
27
|
|
28
28
|
RUBY_VERSION_1_9_0 = '1.9.0'
|
29
29
|
|
@@ -215,6 +215,7 @@ module Meteor
|
|
215
215
|
@document = "<#{@name}#{@attributes}>#{@mixed_content}</#{@name}>"
|
216
216
|
else
|
217
217
|
@document = '' << Meteor::Core::Kernel::TAG_OPEN << @name << @attributes << Meteor::Core::Kernel::TAG_CLOSE
|
218
|
+
#@document = "<#{@name}#{@attributes}>"
|
218
219
|
end
|
219
220
|
end
|
220
221
|
when Parser::XHTML, Parser::XHTML5, Parser::XML then
|
@@ -227,6 +228,7 @@ module Meteor
|
|
227
228
|
@document = "<#{@name}#{@attributes}>#{@mixed_content}</#{@name}>"
|
228
229
|
else
|
229
230
|
@document = '' << Meteor::Core::Kernel::TAG_OPEN << @name << @attributes << Meteor::Core::Kernel::TAG_CLOSE3
|
231
|
+
#@document = "<#{@name}#{@attributes}/>"
|
230
232
|
end
|
231
233
|
end
|
232
234
|
end
|
@@ -1622,7 +1624,7 @@ module Meteor
|
|
1622
1624
|
@_elm_name = Regexp.quote(elm_name)
|
1623
1625
|
|
1624
1626
|
#要素検索用パターン
|
1625
|
-
@pattern_cc =
|
1627
|
+
@pattern_cc = "<#{@_elm_name}(|\\s[^<>]*)\\/>|<#{@_elm_name}((?:|\\s[^<>]*))>(((?!(#{@_elm_name}[^<>]*>)).)*)<\\/#{@_elm_name}>"
|
1626
1628
|
|
1627
1629
|
@pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
|
1628
1630
|
#内容あり要素検索
|
@@ -1678,6 +1680,7 @@ module Meteor
|
|
1678
1680
|
@elm_.document = @res[0]
|
1679
1681
|
#空要素検索用パターン
|
1680
1682
|
@pattern_cc = '' << TAG_OPEN << @_elm_name << TAG_SEARCH_NC_1_3
|
1683
|
+
#@pattern_cc = "<#{@_elm_name}(?:|\\s[^<>]*)\\/>"
|
1681
1684
|
@elm_.pattern = @pattern_cc
|
1682
1685
|
|
1683
1686
|
@elm_.empty = false
|
@@ -1823,18 +1826,24 @@ module Meteor
|
|
1823
1826
|
@pattern_cc_1 = "<#{@_elm_name}(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}(?:[^<>\\/]*>|(?:(?!([^<>]*\\/>))[^<>]*>)))"
|
1824
1827
|
|
1825
1828
|
@pattern_cc_1b = '' << TAG_OPEN << @_elm_name << TAG_SEARCH_1_4
|
1829
|
+
#@pattern_cc_1b = "<#{@_elm_name}(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))"
|
1826
1830
|
|
1827
1831
|
#@pattern_cc_1_1 = '' << TAG_OPEN << @_elm_name << TAG_SEARCH_2_1 << @_attr_name << ATTR_EQ
|
1828
1832
|
#@pattern_cc_1_1 << @_attr_value << TAG_SEARCH_4_7
|
1829
1833
|
@pattern_cc_1_1 = "<#{@_elm_name}(\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}\"(?:[^<>\\/]*>|(?!([^<>]*\\/>))[^<>]*>))("
|
1830
1834
|
|
1831
1835
|
@pattern_cc_1_2 = '' << TAG_SEARCH_4_2 << @_elm_name << TAG_SEARCH_4_3
|
1836
|
+
#@pattern_cc_1_2 = ".*?<#{@_elm_name}(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))"
|
1837
|
+
|
1832
1838
|
|
1833
1839
|
@pattern_cc_2 = '' << TAG_SEARCH_4_4 << @_elm_name << TAG_CLOSE
|
1840
|
+
#@pattern_cc_2 = '' << "<\\/#{@_elm_name}>"
|
1834
1841
|
|
1835
1842
|
@pattern_cc_2_1 = '' << TAG_SEARCH_4_5 << @_elm_name << TAG_CLOSE
|
1843
|
+
#@pattern_cc_2_1 = ".*?<\\/#{@_elm_name}>"
|
1836
1844
|
|
1837
1845
|
@pattern_cc_2_2 = '' << TAG_SEARCH_4_6 << @_elm_name << TAG_CLOSE
|
1846
|
+
#@pattern_cc_2_2 = ".*?)<\\/#{@_elm_name}>"
|
1838
1847
|
|
1839
1848
|
#内容あり要素検索
|
1840
1849
|
@pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_1)
|
@@ -1878,6 +1887,7 @@ module Meteor
|
|
1878
1887
|
@elm_.document = @res[0]
|
1879
1888
|
#空要素検索用パターン
|
1880
1889
|
@pattern_cc = '' << TAG_OPEN << @_elm_name << TAG_SEARCH_NC_2_1 << @_attr_name << ATTR_EQ << @_attr_value << closer
|
1890
|
+
#@pattern_cc = "<#{@_elm_name}\\s[^<>]*#{@_attr_name}=\"#{@_attr_value}#{closer}"
|
1881
1891
|
@elm_.pattern = @pattern_cc
|
1882
1892
|
|
1883
1893
|
@elm_.parser = self
|
@@ -2264,6 +2274,7 @@ module Meteor
|
|
2264
2274
|
@pattern_cc_1 = "<#{@_elm_name}(\\s[^<>]*(?:#{@_attr_name1}=\"#{@_attr_value1}\"[^<>]*#{@_attr_name2}=\"#{@_attr_value2}\"|#{@_attr_name2}=\"#{@_attr_value2}\"[^<>]*#{@_attr_name1}=\"#{@_attr_value1}\")([^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>)))"
|
2265
2275
|
|
2266
2276
|
@pattern_cc_1b = '' << TAG_OPEN << @_elm_name << TAG_SEARCH_1_4
|
2277
|
+
#@pattern_cc_1b = "<#{@_elm_name}(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))"
|
2267
2278
|
|
2268
2279
|
#@pattern_cc_1_1 = '' << TAG_OPEN << @_elm_name << TAG_SEARCH_2_1_2 << @_attr_name1 << ATTR_EQ
|
2269
2280
|
#@pattern_cc_1_1 << @_attr_value1 << TAG_SEARCH_2_6 << @_attr_name2 << ATTR_EQ
|
@@ -2280,6 +2291,14 @@ module Meteor
|
|
2280
2291
|
|
2281
2292
|
@pattern_cc_2_2 = '' << TAG_SEARCH_4_6 << @_elm_name << TAG_CLOSE
|
2282
2293
|
|
2294
|
+
#@pattern_cc_1_2 = ".*?<#{@_elm_name}(\\s[^<>\\/]*>|((?!([^<>]*\\/>))[^<>]*>))"
|
2295
|
+
#
|
2296
|
+
#@pattern_cc_2 = '' << "<\\/#{@_elm_name}>"
|
2297
|
+
#
|
2298
|
+
#@pattern_cc_2_1 = ".*?<\\/#{@_elm_name}>"
|
2299
|
+
#
|
2300
|
+
#@pattern_cc_2_2 = ".*?)<\\/#{@_elm_name}>"
|
2301
|
+
|
2283
2302
|
#内容あり要素検索
|
2284
2303
|
@pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc_1)
|
2285
2304
|
|
@@ -2621,9 +2640,10 @@ module Meteor
|
|
2621
2640
|
|
2622
2641
|
#属性の置換
|
2623
2642
|
@pattern = Meteor::Core::Util::PatternCache.get('' << attr_name << SET_ATTR_1)
|
2643
|
+
#@pattern = Meteor::Core::Util::PatternCache.get("#{attr_name}=\"[^\"]*\"")
|
2624
2644
|
|
2625
|
-
|
2626
|
-
elm.attributes.sub!(@pattern, "#{attr_name}=\"#{@_attr_value}\"")
|
2645
|
+
elm.attributes.sub!(@pattern,'' << attr_name << ATTR_EQ << @_attr_value << DOUBLE_QUATATION)
|
2646
|
+
#elm.attributes.sub!(@pattern, "#{attr_name}=\"#{@_attr_value}\"")
|
2627
2647
|
else
|
2628
2648
|
#属性文字列の最後に新規の属性を追加する
|
2629
2649
|
@_attr_value = attr_value
|
@@ -2634,8 +2654,8 @@ module Meteor
|
|
2634
2654
|
elm.attributes = ''
|
2635
2655
|
end
|
2636
2656
|
|
2637
|
-
|
2638
|
-
elm.attributes << " #{attr_name}=\"#{@_attr_value}\""
|
2657
|
+
elm.attributes << SPACE << attr_name << ATTR_EQ << @_attr_value << DOUBLE_QUATATION
|
2658
|
+
#elm.attributes << " #{attr_name}=\"#{@_attr_value}\""
|
2639
2659
|
end
|
2640
2660
|
end
|
2641
2661
|
|
@@ -2657,6 +2677,7 @@ module Meteor
|
|
2657
2677
|
|
2658
2678
|
#属性検索用パターン
|
2659
2679
|
@pattern = Meteor::Core::Util::PatternCache.get('' << attr_name << GET_ATTR_1)
|
2680
|
+
#@pattern = Meteor::Core::Util::PatternCache.get("#{attr_name}=\"([^\"]*)\"")
|
2660
2681
|
|
2661
2682
|
@res = @pattern.match(elm.attributes)
|
2662
2683
|
|
@@ -2844,6 +2865,7 @@ module Meteor
|
|
2844
2865
|
def remove_attrs_(elm, attr_name)
|
2845
2866
|
#属性検索用パターン
|
2846
2867
|
@pattern = Meteor::Core::Util::PatternCache.get('' << attr_name << ERASE_ATTR_1)
|
2868
|
+
#@pattern = Meteor::Core::Util::PatternCache.get("#{attr_name}=\"[^\"]*\"\\s?")
|
2847
2869
|
#属性の置換
|
2848
2870
|
elm.attributes.sub!(@pattern, EMPTY)
|
2849
2871
|
end
|
@@ -2945,6 +2967,7 @@ module Meteor
|
|
2945
2967
|
@_id = Regexp.quote(id)
|
2946
2968
|
|
2947
2969
|
@pattern_cc = '' << SEARCH_CX_6 << @_id << DOUBLE_QUATATION
|
2970
|
+
#@pattern_cc = "<!--\\s@([^<>]*)\\s[^<>]*id=\"#{@_id}\""
|
2948
2971
|
|
2949
2972
|
@pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
|
2950
2973
|
|
@@ -3020,6 +3043,7 @@ module Meteor
|
|
3020
3043
|
else
|
3021
3044
|
#空要素の場合
|
3022
3045
|
elm.document = '' << TAG_OPEN << elm.name << @_attributes << closer
|
3046
|
+
#elm.document = "<#{elm.name}#{@_attributes}#{closer}"
|
3023
3047
|
end
|
3024
3048
|
else
|
3025
3049
|
@_content = elm.mixed_content
|
@@ -3732,6 +3756,7 @@ module Meteor
|
|
3732
3756
|
if is_match(@@match_tag, elm_name) then
|
3733
3757
|
#空要素検索用パターン
|
3734
3758
|
@pattern_cc = '' << TAG_OPEN << @_elm_name << TAG_SEARCH_1_4_2
|
3759
|
+
#@pattern_cc = "<#{@_elm_name}(|\\s[^<>]*)>"
|
3735
3760
|
@pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
|
3736
3761
|
@res = @pattern.match(@root.document)
|
3737
3762
|
if @res then
|
@@ -4098,6 +4123,7 @@ module Meteor
|
|
4098
4123
|
if !is_match(@@attr_logic, attr_name) then
|
4099
4124
|
#属性検索用パターン
|
4100
4125
|
@pattern = Meteor::Core::Util::PatternCache.get('' << attr_name << ERASE_ATTR_1)
|
4126
|
+
#@pattern = Meteor::Core::Util::PatternCache.get("#{attr_name}=\"[^\"]*\"\\s?")
|
4101
4127
|
elm.attributes.sub!(@pattern, EMPTY)
|
4102
4128
|
else
|
4103
4129
|
#属性検索用パターン
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: meteor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.7.
|
4
|
+
version: 0.9.7.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-11-13 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: A lightweight (X)HTML(5) & XML parser
|
15
15
|
email: ys.ashida@gmail.com
|
@@ -63,3 +63,4 @@ specification_version: 3
|
|
63
63
|
summary: A lightweight (X)HTML(5) & XML parser
|
64
64
|
test_files:
|
65
65
|
- test/meteor_test.rb
|
66
|
+
has_rdoc: false
|