kazu
761dd9a778
lib/delegate.rb: Specify frozen_string_literal: true.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-06 02:05:35 +00:00
hsbt
22de22b292
* lib/delegate.rb: Added missing spaces and Removed needless spaces.
...
[fix GH-1454][ci skip] Patch by @bogdanvlviv
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56343 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-10-05 02:36:28 +00:00
naruse
3e92b635fb
Add frozen_string_literal: false for all files
...
When you change this to true, you may need to add more tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 05:07:31 +00:00
zzak
0a4129cb7a
* lib/delegate.rb: Remove backtrace cleaning for delegated methods
...
This patch was provided by Rafael França and greatly improves
performance when an exception is raised. [Bug #11461 ]
Before:
Calculating -------------------------------------
default 86.209k i/100ms
default raising 2.209k i/100ms
-------------------------------------------------
default 1.953M (±11.0%) i/s - 9.655M
default raising 21.826k (±13.5%) i/s - 108.241k
After:
Calculating -------------------------------------
default 72.211k i/100ms
default raising 34.288k i/100ms
-------------------------------------------------
default 2.013M (±18.7%) i/s - 9.460M
default raising 623.950k (± 9.7%) i/s - 3.120M
Benchmark:
require 'delegate'
require 'benchmark/ips'
class Foo
def name
'foo'
end
def bla
raise
end
end
class Bar < DelegateClass(Foo)
end
bar = Bar.new(Foo.new)
Benchmark.ips do |b|
b.report('default') { bar.name }
b.report('default raising') { bar.bla rescue nil }
end
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51806 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-09 02:12:52 +00:00
eregon
3f2d575f8c
* lib/delegate.rb: [DOC] Update SimpleDelegator example. [ci skip]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50878 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-13 19:17:19 +00:00
hsbt
bd29cec6bb
* lib/delegate.rb: fix a typo.
...
[fix GH-881][ci skip] Patch by @Zorbash
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50370 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-23 01:01:44 +00:00
hsbt
6d6bd26270
* lib/delegate.rb: split executable code into sample directory.
...
* sample/delegate.rb: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-26 17:11:56 +00:00
zzak
cfe2cbda54
* lib/delegate.rb: [DOC] Document raise in Delegator class
...
Patch by @lucasmazza. [Fixes GH-621]
https://github.com/ruby/ruby/pull/621
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46264 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-30 18:52:30 +00:00
ayumin
2ff10784e4
* lib/delegate.rb: Fix example of using delegator.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45882 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-08 19:02:36 +00:00
nobu
bcaec55695
delegate.rb: keep special methods
...
* lib/delegate.rb (Delegator): keep source information methods
which start and end with '__'. [ruby-core:58572] [Bug #9155 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-17 11:05:03 +00:00
nobu
fc4de12302
delegate.rb: ignore unset target
...
* lib/delegate.rb (Delegator#method_missing): ignore the target if not
set, and delegate to global methods. [ruby-core:58572] [Bug #9155 ]
* lib/delegate.rb (Delegator#respond_to_missing): ditto.
* lib/delegate.rb (SimpleDelegator#__getobj__): yield and return if
not delegated but a block is given, like as Hash#fetch.
* lib/delegate.rb (DelegateClass#__getobj__): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-04 03:47:57 +00:00
nobu
bb6607404a
delegate.rb: check if target is set
...
* lib/delegate.rb (SimpleDelegator#__getobj__): target object must be set.
* lib/delegate.rb (DelegateClass#__getobj__): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43759 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-21 09:47:31 +00:00
nobu
594eec5b7d
delegate.rb: try private methods after the target
...
* lib/delegate.rb (Delegator#method_missing): try private methods defined in
Kernel after the target. [Fixes GH-449]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43752 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-21 07:33:01 +00:00
nobu
a9a6c103e5
delegate.rb: refix r43682
...
* lib/delegate.rb (Delegator#send): separate from method_missing so
that super calls proper method.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43727 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-19 16:27:40 +00:00
nobu
ca5739979d
delegate.rb: get rid of global function interference
...
* lib/delegate.rb (Delegator#send): override to get rid of global function interference.
[Fixes GH-449]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43682 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-15 08:07:39 +00:00
zzak
0357488b43
* lib/delegate.rb: Add example for __setobj__ and __getobj__
...
[Bug #8615 ] Patch by Caleb Thompson
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-10 15:50:23 +00:00
drbrain
1d7798dc75
* lib/delegate.rb: Added documentation for Delegator#!. Patch by
...
Zachary Scott. [ruby-trunk - Feature #6534 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-08 22:46:49 +00:00
naruse
6e56d645f0
* lib/delegate.rb (Delegator#methods): Kernel#methods receives
...
zero or one argument. [ruby-core:37118] [Bug #4882 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33939 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-04 03:05:03 +00:00
drbrain
cfb37052cb
* lib/delegate.rb: Move file-level documentation to the appropriate
...
classes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32713 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-27 19:53:44 +00:00
nobu
d371e3583e
* lib: revert r31635-r31638 and untabify with expand(1).
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-19 00:07:25 +00:00
drbrain
7bbf2f3085
* lib: Convert tabs to spaces for ruby files per
...
http://redmine.ruby-lang.org/projects/ruby/wiki/DeveloperHowto#coding-style
Patch by Steve Klabnik [Ruby 1.9 - Bug #4730 ]
Patch by Jason Dew [Ruby 1.9 - Feature #4718 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31635 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-18 21:19:18 +00:00
marcandre
6233ed4dcd
* lib/delegate.rb: Forward #trust, #untrust, #taint and #untaint
...
to both the delegator and __getobj__ [ruby-core:26138]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28376 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-22 04:23:59 +00:00
marcandre
0486db01fd
* lib/delegate.rb: Delegate !=, eql? and hash [ruby-core:26139]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28309 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-12 19:25:03 +00:00
marcandre
89efbfe0fa
* lib/delegate: Delegator: combine (public|protected) methods with
...
those of the delegated object. [ruby-core:27224]
DelegateClass: combine (public|protected) instance methods
with those of the delegated superclass.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28099 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-30 16:43:52 +00:00
naruse
e707e05fe8
Fix :nodoc: definition. [ruby-dev:40949]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-10 22:09:09 +00:00
matz
a7926befe0
* object.c (rb_obj_clone): call initialize_clone hook method to
...
call initialize_copy.
* object.c (rb_obj_dup): call initialize_dup hook.
* lib/delegate.rb (Delegator#initialize_clone): use new hook to
implement deep copy. [ruby-dev:40242]
* lib/delegate.rb (Delegator#initialize_dup): ditto.
* test/test_delegate.rb (TestDelegateClass#test_copy_frozen): add
a test to ensure #clone copies frozen status.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26620 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-08 07:43:54 +00:00
nobu
a6569ad637
* lib/delegate.rb (Delegator#method_missing),
...
(Delegator.delegating_block): don't hide backtrace from
__getobj__ and reduced exception messages when $DEBUG.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26592 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-06 03:02:40 +00:00
nobu
7873c05684
* lib/delegate.rb (Delegator): include copy of Kernel.
...
[ruby-dev:40314]
* lib/delegate.rb (Delegator#{dup,clone}): class of copy should be
Delegator. [ruby-dev:40313]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26580 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-05 07:38:10 +00:00
nobu
10e8419da6
* lib/delegate.rb (Delegator): now inherits BasicObject.
...
[ruby-dev:39154], [Bug #2679 ], [ruby-dev:40242]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26566 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-03 23:15:55 +00:00
nobu
bafb881c1f
* lib/delegate.rb (Delegator#marshal_dump): exclude
...
delegator-specific instance variables.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26539 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-02 02:14:00 +00:00
matz
d9e84f2327
* lib/delegate.rb (Delegator#initialize_copy): use initialize_copy
...
instead of overriding clone/dup. [ruby-dev:40221]
it now always clones the target, it might cause incompatibility.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26462 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-28 16:47:21 +00:00
marcandre
92ab16fac6
* lib/delegate.rb (marshal_dump/load): Provide forward compatibility [ruby-core:24211]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26195 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-29 01:56:55 +00:00
marcandre
ab2a02348b
* lib/delegate.rb (marshal_dump/load): dump & load instance variables by default [ruby-core:24211]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-24 03:08:15 +00:00
matz
51f033f853
* object.c (rb_obj_cmp): defines Object#<=>. [ruby-core:24063]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-24 16:48:05 +00:00
matz
eccb700286
* vm_method.c (basic_obj_respond_to): call #respond_to_missing?
...
always with two arguments. [ruby-core:26090]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25381 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-17 05:34:51 +00:00
matz
c02e47c4e0
* lib/delegate.rb (Delegator#respond_to_missing): warn only when
...
specified method is a private. [ruby-dev:39498]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-17 04:22:58 +00:00
marcandre
b73be705db
* lib/delegate: rdoc typo
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-16 19:20:35 +00:00
matz
78fea69776
* lib/delegate.rb (Delegator#method_missing): remove backtrace
...
lines _until_ `method_missing'.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25375 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-16 11:20:06 +00:00
matz
749b3aa794
* lib/delegate.rb (Delegator#freeze): #freeze should freeze self
...
and the target at once. [ruby-core:26118]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-16 11:11:00 +00:00
matz
fbf15be35f
* lib/delegate.rb (Delegator#respond_to_missing): warn if optional
...
include_private argument is not false. Delegator does (and
should) not forward private methods. [ruby-core:26080]
* lib/delegate.rb (Delegator#respond_to_missing): instead of
redefining #respond_to?, use #respond_to_missing?.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-16 11:04:15 +00:00
matz
e1797bc7dd
* lib/delegate.rb (Delegator::public_api): take snapshot of
...
public method at the beginning time.
* lib/delegate.rb (SimpleDelegator#initialize): use
Delegator.public_api since public_method might be added after
initialization. [ruby-dev:39383]
* lib/delegate.rb (DelegateClass): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-06 13:07:12 +00:00
matz
eadc3604c0
* lib/delegate.rb (Delegator#method_missing): __FILE__ may contain
...
multi-byte characters. a patch from Kenta Murata in [ruby-dev:39066].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24531 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-13 15:21:32 +00:00
nobu
287a34ae0d
* {ext,lib,test}/**/*.rb: removed trailing spaces.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-06 03:56:38 +00:00
matz
504abcc00f
* lib/delegate.rb (Delegator.delegating_block): should not refer
...
DelegateClass specific @delegate_dc_obj. a patch from Erik
Hollensbe in [ruby-core:19671].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20169 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-10 01:52:46 +00:00
matz
7a0acc7eee
* lib/delegate.rb (DelegateClass): restored 1.8 behavior for
...
DelegateClass as well. [ruby-dev:36739]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19795 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-15 14:12:15 +00:00
matz
f9c35bce1b
* lib/delegate.rb (Delegator): simplified and restored 1.8
...
behavior. [ruby-dev:35986]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19786 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-14 14:21:25 +00:00
matz
e6c1752137
* lib/rdoc.rb: massive spelling correction patch from Evan Farrar
...
<evanfarrar at gmail.com> in [ruby-doc:1382] applied.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-04 09:37:38 +00:00
knu
c147806901
* lib/delegate.rb (Delegator::MethodDelegation#respond_to):
...
respond_to? should now take optional second argument; submitted
by Jeremy Kemper <jeremy at bitsweat.net> in [ruby-core:17045].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16751 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-02 07:29:03 +00:00
nobu
23757bce57
* lib/delegate.rb (DelegateClass): use define_method instead of
...
module_eval to improve performance. [ruby-dev:33586]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15376 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-04 12:52:08 +00:00
usa
00f34f9274
* lib/delegate.rb (Delegator.preserved, DelegateClass.methods): extend
...
shouldn't be delegated. [ruby-dev:32987], etc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-04 05:01:00 +00:00