Changeset 28955

Show
Ignore:
Timestamp:
01/24/09 13:34:35 (4 years ago)
Author:
isaisstillalive
Message:
  • プロパティと同名のアクセッサがすでに定義されている場合の処理が甘かったので修正。
Location:
lang/ruby/ruwin
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lang/ruby/ruwin/lib/ruwin/component.rb

    r28901 r28955  
    5151                @proparty[:#{name}] 
    5252              end 
     53            END 
     54          end 
     55          unless method_defined? :"#{name}=" 
     56            define_instance_methods << <<-"END" 
    5357              def #{name}= value 
    5458                @proparty[:#{name}] = value 
  • lang/ruby/ruwin/test/ruwin/test_component.rb

    r28901 r28955  
    2222    instance.test_pro = 3 
    2323    assert_equal 3, instance.test_pro 
     24  end 
     25   
     26  def test_component_property_accessor_reader_defined 
     27    klass = Class.new(Ruwin::Component) 
     28    klass.class_eval "def test_pro;:defined;end; property_accessor :test_pro => 1" 
     29     
     30    instance = klass.new 
     31    assert_respond_to instance, :test_pro 
     32    assert_respond_to instance, :test_pro= 
     33    assert_equal :defined, instance.test_pro 
     34  end 
     35   
     36  def test_component_property_accessor_writer_defined 
     37    klass = Class.new(Ruwin::Component) 
     38    klass.class_eval "def test_pro= v;:defined;end; property_accessor :test_pro => 1" 
     39     
     40    instance = klass.new 
     41    assert_respond_to instance, :test_pro 
     42    assert_respond_to instance, :test_pro= 
     43    assert_equal :defined, instance.__send__(:test_pro=, nil) 
    2444  end 
    2545