asip-meteor 0.9.2.2 → 0.9.2.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.
Files changed (2) hide show
  1. data/lib/meteor.rb +136 -168
  2. 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.2
21
+ # @version 0.9.2.3
22
22
  #
23
23
 
24
24
  module Meteor
25
25
 
26
- VERSION = "0.9.2.2"
26
+ VERSION = "0.9.2.3"
27
27
 
28
28
  RUBY_VERSION_1_9_0 = '1.9.0'
29
29
 
@@ -119,6 +119,21 @@ module Meteor
119
119
  end
120
120
  private :initialize_e
121
121
 
122
+ attr_accessor :name
123
+ attr_accessor :attributes
124
+ attr_accessor :mixed_content
125
+ attr_accessor :pattern
126
+ attr_accessor :document
127
+ attr_accessor :empty
128
+ attr_accessor :cx
129
+ attr_accessor :mono
130
+ attr_accessor :parser
131
+ attr_accessor :type_value
132
+ attr_accessor :arguments
133
+ attr_accessor :usable
134
+ attr_accessor :origin
135
+ attr_accessor :copy
136
+
122
137
  #
123
138
  # コピーを作成する
124
139
  # @param [Array] args 引数配列
@@ -165,21 +180,6 @@ module Meteor
165
180
  end
166
181
  end
167
182
 
168
- attr_accessor :name
169
- attr_accessor :attributes
170
- attr_accessor :mixed_content
171
- attr_accessor :pattern
172
- attr_accessor :document
173
- attr_accessor :empty
174
- attr_accessor :cx
175
- attr_accessor :mono
176
- attr_accessor :parser
177
- attr_accessor :type_value
178
- attr_accessor :arguments
179
- attr_accessor :usable
180
- attr_accessor :origin
181
- attr_accessor :copy
182
-
183
183
  #
184
184
  # 子要素を取得する
185
185
  #
@@ -244,7 +244,8 @@ module Meteor
244
244
  # @param [String] value 属性の値or内容
245
245
  #
246
246
  def []=(name,value)
247
- if !name.kind_of?(String) || name != CONTENT_STR then
247
+ #if !name.kind_of?(String) || CONTENT_STR != name then
248
+ if CONTENT_STR != name then
248
249
  attribute(name,value)
249
250
  else
250
251
  @parser.content(self,value)
@@ -258,7 +259,8 @@ module Meteor
258
259
  # @return [String] 属性の値or内容
259
260
  #
260
261
  def [](name)
261
- if !name.kind_of?(String) || name != CONTENT_STR then
262
+ #if !name.kind_of?(String) || CONTENT_STR != name then
263
+ if CONTENT_STR != name then
262
264
  attribute(name)
263
265
  else
264
266
  content()
@@ -283,11 +285,7 @@ module Meteor
283
285
 
284
286
  def print
285
287
  @parser.print
286
- end
287
-
288
- #def flush
289
- # @parser.flush
290
- #end
288
+ end
291
289
 
292
290
  #
293
291
  # フッククラスの処理を実行する
@@ -433,7 +431,7 @@ module Meteor
433
431
  # @param name 属性名
434
432
  #
435
433
  def delete(name)
436
- if @map[name] && @recordable then
434
+ if @recordable && @map[name] then
437
435
  @map[name].removed = true
438
436
  @map[name].changed = false
439
437
  end
@@ -1670,7 +1668,7 @@ module Meteor
1670
1668
  @sbuf << @pattern_cc_1_2
1671
1669
  end
1672
1670
 
1673
- @cnt << 1
1671
+ @cnt += 1
1674
1672
 
1675
1673
  @position = @position2
1676
1674
  else
@@ -1695,7 +1693,7 @@ module Meteor
1695
1693
  @sbuf << @pattern_cc_1_2
1696
1694
  end
1697
1695
 
1698
- @cnt += ONE
1696
+ @cnt += 1
1699
1697
 
1700
1698
  @position = @position2
1701
1699
  end
@@ -1844,13 +1842,13 @@ module Meteor
1844
1842
  #
1845
1843
  def attribute(*args)
1846
1844
  case args.length
1847
- when ONE
1848
- get_attribute_value_1(args[0])
1845
+ #when ONE
1846
+ # get_attribute_value_1(args[0])
1849
1847
  when TWO
1850
1848
  if args[0].kind_of?(Meteor::Element) && args[1].kind_of?(String) then
1851
1849
  get_attribute_value_2(args[0],args[1])
1852
- elsif args[0].kind_of?(String) && args[1].kind_of?(String) then
1853
- set_attribute_2(args[0],args[1])
1850
+ #elsif args[0].kind_of?(String) && args[1].kind_of?(String) then
1851
+ # set_attribute_2(args[0],args[1])
1854
1852
  elsif args[0].kind_of?(Meteor::Element) && args[1].kind_of?(Meteor::AttributeMap) then
1855
1853
  set_attribute_2_m(args[0],args[1])
1856
1854
  else
@@ -1993,19 +1991,19 @@ module Meteor
1993
1991
  end
1994
1992
  private :edit_pattern_
1995
1993
 
1996
- #
1997
- # 要素の属性を編集する
1998
- #
1999
- # @param [String] attr_name 属性名
2000
- # @param [String] attr_value 属性値
2001
- #
2002
- def set_attribute_2(attr_name,attr_value)
2003
- if @root.element.origin then
2004
- set_attribute_3(@root.element, attr_name, attr_value)
2005
- end
2006
- @root.element
2007
- end
2008
- private :set_attribute_2
1994
+ ##
1995
+ ## 要素の属性を編集する
1996
+ ##
1997
+ ## @param [String] attr_name 属性名
1998
+ ## @param [String] attr_value 属性値
1999
+ ##
2000
+ #def set_attribute_2(attr_name,attr_value)
2001
+ # if @root.element.origin then
2002
+ # set_attribute_3(@root.element, attr_name, attr_value)
2003
+ # end
2004
+ # @root.element
2005
+ #end
2006
+ #private :set_attribute_2
2009
2007
 
2010
2008
  #
2011
2009
  # 要素の属性値を取得する
@@ -2034,20 +2032,20 @@ module Meteor
2034
2032
  end
2035
2033
  private :get_attribute_value_
2036
2034
 
2037
- #
2038
- # 要素の属性値を取得する
2039
- #
2040
- # @param [String] attr_name 属性名
2041
- # @return [String] 属性値
2042
- #
2043
- def get_attribute_value_1(attr_name)
2044
- if @root.element then
2045
- get_attribute_value_2(@root.element, attr_name)
2046
- else
2047
- nil
2048
- end
2049
- end
2050
- private :get_attribute_value_1
2035
+ ##
2036
+ ## 要素の属性値を取得する
2037
+ ##
2038
+ ## @param [String] attr_name 属性名
2039
+ ## @return [String] 属性値
2040
+ ##
2041
+ #def get_attribute_value_1(attr_name)
2042
+ # if @root.element then
2043
+ # get_attribute_value_2(@root.element, attr_name)
2044
+ # else
2045
+ # nil
2046
+ # end
2047
+ #end
2048
+ #private :get_attribute_value_1
2051
2049
 
2052
2050
  #
2053
2051
  # 属性マップを取得する
@@ -2127,19 +2125,22 @@ module Meteor
2127
2125
  def content(*args)
2128
2126
  case args.length
2129
2127
  when ONE
2130
- if args[0].kind_of?(Meteor::Element) then
2131
- get_content_1(args[0])
2132
- elsif args[0].kind_of?(String) then
2133
- set_content_1(args[0])
2134
- end
2128
+ #if args[0].kind_of?(Meteor::Element) then
2129
+ get_content_1(args[0])
2130
+ #elsif args[0].kind_of?(String) then
2131
+ # set_content_1(args[0])
2132
+ #else
2133
+ # raise ArgumentError
2134
+ #end
2135
2135
  when TWO
2136
- if args[0].kind_of?(Meteor::Element) && args[1].kind_of?(String) then
2137
- set_content_2_s(args[0],args[1])
2138
- elsif args[0].kind_of?(String) && (args[1].kind_of?(TrueClass) || args[1].kind_of?(FalseClass)) then
2139
- set_content_2_b(args[0],args[1])
2140
- else
2141
- raise ArgumentError
2142
- end
2136
+ #if args[0].kind_of?(Meteor::Element) && args[1].kind_of?(String) then
2137
+ set_content_2_s(args[0],args[1])
2138
+ #elsif args[0].kind_of?(String) && (args[1].eql?(true) || args[1].eql?(false)) then
2139
+ ##elsif args[0].kind_of?(String) && (args[1].kinf_of?(TrueClass) || args[1].kind_of?(FalseClass)) then
2140
+ # set_content_2_b(args[0],args[1])
2141
+ #else
2142
+ # raise ArgumentError
2143
+ #end
2143
2144
  when THREE
2144
2145
  set_content_3(args[0],args[1],args[2])
2145
2146
  else
@@ -2157,11 +2158,9 @@ module Meteor
2157
2158
  def set_content_3(elm,content,entity_ref=true)
2158
2159
 
2159
2160
  if entity_ref then
2160
- content = escape_content(content,elm.name)
2161
- end
2162
-
2161
+ escape_content(content,elm.name)
2162
+ end
2163
2163
  elm.mixed_content = content
2164
-
2165
2164
  elm
2166
2165
  end
2167
2166
  private :set_content_3
@@ -2173,36 +2172,38 @@ module Meteor
2173
2172
  # @param [String] content 要素の内容
2174
2173
  #
2175
2174
  def set_content_2_s(elm,content)
2176
- set_content_3(elm, content)
2175
+ #set_content_3(elm, content)
2176
+ elm.mixed_content = escape_content(content,elm.name)
2177
+ elm
2177
2178
  end
2178
2179
  private :set_content_2_s
2179
2180
 
2180
- #
2181
- # 要素の内容を編集する
2182
- #
2183
- # @param [String] content 内容
2184
- #
2185
- def set_content_1(content)
2186
- if @root.element && @root.element.mono then
2187
- set_content_2_s(@root.element, content)
2188
- end
2189
- end
2190
- private :set_content_1
2181
+ ##
2182
+ ## 要素の内容を編集する
2183
+ ##
2184
+ ## @param [String] content 内容
2185
+ ##
2186
+ #def set_content_1(content)
2187
+ # if @root.element && @root.element.mono then
2188
+ # set_content_2_s(@root.element, content)
2189
+ # end
2190
+ #end
2191
+ #private :set_content_1
2191
2192
 
2193
+ ##
2194
+ ## 要素の内容を編集する
2195
+ ##
2196
+ ## @param [String] content 内容
2197
+ ## @param [TrueClass,FalseClass] entity_ref エンティティ参照フラグ
2198
+ ##
2199
+ #def set_content_2_b(content,entity_ref)
2200
+ # if @root.element && @root.element.mono then
2201
+ # set_content_3(@root.element, content, entity_ref)
2202
+ # end
2192
2203
  #
2193
- # 要素の内容を編集する
2194
- #
2195
- # @param [String] content 内容
2196
- # @param [TrueClass,FalseClass] entity_ref エンティティ参照フラグ
2197
- #
2198
- def set_content_2_b(content,entity_ref)
2199
- if @root.element && @root.element.mono then
2200
- set_content_3(@root.element, content, entity_ref)
2201
- end
2202
-
2203
- @root.element
2204
- end
2205
- private :set_content_2_b
2204
+ # @root.element
2205
+ #end
2206
+ #private :set_content_2_b
2206
2207
 
2207
2208
  def get_content_1(elm)
2208
2209
  if !elm.cx then
@@ -2485,7 +2486,6 @@ module Meteor
2485
2486
 
2486
2487
  pif2 = create(self)
2487
2488
 
2488
- #@elm_ = Element.new(elm,pif2)
2489
2489
  @elm_ = Element.new!(elm,pif2)
2490
2490
 
2491
2491
  if !elm.mono then
@@ -2493,42 +2493,15 @@ module Meteor
2493
2493
  else
2494
2494
  pif2.root_element.document = String.new(elm.document)
2495
2495
  end
2496
- #pif2.root_element.element = @elm_
2497
2496
 
2498
2497
  @elm_
2499
2498
  end
2500
2499
  end
2501
- private :shadow
2502
-
2503
- ##
2504
- ## 子パーサを取得する
2505
- ##
2506
- ## @param [Meteor::Element] elm 要素
2507
- ## @return [Meteor::Parser] 子パーサ
2508
- ##
2509
- #def child(elm)
2510
- # if shadow(elm) then
2511
- # @elm_.parser
2512
- # end
2513
- #end
2500
+ private :shadow
2514
2501
 
2515
2502
  def set_mono_info(elm)
2516
2503
  end
2517
- private :set_mono_info
2518
-
2519
- ##
2520
- ## 反映する
2521
- ##
2522
- #def flush
2523
- # #if @root.element && @root.element.origin then
2524
- # # ##@root.element.origin.parser.reflect
2525
- # # ##@root.element.origin.parser.replace(@root.element.origin, @root.hook_document)
2526
- # # ##puts "[aa]"
2527
- # # ##puts @root.hook_document
2528
- # # @root.element.origin.document = @root.hook_document
2529
- # # @root.element.origin.name = EMPTY
2530
- # #end
2531
- #end
2504
+ private :set_mono_info
2532
2505
 
2533
2506
  #
2534
2507
  # フッククラスの処理を実行する
@@ -2620,19 +2593,9 @@ module Meteor
2620
2593
 
2621
2594
  def is_match(regex,str)
2622
2595
  if regex.kind_of?(Regexp) then
2623
- if regex.match(str.downcase) then
2624
- true
2625
- else
2626
- false
2627
- end
2596
+ is_match_r(regex,str)
2628
2597
  elsif regex.kind_of?(Array) then
2629
- str = str.downcase
2630
- regex.each do |item|
2631
- if item.eql?(str) then
2632
- return true
2633
- end
2634
- end
2635
- return false
2598
+ is_match_a(regex,str)
2636
2599
  elsif regex.kind_of?(String) then
2637
2600
  if regex.eql?(str.downcase) then
2638
2601
  true
@@ -2645,6 +2608,36 @@ module Meteor
2645
2608
  end
2646
2609
  private :is_match
2647
2610
 
2611
+
2612
+ def is_match_r(regex,str)
2613
+ if regex.match(str.downcase) then
2614
+ true
2615
+ else
2616
+ false
2617
+ end
2618
+ end
2619
+ private :is_match_r
2620
+
2621
+ def is_match_a(regex,str)
2622
+ str = str.downcase
2623
+ regex.each do |item|
2624
+ if item.eql?(str) then
2625
+ return true
2626
+ end
2627
+ end
2628
+ return false
2629
+ end
2630
+ private :is_match_a
2631
+
2632
+ def is_match_s(regex,str)
2633
+ if regex.match(str.downcase) then
2634
+ true
2635
+ else
2636
+ false
2637
+ end
2638
+ end
2639
+ private :is_match_s
2640
+
2648
2641
  def create(pif)
2649
2642
  if pif.instance_of?(Meteor::Core::Html::ParserImpl) then
2650
2643
  pif = Meteor::Core::Html::ParserImpl.new
@@ -2659,31 +2652,6 @@ module Meteor
2659
2652
  end
2660
2653
  private :create
2661
2654
 
2662
- ##
2663
- ## 要素の属性or内容をセットする
2664
- ## @param [String] name 属性名
2665
- ## @param [String] value 属性値or内容
2666
- ##
2667
- #def []=(name,value)
2668
- # if !name.kind_of?(String)|| name != CONTENT_STR then
2669
- # attribute(name,value)
2670
- # else
2671
- # content(value)
2672
- # end
2673
- #end
2674
- #
2675
- ##
2676
- ## 要素の属性値or内容を取得する
2677
- ## @param [String] name 属性名
2678
- ## @return [String] 属性値or内容
2679
- ##
2680
- #def [](name)
2681
- # if !name.kind_of?(String)|| name != CONTENT_STR then
2682
- # attribute(name)
2683
- # else
2684
- # content()
2685
- # end
2686
- #end
2687
2655
  end
2688
2656
 
2689
2657
  module Util
@@ -2767,7 +2735,7 @@ module Meteor
2767
2735
  end
2768
2736
 
2769
2737
  if RUBY_VERSION < RUBY_VERSION_1_9_0 then
2770
- class OrderHash <Hash
2738
+ class OrderHash < Hash
2771
2739
 
2772
2740
  def initialize
2773
2741
  @keys = Array.new
@@ -3417,7 +3385,7 @@ module Meteor
3417
3385
  elsif is_match(DISABLED, attr_name) && is_match(DISABLE_ELEMENT, elm.name) then
3418
3386
  get_attribute_value_2_r(elm,@@pattern_disabled_m)
3419
3387
  #get_attribute_value_2_r(elm,DISABLED_M)
3420
- elsif is_match(CHECKED, attr_name) && is_match(INPUT,elm.name) && is_match(RADIO, get_type(elm)) then
3388
+ elsif is_match(CHECKED, attr_name) && is_match_S(INPUT,elm.name) && is_match_S(RADIO, get_type(elm)) then
3421
3389
  get_attribute_value_2_r(elm,@@pattern_checked_m)
3422
3390
  #get_attribute_value_2_r(elm,CHECKED_M)
3423
3391
  elsif is_match(READONLY, attr_name) && (is_match(TEXTAREA,elm.name) || (is_match(INPUT,elm.name) && is_match(READONLY_TYPE, get_type(elm)))) then
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.2
4
+ version: 0.9.2.3
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-06-05 00:00:00 -07:00
12
+ date: 2009-06-08 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies: []
15
15