Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

Changeset 1537

Show
Ignore:
Timestamp:
05/05/05 23:55:11 (4 years ago)
Author:
nahi
Message:

use module_eval instead of define_method under ruby/1.6. related to #95.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/soap/rpc/driver.rb

    r1533 r1537  
    2424class Driver 
    2525  class << self 
    26     def __attr_proxy(symbol, assignable = false) 
    27       name = symbol.to_s 
    28       self.__send__(:define_method, name, proc { 
    29         @proxy.__send__(name) 
    30       }) 
    31       if assignable 
    32         self.__send__(:define_method, name + '=', proc { |rhs| 
    33           @proxy.__send__(name + '=', rhs) 
     26    if RUBY_VERSION >= "1.7.0" 
     27      def __attr_proxy(symbol, assignable = false) 
     28        name = symbol.to_s 
     29        self.__send__(:define_method, name, proc { 
     30          @proxy.__send__(name) 
    3431        }) 
     32        if assignable 
     33          self.__send__(:define_method, name + '=', proc { |rhs| 
     34            @proxy.__send__(name + '=', rhs) 
     35          }) 
     36        end 
     37      end 
     38    else 
     39      def __attr_proxy(symbol, assignable = false) 
     40        name = symbol.to_s 
     41        module_eval <<-EOS 
     42          def #{name} 
     43            @proxy.#{name} 
     44          end 
     45        EOS 
     46        if assignable 
     47          module_eval <<-EOS 
     48            def #{name}=(value) 
     49              @proxy.#{name} = value 
     50            end 
     51          EOS 
     52        end 
    3553      end 
    3654    end 
  • trunk/lib/soap/wsdlDriver.rb

    r1533 r1537  
    156156  class << self 
    157157    def __attr_proxy(symbol, assignable = false) 
    158       name = symbol.to_s 
    159       self.__send__(:define_method, name, proc { 
    160         @servant.__send__(name) 
    161       }
    162       if assignable 
    163         self.__send__(:define_method, name + '=', proc { |rhs| 
    164           @servant.__send__(name + '=', rhs
     158    end 
     159 
     160    if RUBY_VERSION >= "1.7.0" 
     161      def __attr_proxy(symbol, assignable = false
     162        name = symbol.to_s 
     163        self.__send__(:define_method, name, proc { 
     164          @servant.__send__(name
    165165        }) 
     166        if assignable 
     167          self.__send__(:define_method, name + '=', proc { |rhs| 
     168            @servant.__send__(name + '=', rhs) 
     169          }) 
     170        end 
     171      end 
     172    else 
     173      def __attr_proxy(symbol, assignable = false) 
     174        name = symbol.to_s 
     175        module_eval <<-EOS 
     176          def #{name} 
     177            @servant.#{name} 
     178          end 
     179        EOS 
     180        if assignable 
     181          module_eval <<-EOS 
     182            def #{name}=(value) 
     183              @servant.#{name} = value 
     184            end 
     185          EOS 
     186        end 
    166187      end 
    167188    end 
  • trunk/lib/wsdl/xmlSchema/attribute.rb

    r1520 r1537  
    1616class Attribute < Info 
    1717  class << self 
    18     def attr_reader_ref(symbol) 
    19       name = symbol.to_s 
    20       self.__send__(:define_method, name, proc { 
    21         instance_variable_get("@#{name}") || 
    22           (refelement ? refelement.__send__(name) : nil) 
    23       }) 
     18    if RUBY_VERSION > "1.7.0" 
     19      def attr_reader_ref(symbol) 
     20        name = symbol.to_s 
     21        self.__send__(:define_method, name, proc { 
     22          instance_variable_get("@#{name}") || 
     23            (refelement ? refelement.__send__(name) : nil) 
     24        }) 
     25      end 
     26    else 
     27      def attr_reader_ref(symbol) 
     28        name = symbol.to_s 
     29        module_eval <<-EOS 
     30          def #{name} 
     31            @#{name} || (refelement ? refelement.#{name} : nil) 
     32          end 
     33        EOS 
     34      end 
    2435    end 
    2536  end 
  • trunk/lib/wsdl/xmlSchema/element.rb

    r1520 r1537  
    1616class Element < Info 
    1717  class << self 
    18     def attr_reader_ref(symbol) 
    19       name = symbol.to_s 
    20       self.__send__(:define_method, name, proc { 
    21         instance_variable_get("@#{name}") || 
    22           (refelement ? refelement.__send__(name) : nil) 
    23       }) 
     18    if RUBY_VERSION > "1.7.0" 
     19      def attr_reader_ref(symbol) 
     20        name = symbol.to_s 
     21        self.__send__(:define_method, name, proc { 
     22          instance_variable_get("@#{name}") || 
     23            (refelement ? refelement.__send__(name) : nil) 
     24        }) 
     25      end 
     26    else 
     27      def attr_reader_ref(symbol) 
     28        name = symbol.to_s 
     29        module_eval <<-EOS 
     30          def #{name} 
     31            @#{name} || (refelement ? refelement.#{name} : nil) 
     32          end 
     33        EOS 
     34      end 
    2435    end 
    2536  end 
  • trunk/test/16runner.rb

    r1520 r1537  
    3434} 
    3535 
     36def test_require(list) 
     37  list.each do |tc_name| 
     38    if File.directory?(tc_name) 
     39      newlist = Dir.glob(File.join(tc_name, "**", "test_*.rb")).sort 
     40      test_require(newlist) 
     41    else 
     42      dir = File.expand_path(File.dirname(tc_name)) 
     43      backup = $:.dup 
     44      $:.push(dir) 
     45      require tc_name 
     46      $:.replace(backup) 
     47    end 
     48  end 
     49end 
     50 
    3651argv = ARGV 
    3752if argv.empty? 
     
    3954end 
    4055 
    41 argv.each do |tc_name| 
    42   dir = File.expand_path(File.dirname(tc_name)) 
    43   backup = $:.dup 
    44   $:.push(dir) 
    45   require tc_name 
    46   $:.replace(backup) 
    47 end 
     56test_require(argv) 
    4857 
    4958runner = 'console'