asip-meteor 0.9.1.8 → 0.9.1.9
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/meteor.rb +137 -230
- 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.
|
21
|
+
# @version 0.9.1.9
|
22
22
|
#
|
23
23
|
|
24
24
|
|
@@ -31,7 +31,7 @@ end
|
|
31
31
|
|
32
32
|
module Meteor
|
33
33
|
|
34
|
-
VERSION = "0.9.1.
|
34
|
+
VERSION = "0.9.1.9"
|
35
35
|
|
36
36
|
ZERO = 0
|
37
37
|
ONE = 1
|
@@ -84,8 +84,7 @@ module Meteor
|
|
84
84
|
#@mono = false
|
85
85
|
#@parent = false
|
86
86
|
@arguments = AttributeMap.new
|
87
|
-
|
88
|
-
@usable = ZERO
|
87
|
+
@usable = true
|
89
88
|
end
|
90
89
|
private :initialize_s
|
91
90
|
|
@@ -102,17 +101,15 @@ module Meteor
|
|
102
101
|
@empty = elm.empty
|
103
102
|
@cx = elm.cx
|
104
103
|
@mono = elm.mono
|
105
|
-
@parent = elm.parent
|
106
104
|
@parser = elm.parser
|
107
105
|
@arguments = AttributeMap.new(elm.arguments)
|
108
|
-
|
109
|
-
@
|
106
|
+
@usable = true
|
107
|
+
@origin = elm
|
110
108
|
elm.parser.e_cache.store(elm.object_id,self)
|
111
109
|
end
|
112
110
|
private :initialize_e
|
113
111
|
|
114
112
|
def self.new!(elm)
|
115
|
-
#@obj = elm.parser.e_cache[elm.origin]
|
116
113
|
@obj = elm.parser.e_cache[elm.object_id]
|
117
114
|
if @obj then
|
118
115
|
@obj.attributes = String.new(elm.attributes)
|
@@ -120,11 +117,10 @@ module Meteor
|
|
120
117
|
@obj.pattern = String.new(elm.pattern)
|
121
118
|
@obj.document = String.new(elm.document)
|
122
119
|
@obj.arguments = AttributeMap.new(elm.arguments)
|
123
|
-
@obj.usable =
|
120
|
+
@obj.usable = true
|
124
121
|
@obj
|
125
122
|
else
|
126
123
|
@obj = self.new(elm)
|
127
|
-
#elm.parser.e_cache.store(elm.origin,@obj)
|
128
124
|
@obj
|
129
125
|
end
|
130
126
|
|
@@ -138,13 +134,31 @@ module Meteor
|
|
138
134
|
attr_accessor :empty
|
139
135
|
attr_accessor :cx
|
140
136
|
attr_accessor :mono
|
141
|
-
attr_accessor :parent
|
142
137
|
attr_accessor :parser
|
143
138
|
attr_accessor :type_value
|
144
139
|
attr_accessor :arguments
|
145
140
|
attr_accessor :usable
|
146
|
-
|
147
|
-
|
141
|
+
attr_accessor :origin
|
142
|
+
|
143
|
+
#
|
144
|
+
# 子要素を取得する
|
145
|
+
#
|
146
|
+
# @param [Array] args 引数配列
|
147
|
+
# @return [Element] 子要素
|
148
|
+
#
|
149
|
+
def child(*args)
|
150
|
+
@parser.element(*args)
|
151
|
+
end
|
152
|
+
|
153
|
+
#
|
154
|
+
# CX(コメント拡張)タグを取得する
|
155
|
+
#
|
156
|
+
# @param [Array] args 引数配列
|
157
|
+
# @return [Meteor::Element] 要素
|
158
|
+
#
|
159
|
+
def cxtag(*args)
|
160
|
+
@parser.cxtag(*args)
|
161
|
+
end
|
148
162
|
#
|
149
163
|
# 属性を編集する or 属性の値を取得する
|
150
164
|
#
|
@@ -164,8 +178,6 @@ module Meteor
|
|
164
178
|
@parser.attribute_map(self)
|
165
179
|
end
|
166
180
|
|
167
|
-
|
168
|
-
|
169
181
|
#
|
170
182
|
# 内容をセットする or 内容を取得する
|
171
183
|
#
|
@@ -230,6 +242,14 @@ module Meteor
|
|
230
242
|
@parser.remove_element(self)
|
231
243
|
end
|
232
244
|
|
245
|
+
def print
|
246
|
+
@parser.print
|
247
|
+
end
|
248
|
+
|
249
|
+
def flush
|
250
|
+
@parser.flush
|
251
|
+
end
|
252
|
+
|
233
253
|
end
|
234
254
|
|
235
255
|
#
|
@@ -251,26 +271,17 @@ module Meteor
|
|
251
271
|
#@character_encoding=''
|
252
272
|
|
253
273
|
#フックドキュメント
|
254
|
-
@hook_document =
|
255
|
-
#フック判定フラグ
|
256
|
-
#@hook = false
|
257
|
-
#単一要素フック判定フラグ
|
258
|
-
#@mono_hook = false
|
259
|
-
#要素
|
260
|
-
#@element = nil
|
274
|
+
@hook_document = ''
|
261
275
|
#変更可能要素
|
262
|
-
#@
|
276
|
+
#@element = nil
|
263
277
|
end
|
264
278
|
|
265
279
|
attr_accessor :content_type
|
266
280
|
attr_accessor :kaigyo_code
|
267
281
|
attr_accessor :character_encoding
|
282
|
+
attr_accessor :document
|
268
283
|
attr_accessor :hook_document
|
269
|
-
attr_accessor :
|
270
|
-
attr_accessor :mono_hook
|
271
|
-
attr_accessor :element
|
272
|
-
attr_accessor :mutableElement
|
273
|
-
attr_accessor :document
|
284
|
+
attr_accessor :element
|
274
285
|
end
|
275
286
|
|
276
287
|
#
|
@@ -341,7 +352,6 @@ module Meteor
|
|
341
352
|
attr.removed = false
|
342
353
|
end
|
343
354
|
attr.value = value
|
344
|
-
#@map[name] = attr
|
345
355
|
end
|
346
356
|
end
|
347
357
|
|
@@ -610,9 +620,8 @@ module Meteor
|
|
610
620
|
pif2 = ps.child(elm)
|
611
621
|
init(pif2)
|
612
622
|
list.each do |item|
|
613
|
-
if pif2.root_element.
|
623
|
+
if pif2.root_element.element && !pif2.root_element.element.mono then
|
614
624
|
pif2.root_element.document = elm.mixed_content
|
615
|
-
#elsif pif2.rootElement.mono_hook then
|
616
625
|
end
|
617
626
|
execute(pif2.root_element.mutable_element, item)
|
618
627
|
pif2.print
|
@@ -908,60 +917,6 @@ module Meteor
|
|
908
917
|
|
909
918
|
attr_accessor :e_cache
|
910
919
|
|
911
|
-
#
|
912
|
-
# フックフラグをセットする
|
913
|
-
#
|
914
|
-
# @param [TrueClass,FalseClass] hook フックフラグ
|
915
|
-
#
|
916
|
-
#def hook=(hook)
|
917
|
-
# @root.hook = hook
|
918
|
-
#end
|
919
|
-
|
920
|
-
#
|
921
|
-
# フックフラグを取得する
|
922
|
-
#
|
923
|
-
# @return [TrueClass,FalseClass] フックフラグ
|
924
|
-
#
|
925
|
-
#def hook
|
926
|
-
# @root.hook
|
927
|
-
#end
|
928
|
-
|
929
|
-
#
|
930
|
-
# 単一要素フックフラグをセットする
|
931
|
-
#
|
932
|
-
# @pamam [TrueClass,FalseClass] hook 単一要素フックフラグ
|
933
|
-
#
|
934
|
-
#def mono_hook=(hook)
|
935
|
-
# @root.mono_hook = hook
|
936
|
-
#end
|
937
|
-
|
938
|
-
#
|
939
|
-
# 単一要素フックフラグを取得する
|
940
|
-
#
|
941
|
-
# @return [TrueClass,FalseClass] 単一要素フックフラグ
|
942
|
-
#
|
943
|
-
#def mono_hook
|
944
|
-
# @root.mono_hook
|
945
|
-
#end
|
946
|
-
|
947
|
-
#
|
948
|
-
# フックドキュメントをセットする
|
949
|
-
#
|
950
|
-
# @param [String] hookDocument フックドキュメント
|
951
|
-
#
|
952
|
-
#def hookDocument=(hookDocument)
|
953
|
-
# @root.hookDocument = hookDocument
|
954
|
-
#end
|
955
|
-
|
956
|
-
#
|
957
|
-
# フックドキュメントを取得する
|
958
|
-
#
|
959
|
-
# @return [String] フックドキュメント
|
960
|
-
#
|
961
|
-
#def hookDocument
|
962
|
-
# @root.hookDocument
|
963
|
-
#end
|
964
|
-
|
965
920
|
#
|
966
921
|
# 文字エンコーディングをセットする
|
967
922
|
#
|
@@ -1057,7 +1012,13 @@ module Meteor
|
|
1057
1012
|
def element(*args)
|
1058
1013
|
case args.length
|
1059
1014
|
when ONE
|
1060
|
-
|
1015
|
+
if args[0].kind_of?(String) then
|
1016
|
+
element_1(args[0])
|
1017
|
+
elsif args[0].kind_of?(Meteor::Element) then
|
1018
|
+
shadow(args[0])
|
1019
|
+
else
|
1020
|
+
raise ArgumentError
|
1021
|
+
end
|
1061
1022
|
when TWO
|
1062
1023
|
element_2(args[0],args[1])
|
1063
1024
|
when THREE
|
@@ -1375,7 +1336,6 @@ module Meteor
|
|
1375
1336
|
@res = @pattern.match(@root.document)
|
1376
1337
|
|
1377
1338
|
if @res then
|
1378
|
-
#@elm_ = element_3(@res[1], attr_name, attr_value)
|
1379
1339
|
element_3(@res[1], attr_name, attr_value)
|
1380
1340
|
else
|
1381
1341
|
@elm_ = nil
|
@@ -1865,12 +1825,10 @@ module Meteor
|
|
1865
1825
|
#属性群の更新
|
1866
1826
|
edit_attributes_(elm,attr_name,attr_value)
|
1867
1827
|
|
1868
|
-
if !elm.
|
1828
|
+
if !elm.origin then
|
1869
1829
|
if elm.arguments.map.include?(attr_name) then
|
1870
1830
|
elm.arguments.store(attr_name, attr_value)
|
1871
1831
|
end
|
1872
|
-
|
1873
|
-
#@e_cache.store(elm.origin, elm)
|
1874
1832
|
end
|
1875
1833
|
end
|
1876
1834
|
elm
|
@@ -1883,12 +1841,11 @@ module Meteor
|
|
1883
1841
|
#@res = @pattern.match(elm.attributes)
|
1884
1842
|
|
1885
1843
|
#検索対象属性の存在判定
|
1886
|
-
#if @res then
|
1887
1844
|
if elm.attributes.include?(' ' << attr_name << ATTR_EQ) then
|
1888
1845
|
|
1889
1846
|
@_attr_value = attr_value
|
1890
1847
|
#replace2regex(@_attr_value)
|
1891
|
-
if elm.
|
1848
|
+
if elm.origin then
|
1892
1849
|
replace4regex(@_attr_value)
|
1893
1850
|
else
|
1894
1851
|
replace2regex(@_attr_value)
|
@@ -1902,7 +1859,7 @@ module Meteor
|
|
1902
1859
|
#属性文字列の最後に新規の属性を追加する
|
1903
1860
|
@_attr_value = attr_value
|
1904
1861
|
#replace2regex(@_attr_value)
|
1905
|
-
if elm.
|
1862
|
+
if elm.origin then
|
1906
1863
|
replace2regex(@_attr_value)
|
1907
1864
|
end
|
1908
1865
|
|
@@ -1933,7 +1890,7 @@ module Meteor
|
|
1933
1890
|
#内容あり要素の場合
|
1934
1891
|
@_content = elm.mixed_content
|
1935
1892
|
#replace2regex(@_content)
|
1936
|
-
if elm.
|
1893
|
+
if elm.origin then
|
1937
1894
|
replace4regex(@_content)
|
1938
1895
|
else
|
1939
1896
|
replace2regex(@_content)
|
@@ -1951,7 +1908,7 @@ module Meteor
|
|
1951
1908
|
end
|
1952
1909
|
else
|
1953
1910
|
@_content = elm.mixed_content
|
1954
|
-
if elm.
|
1911
|
+
if elm.origin then
|
1955
1912
|
replace4regex(@_content)
|
1956
1913
|
else
|
1957
1914
|
replace2regex(@_content)
|
@@ -1996,10 +1953,10 @@ module Meteor
|
|
1996
1953
|
# @param [String] attr_value 属性値
|
1997
1954
|
#
|
1998
1955
|
def set_attribute_2(attr_name,attr_value)
|
1999
|
-
if @root.
|
2000
|
-
set_attribute_3(@root.
|
1956
|
+
if @root.element.origin then
|
1957
|
+
set_attribute_3(@root.element, attr_name, attr_value)
|
2001
1958
|
end
|
2002
|
-
@root.
|
1959
|
+
@root.element
|
2003
1960
|
end
|
2004
1961
|
private :set_attribute_2
|
2005
1962
|
|
@@ -2037,8 +1994,8 @@ module Meteor
|
|
2037
1994
|
# @return [String] 属性値
|
2038
1995
|
#
|
2039
1996
|
def get_attribute_value_1(attr_name)
|
2040
|
-
if @root.
|
2041
|
-
get_attribute_value_2(@root.
|
1997
|
+
if @root.element then
|
1998
|
+
get_attribute_value_2(@root.element, attr_name)
|
2042
1999
|
else
|
2043
2000
|
nil
|
2044
2001
|
end
|
@@ -2086,8 +2043,8 @@ module Meteor
|
|
2086
2043
|
# @return [Meteor::AttributeMap] 属性マップ
|
2087
2044
|
#
|
2088
2045
|
def get_attribute_map_0()
|
2089
|
-
if @root.
|
2090
|
-
get_attribute_map_1(@root.
|
2046
|
+
if @root.element then
|
2047
|
+
get_attribute_map_1(@root.element)
|
2091
2048
|
else
|
2092
2049
|
nil
|
2093
2050
|
end
|
@@ -2109,10 +2066,6 @@ module Meteor
|
|
2109
2066
|
remove_attributes_(elm, name)
|
2110
2067
|
end
|
2111
2068
|
end
|
2112
|
-
|
2113
|
-
#if !elm.parent then
|
2114
|
-
# @e_cache.store(elm.origin,elm)
|
2115
|
-
#end
|
2116
2069
|
end
|
2117
2070
|
elm
|
2118
2071
|
end
|
@@ -2161,10 +2114,6 @@ module Meteor
|
|
2161
2114
|
end
|
2162
2115
|
|
2163
2116
|
elm.mixed_content = content
|
2164
|
-
|
2165
|
-
#if !elm.parent then
|
2166
|
-
# @e_cache.store(elm.origin,elm)
|
2167
|
-
#end
|
2168
2117
|
|
2169
2118
|
elm
|
2170
2119
|
end
|
@@ -2187,8 +2136,8 @@ module Meteor
|
|
2187
2136
|
# @param [String] content 内容
|
2188
2137
|
#
|
2189
2138
|
def set_content_1(content)
|
2190
|
-
if @root.
|
2191
|
-
set_content_2_s(@root.
|
2139
|
+
if @root.element && @root.element.mono then
|
2140
|
+
set_content_2_s(@root.element, content)
|
2192
2141
|
end
|
2193
2142
|
end
|
2194
2143
|
private :set_content_1
|
@@ -2200,11 +2149,11 @@ module Meteor
|
|
2200
2149
|
# @param [TrueClass,FalseClass] entity_ref エンティティ参照フラグ
|
2201
2150
|
#
|
2202
2151
|
def set_content_2_b(content,entity_ref)
|
2203
|
-
if @root.
|
2204
|
-
set_content_3(@root.
|
2152
|
+
if @root.element && @root.element.mono then
|
2153
|
+
set_content_3(@root.element, content, entity_ref)
|
2205
2154
|
end
|
2206
2155
|
|
2207
|
-
@root.
|
2156
|
+
@root.element
|
2208
2157
|
end
|
2209
2158
|
private :set_content_2_b
|
2210
2159
|
|
@@ -2246,12 +2195,10 @@ module Meteor
|
|
2246
2195
|
|
2247
2196
|
remove_attributes_(elm,attr_name)
|
2248
2197
|
|
2249
|
-
if !elm.
|
2198
|
+
if !elm.origin then
|
2250
2199
|
if elm.arguments.map.include?(attr_name) then
|
2251
2200
|
elm.arguments.delete(attr_name)
|
2252
2201
|
end
|
2253
|
-
|
2254
|
-
#@e_cache.store(elm.origin,elm)
|
2255
2202
|
end
|
2256
2203
|
end
|
2257
2204
|
|
@@ -2273,11 +2220,11 @@ module Meteor
|
|
2273
2220
|
# @param [String] attr_name 属性名
|
2274
2221
|
#
|
2275
2222
|
def remove_attribute_1(attr_name)
|
2276
|
-
if @root.
|
2277
|
-
remove_attribute_2(@root.
|
2223
|
+
if @root.element then
|
2224
|
+
remove_attribute_2(@root.element, attr_name)
|
2278
2225
|
end
|
2279
2226
|
|
2280
|
-
@root.
|
2227
|
+
@root.element
|
2281
2228
|
end
|
2282
2229
|
private :remove_attribute_1
|
2283
2230
|
|
@@ -2288,8 +2235,7 @@ module Meteor
|
|
2288
2235
|
#
|
2289
2236
|
def remove_element(elm)
|
2290
2237
|
replace(elm,EMPTY)
|
2291
|
-
|
2292
|
-
elm.usable = ONE
|
2238
|
+
elm.usable = false
|
2293
2239
|
end
|
2294
2240
|
|
2295
2241
|
#
|
@@ -2385,7 +2331,7 @@ module Meteor
|
|
2385
2331
|
#
|
2386
2332
|
def replace(elm,replace_document)
|
2387
2333
|
#文字エスケープ
|
2388
|
-
if replace_document.size > ZERO && elm.
|
2334
|
+
if replace_document.size > ZERO && elm.origin && elm.mono then
|
2389
2335
|
replace2regex(replace_document)
|
2390
2336
|
end
|
2391
2337
|
#タグ置換パターン
|
@@ -2395,15 +2341,14 @@ module Meteor
|
|
2395
2341
|
end
|
2396
2342
|
|
2397
2343
|
def reflect()
|
2398
|
-
|
2344
|
+
|
2399
2345
|
@e_cache.values.each do |item|
|
2400
|
-
if item.usable
|
2346
|
+
if item.usable then
|
2401
2347
|
edit_document_1(item)
|
2402
2348
|
edit_pattern_(item)
|
2403
|
-
item.usable =
|
2349
|
+
item.usable = false
|
2404
2350
|
end
|
2405
2351
|
end
|
2406
|
-
#@e_cache.clear
|
2407
2352
|
end
|
2408
2353
|
protected :reflect
|
2409
2354
|
|
@@ -2413,42 +2358,42 @@ module Meteor
|
|
2413
2358
|
def print
|
2414
2359
|
reflect()
|
2415
2360
|
|
2416
|
-
if @root.
|
2417
|
-
|
2418
|
-
|
2419
|
-
|
2420
|
-
|
2421
|
-
|
2422
|
-
|
2423
|
-
|
2424
|
-
|
2425
|
-
|
2426
|
-
#@root.hookDocument << TAG_OPEN << @root.mutableElement.name
|
2427
|
-
#@root.hookDocument << @_attributes << TAG_CLOSE << @root.document
|
2428
|
-
#@root.hookDocument << TAG_OPEN3 << @root.mutableElement.name << TAG_CLOSE
|
2429
|
-
@root.hook_document << "<#{@root.mutableElement.name}#{@_attributes}>#{@root.document}</#{@root.mutableElement.name}>"
|
2430
|
-
end
|
2431
|
-
@root.mutableElement = Element.new!(@root.element)
|
2432
|
-
@root.document = String.new(@root.element.mixed_content)
|
2433
|
-
else
|
2434
|
-
if @root.mono_hook then
|
2435
|
-
if @root.element.cx then
|
2436
|
-
#@root.hookDocument << SET_CX_1 << @root.mutableElement.name << SPACE
|
2437
|
-
#@root.hookDocument << @root.mutableElement.attributes << SET_CX_2
|
2438
|
-
#@root.hookDocument << @root.mutableElement.mixed_content << SET_CX_3
|
2439
|
-
#@root.hookDocument << @root.mutableElement.name << SET_CX_4
|
2440
|
-
@root.hook_document << "<!-- @#{@root.mutableElement.name} #{@root.mutableElement.attributes}-->#{@root.mutableElement.mixed_content}<!-- /@#{@root.mutableElement.name} -->"
|
2361
|
+
if @root.element then
|
2362
|
+
if !@root.element.origin.mono then
|
2363
|
+
@_attributes = @root.element.attributes
|
2364
|
+
replace2regex(@_attributes)
|
2365
|
+
if @root.element.origin.cx then
|
2366
|
+
#@root.hookDocument << SET_CX_1 << @root.element.name << SPACE
|
2367
|
+
#@root.hookDocument << @_attributes << SET_CX_2
|
2368
|
+
#@root.hookDocument << @root.document << SET_CX_3
|
2369
|
+
#@root.hookDocument << @root.element.name << SET_CX_4
|
2370
|
+
@root.hook_document << "<!-- @#{@root.element.name} #{@_attributes}-->#{@root.document}<!-- /@#{@root.element.name} -->"
|
2441
2371
|
else
|
2442
|
-
#@root.hookDocument << TAG_OPEN << @root.
|
2443
|
-
#@root.hookDocument << @
|
2444
|
-
#@root.hookDocument << TAG_OPEN3 << @root.
|
2445
|
-
@root.hook_document << "<#{@root.
|
2372
|
+
#@root.hookDocument << TAG_OPEN << @root.element.name
|
2373
|
+
#@root.hookDocument << @_attributes << TAG_CLOSE << @root.document
|
2374
|
+
#@root.hookDocument << TAG_OPEN3 << @root.element.name << TAG_CLOSE
|
2375
|
+
@root.hook_document << "<#{@root.element.name}#{@_attributes}>#{@root.document}</#{@root.element.name}>"
|
2446
2376
|
end
|
2447
|
-
@root.
|
2377
|
+
@root.element = Element.new!(@root.element.origin)
|
2378
|
+
@root.document = String.new(@root.element.origin.mixed_content)
|
2448
2379
|
else
|
2449
|
-
|
2450
|
-
|
2380
|
+
if @root.element.origin.cx then
|
2381
|
+
#@root.hookDocument << SET_CX_1 << @root.element.name << SPACE
|
2382
|
+
#@root.hookDocument << @root.element.attributes << SET_CX_2
|
2383
|
+
#@root.hookDocument << @root.element.mixed_content << SET_CX_3
|
2384
|
+
#@root.hookDocument << @root.element.name << SET_CX_4
|
2385
|
+
@root.hook_document << "<!-- @#{@root.element.name} #{@root.element.attributes}-->#{@root.element.mixed_content}<!-- /@#{@root.element.name} -->"
|
2386
|
+
else
|
2387
|
+
#@root.hookDocument << TAG_OPEN << @root.element.name
|
2388
|
+
#@root.hookDocument << @root.element.attributes << TAG_CLOSE << @root.element.mixed_content
|
2389
|
+
#@root.hookDocument << TAG_OPEN3 << @root.element.name << TAG_CLOSE
|
2390
|
+
@root.hook_document << "<#{@root.element.name}#{@root.element.attributes}>#{@root.element.mixed_content}</#{@root.element.name}>"
|
2391
|
+
end
|
2392
|
+
@root.element = Element.new!(@root.element.origin)
|
2451
2393
|
end
|
2394
|
+
else
|
2395
|
+
#フック判定がFALSEの場合
|
2396
|
+
clean
|
2452
2397
|
end
|
2453
2398
|
end
|
2454
2399
|
|
@@ -2464,33 +2409,40 @@ module Meteor
|
|
2464
2409
|
private :clean
|
2465
2410
|
|
2466
2411
|
#
|
2467
|
-
#
|
2412
|
+
# 要素をコピーする
|
2468
2413
|
#
|
2469
2414
|
# @param [Meteor::Element] elm 要素
|
2470
|
-
# @return [Meteor::
|
2415
|
+
# @return [Meteor::Element] 要素
|
2471
2416
|
#
|
2472
|
-
def
|
2417
|
+
def shadow(elm)
|
2473
2418
|
if elm.empty then
|
2474
2419
|
#内容あり要素の場合
|
2475
2420
|
set_mono_info(elm)
|
2476
2421
|
|
2477
2422
|
pif2 = create(self)
|
2478
2423
|
|
2479
|
-
elm
|
2480
|
-
|
2481
|
-
pif2.root_element.mutableElement = Element.new(elm)
|
2482
|
-
pif2.root_element.kaigyo_code = @root.kaigyo_code
|
2424
|
+
@elm_ = Element.new(elm)
|
2425
|
+
@elm_.parser = pif2
|
2483
2426
|
|
2484
|
-
if elm.mono then
|
2485
|
-
pif2.root_element.
|
2486
|
-
|
2487
|
-
|
2488
|
-
|
2489
|
-
|
2490
|
-
|
2491
|
-
|
2492
|
-
|
2493
|
-
|
2427
|
+
if !elm.mono then
|
2428
|
+
pif2.root_element.document = String.new(elm.mixed_content)
|
2429
|
+
end
|
2430
|
+
pif2.root_element.element = @elm_
|
2431
|
+
|
2432
|
+
@elm_
|
2433
|
+
end
|
2434
|
+
end
|
2435
|
+
private :shadow
|
2436
|
+
|
2437
|
+
#
|
2438
|
+
# 子パーサを取得する
|
2439
|
+
#
|
2440
|
+
# @param [Meteor::Element] elm 要素
|
2441
|
+
# @return [Meteor::Parser] 子パーサ
|
2442
|
+
#
|
2443
|
+
def child(elm)
|
2444
|
+
if shadow(elm) then
|
2445
|
+
@elm_.parser
|
2494
2446
|
end
|
2495
2447
|
end
|
2496
2448
|
|
@@ -2502,11 +2454,9 @@ module Meteor
|
|
2502
2454
|
# 反映する
|
2503
2455
|
#
|
2504
2456
|
def flush
|
2505
|
-
if @root.
|
2506
|
-
|
2507
|
-
|
2508
|
-
@root.element.parser.replace(@root.element, @root.hook_document)
|
2509
|
-
end
|
2457
|
+
if @root.element && @root.element.origin then
|
2458
|
+
@root.element.origin.parser.reflect
|
2459
|
+
@root.element.origin.parser.replace(@root.element.origin, @root.hook_document)
|
2510
2460
|
end
|
2511
2461
|
end
|
2512
2462
|
|
@@ -2537,39 +2487,11 @@ module Meteor
|
|
2537
2487
|
#
|
2538
2488
|
# 正規表現対象文字を置換する
|
2539
2489
|
#
|
2540
|
-
# @param [String]
|
2490
|
+
# @param [String] str 入力文字列
|
2541
2491
|
# @return [String] 出力文字列
|
2542
2492
|
#
|
2543
|
-
def escape_regex(
|
2544
|
-
|
2545
|
-
#element.gsub!(@@pattern_en,EN_2)
|
2546
|
-
##「$」->「\$」
|
2547
|
-
#element.gsub!(@@pattern_dol,DOL_2)
|
2548
|
-
##「+」->「\+」
|
2549
|
-
#element.gsub!(@@pattern_plus,PLUS_2)
|
2550
|
-
#todo
|
2551
|
-
##「(」->「\(」
|
2552
|
-
#element.gsub!(@@pattern_brac_open,BRAC_OPEN_2)
|
2553
|
-
##「)」->「\)」
|
2554
|
-
#element.gsub!(@@pattern_brac_close,BRAC_CLOSE_2)
|
2555
|
-
##「[」->「\[」
|
2556
|
-
#element.gsub!(@@pattern_sbrac_open,SBRAC_OPEN_2)
|
2557
|
-
##「]」->「\]」
|
2558
|
-
#element.gsub!(@@pattern_sbrac_close,SBRAC_CLOSE_2)
|
2559
|
-
##「{」->「\{」
|
2560
|
-
#element.gsub!(@@pattern_cbrac_open,CBRAC_OPEN_2)
|
2561
|
-
##「}」->「\}」
|
2562
|
-
#element.gsub!(@@pattern_cbrac_close,CBRAC_CLOSE_2)
|
2563
|
-
##「.」->「\.」
|
2564
|
-
#element.gsub!(@@pattern_comma,COMMA_2)
|
2565
|
-
##「|」->「\|」
|
2566
|
-
#element.gsub!(@@pattern_vline,VLINE_2)
|
2567
|
-
##「?」->「\?」
|
2568
|
-
#element.gsub!(@@pattern_qmark,QMARK_2)
|
2569
|
-
##「*」->「\*」
|
2570
|
-
#element.gsub!(@@pattern_asterisk,ASTERISK_2)
|
2571
|
-
Regexp.quote(element)
|
2572
|
-
|
2493
|
+
def escape_regex(str)
|
2494
|
+
Regexp.quote(str)
|
2573
2495
|
end
|
2574
2496
|
private :escape_regex
|
2575
2497
|
|
@@ -2705,7 +2627,6 @@ module Meteor
|
|
2705
2627
|
#
|
2706
2628
|
# イニシャライザ
|
2707
2629
|
#
|
2708
|
-
|
2709
2630
|
def initialize
|
2710
2631
|
end
|
2711
2632
|
|
@@ -3029,8 +2950,8 @@ module Meteor
|
|
3029
2950
|
def initialize_1(ps)
|
3030
2951
|
@root.document = String.new(ps.document)
|
3031
2952
|
@root.hook_document = String.new(ps.root_element.hook_document)
|
3032
|
-
|
3033
|
-
|
2953
|
+
#@root.hook = ps.root_element.hook
|
2954
|
+
#@root.mono_hook = ps.root_element.mono_hook
|
3034
2955
|
@root.content_type = String.new(ps.content_type);
|
3035
2956
|
end
|
3036
2957
|
private :initialize_1
|
@@ -3081,11 +3002,9 @@ module Meteor
|
|
3081
3002
|
# ドキュメントをパースし、コンテントタイプをセットする
|
3082
3003
|
#
|
3083
3004
|
def analyze_content_type
|
3084
|
-
#@elm_ = element(META_S,HTTP_EQUIV,CONTENT_TYPE)
|
3085
3005
|
element(META_S,HTTP_EQUIV,CONTENT_TYPE)
|
3086
3006
|
|
3087
3007
|
if !@elm_ then
|
3088
|
-
#@elm_ = element(META,HTTP_EQUIV,CONTENT_TYPE)
|
3089
3008
|
element(META,HTTP_EQUIV,CONTENT_TYPE)
|
3090
3009
|
end
|
3091
3010
|
|
@@ -3248,7 +3167,6 @@ module Meteor
|
|
3248
3167
|
@res = @pattern.match(@root.document)
|
3249
3168
|
|
3250
3169
|
if @res then
|
3251
|
-
#@elm_ = element_3(@res[1],attr_name,attr_value)
|
3252
3170
|
element_3(@res[1],attr_name,attr_value)
|
3253
3171
|
else
|
3254
3172
|
@elm_ = nil
|
@@ -3362,7 +3280,6 @@ module Meteor
|
|
3362
3280
|
@res = @pattern.match(@root.document)
|
3363
3281
|
|
3364
3282
|
if @res then
|
3365
|
-
#@elm_ = element_5(@res[1],attr_name1,attr_value1,attr_name2,attr_value2)
|
3366
3283
|
element_5(@res[1],attr_name1,attr_value1,attr_name2,attr_value2)
|
3367
3284
|
else
|
3368
3285
|
@elm_ = nil
|
@@ -3395,13 +3312,11 @@ module Meteor
|
|
3395
3312
|
private :edit_attributes_
|
3396
3313
|
|
3397
3314
|
def edit_attributes_5(elm,attr_name,attr_value,match_p,replace)
|
3398
|
-
#attr_value = escape(attr_value)
|
3399
3315
|
|
3400
3316
|
if is_match(TRUE, attr_value) then
|
3401
3317
|
@res = match_p.match(elm.attributes)
|
3402
3318
|
|
3403
3319
|
if !@res then
|
3404
|
-
#if elm.attributes.include?(match_p[0]) || elm.attributes.rindex(match_p[1],elm.attributes.length - 1) == 0 || elm.attributes.include?(match_p[2]) || elm.attributes.rindex(match_p[3],elm.attributes.length - 1) == 0
|
3405
3320
|
if !EMPTY.eql?(elm.attributes) && !EMPTY.eql?(elm.attributes.strip) then
|
3406
3321
|
elm.attributes = '' << SPACE << elm.attributes.strip
|
3407
3322
|
else
|
@@ -3460,7 +3375,6 @@ module Meteor
|
|
3460
3375
|
@res = match_p.match(elm.attributes)
|
3461
3376
|
|
3462
3377
|
if @res then
|
3463
|
-
#if elm.attributes.include?(match_p[0]) || elm.attributes.rindex(match_p[1],elm.attributes.length - 1) == 0 || elm.attributes.include?(match_p[2]) || elm.attributes.rindex(match_p[3],elm.attributes.length - 1) == 0 then
|
3464
3378
|
TRUE
|
3465
3379
|
else
|
3466
3380
|
FALSE
|
@@ -3812,8 +3726,6 @@ module Meteor
|
|
3812
3726
|
def initialize_1(ps)
|
3813
3727
|
@root.document = String.new(ps.document)
|
3814
3728
|
@root.hook_document = String.new(ps.root_element.hook_document)
|
3815
|
-
@root.hook = ps.root_element.hook
|
3816
|
-
@root.mono_hook = ps.root_element.mono_hook
|
3817
3729
|
@root.content_type = String.new(ps.content_type);
|
3818
3730
|
end
|
3819
3731
|
private :initialize_1
|
@@ -3864,11 +3776,9 @@ module Meteor
|
|
3864
3776
|
# ドキュメントをパースし、コンテントタイプをセットする
|
3865
3777
|
#
|
3866
3778
|
def analyze_content_type
|
3867
|
-
#@elm_ = element(META_S,HTTP_EQUIV,CONTENT_TYPE)
|
3868
3779
|
element(META_S,HTTP_EQUIV,CONTENT_TYPE)
|
3869
3780
|
|
3870
3781
|
if !@elm_ then
|
3871
|
-
#@elm_ = element(META,HTTP_EQUIV,CONTENT_TYPE)
|
3872
3782
|
element(META,HTTP_EQUIV,CONTENT_TYPE)
|
3873
3783
|
end
|
3874
3784
|
|
@@ -4229,9 +4139,6 @@ module Meteor
|
|
4229
4139
|
def initialize_1(ps)
|
4230
4140
|
@root.document = String.new(ps.document)
|
4231
4141
|
@root.hook_document = String.new(ps.root_element.hook_document)
|
4232
|
-
@root.hook = ps.root_element.hook
|
4233
|
-
@root.mono_hook = ps.root_element.mono_hook
|
4234
|
-
#@root.content_type = String.new(ps.content_type);
|
4235
4142
|
end
|
4236
4143
|
|
4237
4144
|
#
|
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.
|
4
|
+
version: 0.9.1.9
|
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-05-
|
12
|
+
date: 2009-05-30 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|