diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2007-05-28 23:33:54 +0000 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2007-05-28 23:33:54 +0000 |
commit | 428d1f67dab05b84330c7fc66bff0202aee91bd8 (patch) | |
tree | a5f38dbd990030e29d6891d7a3b23fc37275e705 /activesupport/lib/active_support/multibyte | |
parent | d8b67f7fe1ff281a7ba00bd187fe938a12bb5566 (diff) | |
download | rails-428d1f67dab05b84330c7fc66bff0202aee91bd8.tar.gz rails-428d1f67dab05b84330c7fc66bff0202aee91bd8.tar.bz2 rails-428d1f67dab05b84330c7fc66bff0202aee91bd8.zip |
Multibyte strings respond_to the String methods they proxy so they can be duck-typed. Closes #6549.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6882 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activesupport/lib/active_support/multibyte')
-rw-r--r-- | activesupport/lib/active_support/multibyte/chars.rb | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/activesupport/lib/active_support/multibyte/chars.rb b/activesupport/lib/active_support/multibyte/chars.rb index 901815092d..65114415eb 100644 --- a/activesupport/lib/active_support/multibyte/chars.rb +++ b/activesupport/lib/active_support/multibyte/chars.rb @@ -41,6 +41,12 @@ module ActiveSupport::Multibyte #:nodoc: @string end + # Make duck-typing with String possible + def respond_to?(method) + super || @string.respond_to?(method) || handler.respond_to?(method) || + (method.to_s =~ /(.*)!/ && handler.respond_to?($1)) || false + end + # Create a new Chars instance. def initialize(str) @string = str.respond_to?(:string) ? str.string : str |