meteor 0.9.7.2 → 0.9.7.3
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 +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
|