diff options
author | nahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-12-22 04:41:35 +0000 |
---|---|---|
committer | nahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-12-22 04:41:35 +0000 |
commit | d77505f5785f4b92b19cc641483bad9b660bcc2f (patch) | |
tree | 8a782b9d519448060004156c73f9a431a6981d8e | |
parent | 7c69eb0ef175e8c4667456bd34255c5e2cc62699 (diff) | |
download | ruby-d77505f5785f4b92b19cc641483bad9b660bcc2f.tar.gz ruby-d77505f5785f4b92b19cc641483bad9b660bcc2f.tar.xz ruby-d77505f5785f4b92b19cc641483bad9b660bcc2f.zip |
* lib/soap/property.rb: passing block by reference.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5240 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | lib/soap/property.rb | 20 |
2 files changed, 12 insertions, 12 deletions
@@ -1,3 +1,7 @@ +Mon Dec 22 13:40:19 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org> + + * lib/soap/property.rb: passing block by reference. + Mon Dec 22 00:32:43 2003 Yukihiro Matsumoto <matz@ruby-lang.org> * ext/syck/emitter.c (syck_emitter_write): str bigger than diff --git a/lib/soap/property.rb b/lib/soap/property.rb index e0516aa41..079c294a7 100644 --- a/lib/soap/property.rb +++ b/lib/soap/property.rb @@ -35,15 +35,11 @@ class Property include Enumerable def self.load(stream) - prop = new - prop.load(stream) - prop + new.load(stream) end def self.open(filename) - File.open(filename) do |f| - load(f) - end + File.open(filename) { |f| load(f) } end # find property from $:. @@ -117,9 +113,9 @@ class Property # hook: block which will be called with 2 args, name and value def add_hook(name = nil, &hook) if name.nil? - assign_self_hook(hook) + assign_self_hook(&hook) else - assign_hook(name_to_a(name), hook) + assign_hook(name_to_a(name), &hook) end end @@ -200,7 +196,7 @@ protected @self_hook + (@hook[key] || NO_HOOK) end - def local_assign_hook(key, hook) + def local_assign_hook(key, &hook) check_lock(key) @store[key] ||= nil (@hook[key] ||= []) << hook @@ -229,13 +225,13 @@ private hook + ref.local_hook(last_key) end - def assign_hook(ary, hook) + def assign_hook(ary, &hook) ary[0..-2].inject(self) { |ref, name| ref.deref_key(to_key(name)) - }.local_assign_hook(to_key(ary.last), hook) + }.local_assign_hook(to_key(ary.last), &hook) end - def assign_self_hook(hook) + def assign_self_hook(&hook) check_lock(nil) @self_hook << hook end |