asip-meteor 0.9.2.5 → 0.9.2.6
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/meteor.rb +155 -61
- metadata +2 -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.2.
|
21
|
+
# @version 0.9.2.6
|
22
22
|
#
|
23
23
|
|
24
24
|
module Meteor
|
25
25
|
|
26
|
-
VERSION = "0.9.2.
|
26
|
+
VERSION = "0.9.2.6"
|
27
27
|
|
28
28
|
RUBY_VERSION_1_9_0 = '1.9.0'
|
29
29
|
|
@@ -45,7 +45,7 @@ module Meteor
|
|
45
45
|
#
|
46
46
|
# 要素クラス
|
47
47
|
#
|
48
|
-
class Element
|
48
|
+
class Element
|
49
49
|
|
50
50
|
#
|
51
51
|
# イニシャライザ
|
@@ -65,7 +65,8 @@ module Meteor
|
|
65
65
|
@name = args[0].name
|
66
66
|
@attributes = String.new(args[0].attributes)
|
67
67
|
@mixed_content = String.new(args[0].mixed_content)
|
68
|
-
|
68
|
+
#@pattern = String.new(args[0].pattern)
|
69
|
+
@pattern = args[0].pattern
|
69
70
|
@document = String.new(args[0].document)
|
70
71
|
@empty = args[0].empty
|
71
72
|
@cx = args[0].cx
|
@@ -108,7 +109,8 @@ module Meteor
|
|
108
109
|
#if !elm.origin then
|
109
110
|
@name = elm.name
|
110
111
|
@attributes = String.new(elm.attributes)
|
111
|
-
|
112
|
+
#@pattern = String.new(elm.pattern)
|
113
|
+
@pattern = elm.pattern
|
112
114
|
@document = String.new(elm.document)
|
113
115
|
@empty = elm.empty
|
114
116
|
@cx = elm.cx
|
@@ -135,7 +137,9 @@ module Meteor
|
|
135
137
|
attr_accessor :attributes #属性群
|
136
138
|
attr_accessor :mixed_content #内容
|
137
139
|
attr_accessor :pattern #パターン
|
138
|
-
attr_accessor :document #ドキュメント
|
140
|
+
#attr_accessor :document #ドキュメント
|
141
|
+
#attr_writer :document
|
142
|
+
attr_accessor :document_sync
|
139
143
|
attr_accessor :empty #内容存在フラグ
|
140
144
|
attr_accessor :cx #コメント拡張タグフラグ
|
141
145
|
attr_accessor :mono #子要素存在フラグ
|
@@ -160,7 +164,7 @@ module Meteor
|
|
160
164
|
if @obj then
|
161
165
|
@obj.attributes = String.new(args[0].attributes)
|
162
166
|
@obj.mixed_content = String.new(args[0].mixed_content)
|
163
|
-
|
167
|
+
#@obj.pattern = String.new(args[0].pattern)
|
164
168
|
@obj.document = String.new(args[0].document)
|
165
169
|
#@obj.arguments = AttributeMap.new(args[0].arguments)
|
166
170
|
@obj
|
@@ -180,7 +184,7 @@ module Meteor
|
|
180
184
|
if obj then
|
181
185
|
obj.attributes = String.new(self.attributes)
|
182
186
|
obj.mixed_content = String.new(self.mixed_content)
|
183
|
-
obj.pattern = String.new(self.pattern)
|
187
|
+
#obj.pattern = String.new(self.pattern)
|
184
188
|
obj.document = String.new(self.document)
|
185
189
|
#obj.arguments = AttributeMap.new(self.arguments)
|
186
190
|
obj.usable = true
|
@@ -288,6 +292,45 @@ module Meteor
|
|
288
292
|
@parser.remove_attribute(self,*args)
|
289
293
|
end
|
290
294
|
|
295
|
+
def document=(doc)
|
296
|
+
@document_sync = false
|
297
|
+
@document = doc
|
298
|
+
end
|
299
|
+
|
300
|
+
def document
|
301
|
+
if @document_sync then
|
302
|
+
@document_sync = false
|
303
|
+
case @parser.doc_type
|
304
|
+
when Parser::HTML then
|
305
|
+
if @cx then
|
306
|
+
#@pattern_cc = '' << SET_CX_1 << elm.name << SPACE << elm.attributes << SET_CX_2 << elm.mixed_content << SET_CX_3 << elm.name << SET_CX_4
|
307
|
+
@document = "<!-- @#{@name} #{@attributes} -->#{@mixed_content}<!-- /@#{@name} -->"
|
308
|
+
else
|
309
|
+
if @empty then
|
310
|
+
#@pattern_cc = '' << TAG_OPEN << elm.name << elm.attributes << TAG_CLOSE << elm.mixed_content << TAG_OPEN3 << elm.name << TAG_CLOSE
|
311
|
+
@document = "<#{@name}#{@attributes}>#{@mixed_content}</#{@name}>"
|
312
|
+
else
|
313
|
+
@document = '' << Meteor::Core::Kernel::TAG_OPEN << @name << @attributes << Meteor::Core::Kernel::TAG_CLOSE
|
314
|
+
end
|
315
|
+
end
|
316
|
+
when Parser::XHTML,Parser::XML then
|
317
|
+
if @cx then
|
318
|
+
#@pattern_cc = '' << SET_CX_1 << elm.name << SPACE << elm.attributes << SET_CX_2 << elm.mixed_content << SET_CX_3 << elm.name << SET_CX_4
|
319
|
+
@document = "<!-- @#{@name} #{@attributes} -->#{@mixed_content}<!-- /@#{@name} -->"
|
320
|
+
else
|
321
|
+
if @empty then
|
322
|
+
#@pattern_cc = '' << TAG_OPEN << elm.name << elm.attributes << TAG_CLOSE << elm.mixed_content << TAG_OPEN3 << elm.name << TAG_CLOSE
|
323
|
+
@document = "<#{@name}#{@attributes}>#{@mixed_content}</#{@name}>"
|
324
|
+
else
|
325
|
+
@document = '' << Meteor::Core::Kernel::TAG_OPEN << @name << @attributes << Meteor::Core::Kernel::TAG_CLOSE3
|
326
|
+
end
|
327
|
+
end
|
328
|
+
end
|
329
|
+
else
|
330
|
+
@document
|
331
|
+
end
|
332
|
+
end
|
333
|
+
|
291
334
|
#
|
292
335
|
# 要素を削除する
|
293
336
|
#
|
@@ -563,14 +606,17 @@ module Meteor
|
|
563
606
|
when Parser::HTML then
|
564
607
|
html = Meteor::Core::Html::ParserImpl.new()
|
565
608
|
html.read(path, encoding)
|
609
|
+
html.doc_type = Parser::HTML
|
566
610
|
psf.parser = html
|
567
611
|
when Parser::XHTML then
|
568
612
|
xhtml = Meteor::Core::Xhtml::ParserImpl.new()
|
569
613
|
xhtml.read(path, encoding)
|
614
|
+
xhtml.doc_type = Parser::XHTML
|
570
615
|
psf.parser = xhtml
|
571
616
|
when Parser::XML then
|
572
617
|
xml = Meteor::Core::Xml::ParserImpl.new()
|
573
618
|
xml.read(path, encoding)
|
619
|
+
xml.doc_type = Parser::XML
|
574
620
|
psf.parser = xml
|
575
621
|
end
|
576
622
|
|
@@ -592,14 +638,17 @@ module Meteor
|
|
592
638
|
when Parser::HTML then
|
593
639
|
html = Meteor::Core::Html::ParserImpl.new()
|
594
640
|
html.parse(document)
|
641
|
+
html.doc_type = Parser::HTML
|
595
642
|
psf.parser = html
|
596
643
|
when Parser::XHTML then
|
597
644
|
xhtml = Meteor::Core::Xhtml::ParserImpl.new()
|
598
645
|
xhtml.parse(document)
|
646
|
+
xhtml.doc_type = Parser::XHTML
|
599
647
|
psf.parser = xhtml
|
600
648
|
when Parser::XML then
|
601
649
|
xml = Meteor::Core::Xml::ParserImpl.new()
|
602
650
|
xml.parse(document)
|
651
|
+
xml.doc_type = Parser::XML
|
603
652
|
psf.parser = xml
|
604
653
|
end
|
605
654
|
|
@@ -809,13 +858,19 @@ module Meteor
|
|
809
858
|
#attributeMap
|
810
859
|
GET_ATTRS_MAP = '([^\\s]*)="([^\"]*)"'
|
811
860
|
#removeAttribute
|
812
|
-
ERASE_ATTR_1 = '="[
|
861
|
+
ERASE_ATTR_1 = '="[^"]*"\\s?'
|
813
862
|
|
814
863
|
#cxtag
|
864
|
+
#SEARCH_CX_1 = '<!--\\s@'
|
865
|
+
#SEARCH_CX_2 = '\\s([^<>]*id="'
|
866
|
+
#SEARCH_CX_3 = '\"[^<>]*)-->(((?!(<!--\\s\\/@'
|
867
|
+
#SEARCH_CX_4 = ')).)*)<!--\\s\\/@'
|
868
|
+
#SEARCH_CX_5 = '\\s-->'
|
869
|
+
#SEARCH_CX_6 = '<!--\\s@([^<>]*)\\s[^<>]*id="'
|
815
870
|
SEARCH_CX_1 = '<!--\\s@'
|
816
871
|
SEARCH_CX_2 = '\\s([^<>]*id="'
|
817
|
-
SEARCH_CX_3 = '
|
818
|
-
SEARCH_CX_4 = ')).)*)<!--\\s
|
872
|
+
SEARCH_CX_3 = '"[^<>]*)-->(((?!(<!--\\s/@'
|
873
|
+
SEARCH_CX_4 = ')).)*)<!--\\s/@'
|
819
874
|
SEARCH_CX_5 = '\\s-->'
|
820
875
|
SEARCH_CX_6 = '<!--\\s@([^<>]*)\\s[^<>]*id="'
|
821
876
|
|
@@ -970,6 +1025,7 @@ module Meteor
|
|
970
1025
|
end
|
971
1026
|
|
972
1027
|
attr_accessor :element_cache
|
1028
|
+
attr_accessor :doc_type
|
973
1029
|
|
974
1030
|
#
|
975
1031
|
# 文字エンコーディングをセットする
|
@@ -1869,11 +1925,13 @@ module Meteor
|
|
1869
1925
|
#elsif args[0].kind_of?(String) && args[1].kind_of?(String) then
|
1870
1926
|
# set_attribute_2(args[0],args[1])
|
1871
1927
|
elsif args[0].kind_of?(Meteor::Element) && args[1].kind_of?(Meteor::AttributeMap) then
|
1928
|
+
args[0].document_sync = true
|
1872
1929
|
set_attribute_2_m(args[0],args[1])
|
1873
1930
|
else
|
1874
1931
|
raise ArgumentError
|
1875
1932
|
end
|
1876
1933
|
when THREE
|
1934
|
+
args[0].document_sync = true
|
1877
1935
|
set_attribute_3(args[0],args[1],args[2])
|
1878
1936
|
else
|
1879
1937
|
raise ArgumentError
|
@@ -2153,6 +2211,7 @@ module Meteor
|
|
2153
2211
|
#end
|
2154
2212
|
when TWO
|
2155
2213
|
#if args[0].kind_of?(Meteor::Element) && args[1].kind_of?(String) then
|
2214
|
+
args[0].document_sync = true
|
2156
2215
|
set_content_2_s(args[0],args[1])
|
2157
2216
|
#elsif args[0].kind_of?(String) && (args[1].eql?(true) || args[1].eql?(false)) then
|
2158
2217
|
##elsif args[0].kind_of?(String) && (args[1].kinf_of?(TrueClass) || args[1].kind_of?(FalseClass)) then
|
@@ -2161,6 +2220,7 @@ module Meteor
|
|
2161
2220
|
# raise ArgumentError
|
2162
2221
|
#end
|
2163
2222
|
when THREE
|
2223
|
+
args[0].document_sync = true
|
2164
2224
|
set_content_3(args[0],args[1],args[2])
|
2165
2225
|
else
|
2166
2226
|
raise ArgumentError
|
@@ -2228,9 +2288,11 @@ module Meteor
|
|
2228
2288
|
if !elm.cx then
|
2229
2289
|
if elm.empty then
|
2230
2290
|
unescape_content(elm.mixed_content,elm.name)
|
2291
|
+
else
|
2292
|
+
nil
|
2231
2293
|
end
|
2232
2294
|
else
|
2233
|
-
|
2295
|
+
unescape_content(elm.mixed_content,elm.name)
|
2234
2296
|
end
|
2235
2297
|
end
|
2236
2298
|
private :get_content_1
|
@@ -2242,8 +2304,8 @@ module Meteor
|
|
2242
2304
|
#
|
2243
2305
|
def remove_attribute(*args)
|
2244
2306
|
case args.length
|
2245
|
-
when ONE
|
2246
|
-
|
2307
|
+
#when ONE
|
2308
|
+
# remove_attribute_1(args[0])
|
2247
2309
|
when TWO
|
2248
2310
|
remove_attribute_2(args[0],args[1])
|
2249
2311
|
else
|
@@ -2260,6 +2322,7 @@ module Meteor
|
|
2260
2322
|
def remove_attribute_2(elm,attr_name)
|
2261
2323
|
if !elm.cx then
|
2262
2324
|
|
2325
|
+
elm.document_sync = true
|
2263
2326
|
remove_attributes_(elm,attr_name)
|
2264
2327
|
|
2265
2328
|
#if !elm.origin then
|
@@ -2267,6 +2330,7 @@ module Meteor
|
|
2267
2330
|
# elm.arguments.delete(attr_name)
|
2268
2331
|
# end
|
2269
2332
|
#end
|
2333
|
+
|
2270
2334
|
end
|
2271
2335
|
|
2272
2336
|
elm
|
@@ -2281,19 +2345,19 @@ module Meteor
|
|
2281
2345
|
end
|
2282
2346
|
private :remove_attributes_
|
2283
2347
|
|
2348
|
+
##
|
2349
|
+
## 要素の属性を消す
|
2350
|
+
##
|
2351
|
+
## @param [String] attr_name 属性名
|
2352
|
+
##
|
2353
|
+
#def remove_attribute_1(attr_name)
|
2354
|
+
# if @root.element then
|
2355
|
+
# remove_attribute_2(@root.element, attr_name)
|
2356
|
+
# end
|
2284
2357
|
#
|
2285
|
-
#
|
2286
|
-
#
|
2287
|
-
#
|
2288
|
-
#
|
2289
|
-
def remove_attribute_1(attr_name)
|
2290
|
-
if @root.element then
|
2291
|
-
remove_attribute_2(@root.element, attr_name)
|
2292
|
-
end
|
2293
|
-
|
2294
|
-
@root.element
|
2295
|
-
end
|
2296
|
-
private :remove_attribute_1
|
2358
|
+
# @root.element
|
2359
|
+
#end
|
2360
|
+
#private :remove_attribute_1
|
2297
2361
|
|
2298
2362
|
#
|
2299
2363
|
# 要素を消す
|
@@ -2315,8 +2379,14 @@ module Meteor
|
|
2315
2379
|
case args.length
|
2316
2380
|
when ONE
|
2317
2381
|
cxtag_1(args[0])
|
2382
|
+
if @elm_ then
|
2383
|
+
@element_cache.store(@elm_.object_id,@elm_)
|
2384
|
+
end
|
2318
2385
|
when TWO
|
2319
2386
|
cxtag_2(args[0],args[1])
|
2387
|
+
if @elm_ then
|
2388
|
+
@element_cache.store(@elm_.object_id,@elm_)
|
2389
|
+
end
|
2320
2390
|
else
|
2321
2391
|
raise ArgumentError
|
2322
2392
|
end
|
@@ -2334,7 +2404,8 @@ module Meteor
|
|
2334
2404
|
#CXタグ検索用パターン
|
2335
2405
|
#@pattern_cc = '' << SEARCH_CX_1 << elm_name << SEARCH_CX_2
|
2336
2406
|
#@pattern_cc << id << SEARCH_CX_3 << elm_name << SEARCH_CX_4 << elm_name << SEARCH_CX_5
|
2337
|
-
|
2407
|
+
#@pattern_cc = "<!--\\s@#{elm_name}\\s([^<>]*id=\"#{id}\"[^<>]*)-->(((?!(<!--\\s\\/@#{elm_name})).)*)<!--\\s\\/@#{elm_name}\\s-->"
|
2408
|
+
@pattern_cc = "<!--\\s@#{elm_name}\\s([^<>]*id=\"#{id}\"[^<>]*)-->(((?!(<!--\\s/@#{elm_name})).)*)<!--\\s/@#{elm_name}\\s-->"
|
2338
2409
|
|
2339
2410
|
@pattern = Meteor::Core::Util::PatternCache.get(@pattern_cc)
|
2340
2411
|
#CXタグ検索
|
@@ -2845,10 +2916,12 @@ module Meteor
|
|
2845
2916
|
#
|
2846
2917
|
class ParserImpl < Meteor::Core::Kernel
|
2847
2918
|
|
2848
|
-
KAIGYO_CODE =
|
2919
|
+
#KAIGYO_CODE = "\r?\n|\r"
|
2920
|
+
#KAIGYO_CODE = "\r\n|\n|\r"
|
2921
|
+
KAIGYO_CODE = ["\r\n","\n","\r"]
|
2849
2922
|
NBSP_2 = ' '
|
2850
2923
|
NBSP_3 = 'nbsp'
|
2851
|
-
BR_1 =
|
2924
|
+
BR_1 = "\r?\n|\r"
|
2852
2925
|
BR_2 = '<br>'
|
2853
2926
|
|
2854
2927
|
META = 'META'
|
@@ -2953,6 +3026,7 @@ module Meteor
|
|
2953
3026
|
|
2954
3027
|
@@pattern_escape = Regexp.new(PATTERN_ESCAPE)
|
2955
3028
|
@@pattern_escape_content = Regexp.new(PATTERN_ESCAPE_CONTENT)
|
3029
|
+
@@pattern_br_2 = Regexp.new(BR_2)
|
2956
3030
|
else
|
2957
3031
|
@@pattern_and_1 = Regexp.new(AND_1)
|
2958
3032
|
@@pattern_lt_1 = Regexp.new(LT_1)
|
@@ -3013,6 +3087,8 @@ module Meteor
|
|
3013
3087
|
#@root.hook = ps.root_element.hook
|
3014
3088
|
#@root.mono_hook = ps.root_element.mono_hook
|
3015
3089
|
@root.content_type = String.new(ps.content_type);
|
3090
|
+
@root.kaigyo_code = ps.root_element.kaigyo_code
|
3091
|
+
@doc_type = ps.doc_type
|
3016
3092
|
end
|
3017
3093
|
private :initialize_1
|
3018
3094
|
|
@@ -3081,12 +3157,21 @@ module Meteor
|
|
3081
3157
|
#
|
3082
3158
|
def analyze_kaigyo_code()
|
3083
3159
|
#改行コード取得
|
3084
|
-
|
3085
|
-
|
3160
|
+
#@pattern = Regexp.new(KAIGYO_CODE)
|
3161
|
+
#@res = @pattern.match(@root.document)
|
3086
3162
|
|
3087
|
-
if @res then
|
3088
|
-
|
3163
|
+
#if @res then
|
3164
|
+
# @root.kaigyo_code = @res[0]
|
3165
|
+
# puts "test"
|
3166
|
+
# puts @res[0]
|
3167
|
+
#end
|
3168
|
+
|
3169
|
+
for a in KAIGYO_CODE
|
3170
|
+
if @root.document.include?(a) then
|
3171
|
+
@root.kaigyo_code = a
|
3172
|
+
end
|
3089
3173
|
end
|
3174
|
+
|
3090
3175
|
end
|
3091
3176
|
private :analyze_kaigyo_code
|
3092
3177
|
|
@@ -3488,16 +3573,16 @@ module Meteor
|
|
3488
3573
|
elm.mono = true
|
3489
3574
|
if elm.cx then
|
3490
3575
|
#@pattern_cc = '' << SET_CX_1 << elm.name << SPACE << elm.attributes << SET_CX_2 << elm.mixed_content << SET_CX_3 << elm.name << SET_CX_4
|
3491
|
-
|
3576
|
+
elm.document = "<!-- @#{elm.name} #{elm.attributes} -->#{elm.mixed_content}<!-- /@#{elm.name} -->"
|
3492
3577
|
else
|
3493
3578
|
if elm.empty then
|
3494
3579
|
#@pattern_cc = '' << TAG_OPEN << elm.name << elm.attributes << TAG_CLOSE << elm.mixed_content << TAG_OPEN3 << elm.name << TAG_CLOSE
|
3495
|
-
|
3580
|
+
elm.document = "<#{elm.name}#{elm.attributes}>#{elm.mixed_content}</#{elm.name}>"
|
3496
3581
|
else
|
3497
|
-
|
3582
|
+
elm.document = '' << TAG_OPEN << elm.name << elm.attributes << TAG_CLOSE
|
3498
3583
|
end
|
3499
3584
|
end
|
3500
|
-
elm.document = @pattern_cc
|
3585
|
+
#elm.document = @pattern_cc
|
3501
3586
|
end
|
3502
3587
|
end
|
3503
3588
|
private :set_mono_info
|
@@ -3570,7 +3655,7 @@ module Meteor
|
|
3570
3655
|
#if content.include?(AND_2) then
|
3571
3656
|
# content.gsub!(@@pattern_and_2,AND_1)
|
3572
3657
|
#end
|
3573
|
-
content.gsub
|
3658
|
+
content.gsub(@@pattern_unescape) do
|
3574
3659
|
case $1
|
3575
3660
|
when AND_3 then
|
3576
3661
|
AND_1
|
@@ -3587,21 +3672,20 @@ module Meteor
|
|
3587
3672
|
end
|
3588
3673
|
end
|
3589
3674
|
|
3590
|
-
content
|
3591
3675
|
end
|
3592
3676
|
private :unescape
|
3593
3677
|
|
3594
3678
|
def unescape_content(content,elm_name)
|
3595
|
-
|
3679
|
+
content_ = unescape(content)
|
3596
3680
|
|
3597
3681
|
if !is_match(MATCH_TAG_2,elm_name) then
|
3598
3682
|
#「<br>」->「¥r?¥n」
|
3599
3683
|
if content.include?(BR_2) then
|
3600
|
-
|
3684
|
+
content_.gsub!(@@pattern_br_2, @root.kaigyo_code)
|
3601
3685
|
end
|
3602
3686
|
end
|
3603
3687
|
|
3604
|
-
|
3688
|
+
content_
|
3605
3689
|
end
|
3606
3690
|
private :unescape_content
|
3607
3691
|
|
@@ -3615,10 +3699,11 @@ module Meteor
|
|
3615
3699
|
#
|
3616
3700
|
class ParserImpl < Meteor::Core::Kernel
|
3617
3701
|
|
3618
|
-
KAIGYO_CODE =
|
3702
|
+
#KAIGYO_CODE = "\r?\n|\r"
|
3703
|
+
KAIGYO_CODE = ["\r\n","\n","\r"]
|
3619
3704
|
NBSP_2 = ' '
|
3620
3705
|
NBSP_3 = 'nbsp'
|
3621
|
-
BR_1 =
|
3706
|
+
BR_1 = "\r?\n|\r"
|
3622
3707
|
BR_2 = '<br/>'
|
3623
3708
|
BR_3 = '<br\\/>'
|
3624
3709
|
|
@@ -3728,7 +3813,7 @@ module Meteor
|
|
3728
3813
|
PATTERN_ESCAPE_CONTENT = '[&"\'<> \\n]'
|
3729
3814
|
@@pattern_escape = Regexp.new(PATTERN_ESCAPE)
|
3730
3815
|
@@pattern_escape_content = Regexp.new(PATTERN_ESCAPE_CONTENT)
|
3731
|
-
|
3816
|
+
@@pattern_br_2 = Regexp.new(BR_3)
|
3732
3817
|
else
|
3733
3818
|
|
3734
3819
|
@@pattern_and_1 = Regexp.new(AND_1)
|
@@ -3786,7 +3871,9 @@ module Meteor
|
|
3786
3871
|
def initialize_1(ps)
|
3787
3872
|
@root.document = String.new(ps.document)
|
3788
3873
|
@root.hook_document = String.new(ps.root_element.hook_document)
|
3789
|
-
@root.content_type = String.new(ps.content_type)
|
3874
|
+
@root.content_type = String.new(ps.content_type)
|
3875
|
+
@root.kaigyo_code = ps.root_element.kaigyo_code
|
3876
|
+
@doc_type = ps.doc_type
|
3790
3877
|
end
|
3791
3878
|
private :initialize_1
|
3792
3879
|
|
@@ -3855,11 +3942,17 @@ module Meteor
|
|
3855
3942
|
#
|
3856
3943
|
def analyze_kaigyo_code()
|
3857
3944
|
#改行コード取得
|
3858
|
-
|
3859
|
-
|
3945
|
+
#@pattern = Regexp.new(KAIGYO_CODE)
|
3946
|
+
#@res = @pattern.match(@root.document)
|
3860
3947
|
|
3861
|
-
if @res then
|
3862
|
-
|
3948
|
+
#if @res then
|
3949
|
+
# @root.kaigyo_code = @res[0]
|
3950
|
+
#end
|
3951
|
+
|
3952
|
+
for a in KAIGYO_CODE
|
3953
|
+
if @root.document.include?(a) then
|
3954
|
+
@root.kaigyo_code = a
|
3955
|
+
end
|
3863
3956
|
end
|
3864
3957
|
end
|
3865
3958
|
private :analyze_kaigyo_code
|
@@ -4005,16 +4098,16 @@ module Meteor
|
|
4005
4098
|
elm.mono = true
|
4006
4099
|
if elm.cx then
|
4007
4100
|
#@pattern_cc = '' << SET_CX_1 << elm.name << SPACE << elm.attributes << SET_CX_2 << elm.mixed_content << SET_CX_3 << elm.name << SET_CX_4
|
4008
|
-
|
4101
|
+
elm.document = "<!-- @#{elm.name} #{elm.attributes} -->#{elm.mixed_content}<!-- /@#{elm.name} -->"
|
4009
4102
|
else
|
4010
4103
|
if elm.empty then
|
4011
4104
|
#@pattern_cc = '' << TAG_OPEN << elm.name << elm.attributes << TAG_CLOSE << elm.mixed_content << TAG_OPEN3 << elm.name << TAG_CLOSE
|
4012
|
-
|
4105
|
+
elm.document = "<#{elm.name}#{elm.attributes}>#{elm.mixed_content}</#{elm.name}>"
|
4013
4106
|
else
|
4014
|
-
|
4107
|
+
elm.document = '' << TAG_OPEN << elm.name << elm.attributes << TAG_CLOSE3
|
4015
4108
|
end
|
4016
4109
|
end
|
4017
|
-
elm.document = @pattern_cc
|
4110
|
+
#elm.document = @pattern_cc
|
4018
4111
|
end
|
4019
4112
|
end
|
4020
4113
|
private :set_mono_info
|
@@ -4092,7 +4185,7 @@ module Meteor
|
|
4092
4185
|
#if content.include?(AND_2) then
|
4093
4186
|
# content.gsub!(@@pattern_and_2,AND_1)
|
4094
4187
|
#end
|
4095
|
-
content.gsub
|
4188
|
+
content.gsub(@@pattern_unescape) do
|
4096
4189
|
case $1
|
4097
4190
|
when AND_3 then
|
4098
4191
|
AND_1
|
@@ -4109,21 +4202,21 @@ module Meteor
|
|
4109
4202
|
end
|
4110
4203
|
end
|
4111
4204
|
|
4112
|
-
content
|
4205
|
+
#content
|
4113
4206
|
end
|
4114
4207
|
private :unescape
|
4115
4208
|
|
4116
4209
|
def unescape_content(content,elm_name)
|
4117
|
-
|
4210
|
+
content_ = unescape(content)
|
4118
4211
|
|
4119
4212
|
if !is_match(MATCH_TAG_2,elm_name) then
|
4120
4213
|
#「<br>」->「¥r?¥n」
|
4121
4214
|
if content.include?(BR_2) then
|
4122
|
-
|
4215
|
+
content_.gsub!(@@pattern_br_2, @root.kaigyo_code)
|
4123
4216
|
end
|
4124
4217
|
end
|
4125
4218
|
|
4126
|
-
|
4219
|
+
content_
|
4127
4220
|
end
|
4128
4221
|
private :unescape_content
|
4129
4222
|
|
@@ -4200,6 +4293,7 @@ module Meteor
|
|
4200
4293
|
def initialize_1(ps)
|
4201
4294
|
@root.document = String.new(ps.document)
|
4202
4295
|
@root.hook_document = String.new(ps.root_element.hook_document)
|
4296
|
+
@doc_type = ps.doc_type
|
4203
4297
|
end
|
4204
4298
|
private :initialize_1
|
4205
4299
|
|
@@ -4312,7 +4406,7 @@ module Meteor
|
|
4312
4406
|
# content.gsub!(@@pattern_and_2,AND_1)
|
4313
4407
|
# end
|
4314
4408
|
#else
|
4315
|
-
content.gsub
|
4409
|
+
content.gsub(@@pattern_unescape) do
|
4316
4410
|
case $1
|
4317
4411
|
when AND_3 then
|
4318
4412
|
AND_1
|
@@ -4328,7 +4422,7 @@ module Meteor
|
|
4328
4422
|
end
|
4329
4423
|
#end
|
4330
4424
|
|
4331
|
-
content
|
4425
|
+
#content
|
4332
4426
|
end
|
4333
4427
|
private :unescape
|
4334
4428
|
|
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.2.
|
4
|
+
version: 0.9.2.6
|
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-
|
12
|
+
date: 2009-07-04 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|