1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* lib: do not use __send__ to access private methods. [ruby-dev:26935]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2005-09-02 14:53:02 +00:00
parent b6a9db5005
commit f42208b70c
15 changed files with 54 additions and 46 deletions

View file

@ -1,21 +1,25 @@
Fri Sep 2 23:51:54 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib: do not use __send__ to access private methods. [ruby-dev:26935]
Fri Sep 2 03:29:00 2005 Keiju Ishitsuka <keiju@ruby-lang.org> Fri Sep 2 03:29:00 2005 Keiju Ishitsuka <keiju@ruby-lang.org>
* lib/irb/init.rb: make IRB -I option that is same befavior for ruby. * lib/irb/init.rb: make IRB -I option that is same befavior for ruby.
[ruby-dev:26872], [ruby-dev: 26920] [ruby-dev:26872], [ruby-dev: 26920]
* lib/irb/locale.rb: support to print help message when OS locale is * lib/irb/locale.rb: support to print help message when OS locale is
ja_JP.utf-8. [ruby-dev:26872] ja_JP.utf-8. [ruby-dev:26872]
Thu Sep 1 17:11:25 2005 Yukihiro Matsumoto <matz@ruby-lang.org> Thu Sep 1 17:11:25 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
* eval.c (rb_call0): wrong condition for $SAFE restoration. * eval.c (rb_call0): wrong condition for $SAFE restoration.
Thu Sep 1 14:12:45 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp> Thu Sep 1 14:12:45 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
* ext/tk/lib/multi-tk.rb: On Tcl8.5, MultiTkIp#invoke_hidden doesn't * ext/tk/lib/multi-tk.rb: On Tcl8.5, MultiTkIp#invoke_hidden doesn't
work (gives wrong order of arguments). work (gives wrong order of arguments).
* ext/tk/lib/multi-tk.rb: add MultiTkIp#invoke_hidden_on_namespace * ext/tk/lib/multi-tk.rb: add MultiTkIp#invoke_hidden_on_namespace
to support '-namespace' option of 'interp invokehidden' command to support '-namespace' option of 'interp invokehidden' command
on Tcl8.5. on Tcl8.5.
Wed Aug 31 14:43:15 2005 NAKAMURA Usaku <usa@ruby-lang.org> Wed Aug 31 14:43:15 2005 NAKAMURA Usaku <usa@ruby-lang.org>
@ -124,7 +128,7 @@ Wed Aug 17 00:05:46 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
where a method is defined . where a method is defined .
* eval.c (rb_call0): restore preserved safe level in the method * eval.c (rb_call0): restore preserved safe level in the method
execution. execution.
Mon Aug 15 00:38:51 2005 Nobuyoshi Nakada <nobu@ruby-lang.org> Mon Aug 15 00:38:51 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>

View file

@ -87,11 +87,11 @@ module MonitorMixin
class Timeout < Exception; end class Timeout < Exception; end
def wait(timeout = nil) def wait(timeout = nil)
@monitor.__send__(:mon_check_owner) @monitor.instance_eval {mon_check_owner()}
timer = create_timer(timeout) timer = create_timer(timeout)
Thread.critical = true Thread.critical = true
count = @monitor.__send__(:mon_exit_for_cond) count = @monitor.instance_eval {mon_exit_for_cond()}
@waiters.push(Thread.current) @waiters.push(Thread.current)
begin begin
@ -107,7 +107,7 @@ module MonitorMixin
if @waiters.include?(Thread.current) # interrupted? if @waiters.include?(Thread.current) # interrupted?
@waiters.delete(Thread.current) @waiters.delete(Thread.current)
end end
@monitor.__send__(:mon_enter_for_cond, count) @monitor.instance_eval {mon_enter_for_cond(count)}
Thread.critical = false Thread.critical = false
end end
end end
@ -125,7 +125,7 @@ module MonitorMixin
end end
def signal def signal
@monitor.__send__(:mon_check_owner) @monitor.instance_eval {mon_check_owner()}
Thread.critical = true Thread.critical = true
t = @waiters.shift t = @waiters.shift
t.wakeup if t t.wakeup if t
@ -134,7 +134,7 @@ module MonitorMixin
end end
def broadcast def broadcast
@monitor.__send__(:mon_check_owner) @monitor.instance_eval {mon_check_owner()}
Thread.critical = true Thread.critical = true
for t in @waiters for t in @waiters
t.wakeup t.wakeup
@ -172,7 +172,7 @@ module MonitorMixin
def self.extend_object(obj) def self.extend_object(obj)
super(obj) super(obj)
obj.__send__(:mon_initialize) obj.instance_eval {mon_initialize()}
end end
# #

View file

@ -10,8 +10,8 @@ module RSS
::RSS::ContentModel::ELEMENTS.each do |element| ::RSS::ContentModel::ELEMENTS.each do |element|
klass.add_need_initialize_variable(element) klass.add_need_initialize_variable(element)
klass.add_other_element(element) klass.add_other_element(element)
klass.__send__(:attr_accessor, element) klass.module_eval(<<-EOC, __FILE__, __LINE__+1)
klass.module_eval(<<-EOC, __FILE__, __LINE__) attr_accessor :#{element}
def setup_#{element}(rss, current) def setup_#{element}(rss, current)
if #{element} and current.respond_to?(:#{element}=) if #{element} and current.respond_to?(:#{element}=)
current.#{element} = @#{element} if @#{element} current.#{element} = @#{element} if @#{element}

View file

@ -18,8 +18,8 @@ module RSS
klass.add_need_initialize_variable(full_plural_name, klass.add_need_initialize_variable(full_plural_name,
"make_#{full_plural_name}") "make_#{full_plural_name}")
klass.add_other_element(full_plural_name) klass.add_other_element(full_plural_name)
klass.__send__(:attr_accessor, full_plural_name) klass.module_eval(<<-EOC, __FILE__, __LINE__+1)
klass.module_eval(<<-EOC, __FILE__, __LINE__) attr_accessor :#{full_plural_name}
def make_#{full_plural_name} def make_#{full_plural_name}
#{full_plural_klass_name}.new(@maker) #{full_plural_klass_name}.new(@maker)
end end

View file

@ -11,8 +11,8 @@ module RSS
name = "#{RSS::IMAGE_PREFIX}_item" name = "#{RSS::IMAGE_PREFIX}_item"
klass.add_need_initialize_variable(name, "make_#{name}") klass.add_need_initialize_variable(name, "make_#{name}")
klass.add_other_element(name) klass.add_other_element(name)
klass.__send__(:attr_reader, name) klass.module_eval(<<-EOC, __FILE__, __LINE__+1)
klass.module_eval(<<-EOC, __FILE__, __LINE__) attr_reader :#{name}
def setup_#{name}(rss, current) def setup_#{name}(rss, current)
if @#{name} if @#{name}
@#{name}.to_rss(rss, current) @#{name}.to_rss(rss, current)
@ -52,8 +52,8 @@ EOC
name = "#{RSS::IMAGE_PREFIX}_favicon" name = "#{RSS::IMAGE_PREFIX}_favicon"
klass.add_need_initialize_variable(name, "make_#{name}") klass.add_need_initialize_variable(name, "make_#{name}")
klass.add_other_element(name) klass.add_other_element(name)
klass.__send__(:attr_reader, name) klass.module_eval(<<-EOC, __FILE__, __LINE__+1)
klass.module_eval(<<-EOC, __FILE__, __LINE__) attr_reader :#{name}
def setup_#{name}(rss, current) def setup_#{name}(rss, current)
if @#{name} if @#{name}
@#{name}.to_rss(rss, current) @#{name}.to_rss(rss, current)

View file

@ -10,8 +10,8 @@ module RSS
::RSS::SyndicationModel::ELEMENTS.each do |element| ::RSS::SyndicationModel::ELEMENTS.each do |element|
klass.add_need_initialize_variable(element) klass.add_need_initialize_variable(element)
klass.add_other_element(element) klass.add_other_element(element)
klass.__send__(:attr_accessor, element) klass.module_eval(<<-EOC, __FILE__, __LINE__+1)
klass.module_eval(<<-EOC, __FILE__, __LINE__) attr_accessor :#{element}
def setup_#{element}(rss, current) def setup_#{element}(rss, current)
if #{element} and current.respond_to?(:#{element}=) if #{element} and current.respond_to?(:#{element}=)
current.#{element} = @#{element} if @#{element} current.#{element} = @#{element} if @#{element}

View file

@ -11,8 +11,8 @@ module RSS
name = "#{RSS::TRACKBACK_PREFIX}_ping" name = "#{RSS::TRACKBACK_PREFIX}_ping"
klass.add_need_initialize_variable(name) klass.add_need_initialize_variable(name)
klass.add_other_element(name) klass.add_other_element(name)
klass.__send__(:attr_accessor, name) klass.module_eval(<<-EOC, __FILE__, __LINE__+1)
klass.module_eval(<<-EOC, __FILE__, __LINE__) attr_accessor :#{name}
def setup_#{name}(rss, current) def setup_#{name}(rss, current)
if #{name} and current.respond_to?(:#{name}=) if #{name} and current.respond_to?(:#{name}=)
current.#{name} = #{name} current.#{name} = #{name}
@ -23,8 +23,8 @@ module RSS
name = "#{RSS::TRACKBACK_PREFIX}_abouts" name = "#{RSS::TRACKBACK_PREFIX}_abouts"
klass.add_need_initialize_variable(name, "make_#{name}") klass.add_need_initialize_variable(name, "make_#{name}")
klass.add_other_element(name) klass.add_other_element(name)
klass.__send__(:attr_accessor, name) klass.module_eval(<<-EOC, __FILE__, __LINE__+1)
klass.module_eval(<<-EOC, __FILE__, __LINE__) attr_accessor :#{name}
def make_#{name} def make_#{name}
self.class::TrackBackAbouts.new(self) self.class::TrackBackAbouts.new(self)
end end

View file

@ -409,7 +409,7 @@ module RSS
next_element.do_validate = @do_validate next_element.do_validate = @do_validate
prefix = "" prefix = ""
prefix << "#{klass.required_prefix}_" if klass.required_prefix prefix << "#{klass.required_prefix}_" if klass.required_prefix
previous.__send__(:set_next_element, prefix, tag_name, next_element) previous.instance_eval {set_next_element(prefix, tag_name, next_element)}
@last_element = next_element @last_element = next_element
@proc_stack.push Proc.new { |text, tags| @proc_stack.push Proc.new { |text, tags|
p(@last_element.class) if DEBUG p(@last_element.class) if DEBUG

View file

@ -659,7 +659,7 @@ EOC
if parent.respond_to?(plural_name) if parent.respond_to?(plural_name)
target = parent.__send__(plural_name) target = parent.__send__(plural_name)
__send__(plural_name).each do |elem| __send__(plural_name).each do |elem|
elem.__send__("setup_maker", target) elem.setup_maker(target)
end end
end end
end end

View file

@ -38,7 +38,7 @@ module RSS
super super
unless klass.class == Module unless klass.class == Module
klass.__send__(:include, TrackBackUtils) klass.module_eval {include TrackBackUtils}
%w(ping).each do |name| %w(ping).each do |name|
var_name = "#{TRACKBACK_PREFIX}_#{name}" var_name = "#{TRACKBACK_PREFIX}_#{name}"

View file

@ -254,7 +254,7 @@ module Mapping
def self.define_singleton_method(obj, name, &block) def self.define_singleton_method(obj, name, &block)
sclass = (class << obj; self; end) sclass = (class << obj; self; end)
sclass.__send__(:define_method, name, &block) sclass.class_eval {define_method(name, &block)}
end end
def self.get_attribute(obj, attr_name) def self.get_attribute(obj, attr_name)

View file

@ -26,13 +26,14 @@ class Driver
if RUBY_VERSION >= "1.7.0" if RUBY_VERSION >= "1.7.0"
def __attr_proxy(symbol, assignable = false) def __attr_proxy(symbol, assignable = false)
name = symbol.to_s name = symbol.to_s
self.__send__(:define_method, name, proc { define_method(name) {
@proxy.__send__(name) @proxy.__send__(name)
}) }
if assignable if assignable
self.__send__(:define_method, name + '=', proc { |rhs| aname = name + '='
@proxy.__send__(name + '=', rhs) define_method(aname) { |rhs|
}) @proxy.__send__(aname, rhs)
}
end end
end end
else else

View file

@ -159,13 +159,14 @@ class WSDLDriver
if RUBY_VERSION >= "1.7.0" if RUBY_VERSION >= "1.7.0"
def __attr_proxy(symbol, assignable = false) def __attr_proxy(symbol, assignable = false)
name = symbol.to_s name = symbol.to_s
self.__send__(:define_method, name, proc { define_method(name) {
@servant.__send__(name) @servant.__send__(name)
}) }
if assignable if assignable
self.__send__(:define_method, name + '=', proc { |rhs| aname = name + '='
@servant.__send__(name + '=', rhs) define_method(aname) { |rhs|
}) @servant.__send__(aname, rhs)
}
end end
end end
else else

View file

@ -18,10 +18,11 @@ class Attribute < Info
if RUBY_VERSION > "1.7.0" if RUBY_VERSION > "1.7.0"
def attr_reader_ref(symbol) def attr_reader_ref(symbol)
name = symbol.to_s name = symbol.to_s
self.__send__(:define_method, name, proc { iv = "@#{name}"
instance_variable_get("@#{name}") || define_method(name) {
instance_variable_get(iv) ||
(refelement ? refelement.__send__(name) : nil) (refelement ? refelement.__send__(name) : nil)
}) }
end end
else else
def attr_reader_ref(symbol) def attr_reader_ref(symbol)

View file

@ -18,10 +18,11 @@ class Element < Info
if RUBY_VERSION > "1.7.0" if RUBY_VERSION > "1.7.0"
def attr_reader_ref(symbol) def attr_reader_ref(symbol)
name = symbol.to_s name = symbol.to_s
self.__send__(:define_method, name, proc { iv = "@#{name}"
instance_variable_get("@#{name}") || define_method(name) {
instance_variable_get(iv) ||
(refelement ? refelement.__send__(name) : nil) (refelement ? refelement.__send__(name) : nil)
}) }
end end
else else
def attr_reader_ref(symbol) def attr_reader_ref(symbol)