diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2008-04-20 17:52:21 -0700 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2008-04-20 19:56:01 -0700 |
commit | 549c81db4a9ca941ea65ae2edafb0f34784f12f2 (patch) | |
tree | 79de15ba2ae898be4f335e9180697f9fe2da4dfa /activesupport/lib/active_support/core_ext/string | |
parent | 2b69840e5efba885c8ec6281d5b8a56fcabff283 (diff) | |
download | rails-549c81db4a9ca941ea65ae2edafb0f34784f12f2.tar.gz rails-549c81db4a9ca941ea65ae2edafb0f34784f12f2.tar.bz2 rails-549c81db4a9ca941ea65ae2edafb0f34784f12f2.zip |
Ruby 1.8.7 compat: String#start_with? and #end_with?
Diffstat (limited to 'activesupport/lib/active_support/core_ext/string')
-rw-r--r-- | activesupport/lib/active_support/core_ext/string/iterators.rb | 4 | ||||
-rw-r--r-- | activesupport/lib/active_support/core_ext/string/starts_ends_with.rb | 16 |
2 files changed, 16 insertions, 4 deletions
diff --git a/activesupport/lib/active_support/core_ext/string/iterators.rb b/activesupport/lib/active_support/core_ext/string/iterators.rb index 73114d9d5f..66a08a5cd0 100644 --- a/activesupport/lib/active_support/core_ext/string/iterators.rb +++ b/activesupport/lib/active_support/core_ext/string/iterators.rb @@ -5,6 +5,10 @@ module ActiveSupport #:nodoc: module String #:nodoc: # Custom string iterators module Iterators + def self.append_features(base) + super unless '1.9'.respond_to?(:each_char) + end + # Yields a single-character string for each character in the string. # When $KCODE = 'UTF8', multi-byte characters are yielded appropriately. def each_char diff --git a/activesupport/lib/active_support/core_ext/string/starts_ends_with.rb b/activesupport/lib/active_support/core_ext/string/starts_ends_with.rb index 3960669798..09f9a188b5 100644 --- a/activesupport/lib/active_support/core_ext/string/starts_ends_with.rb +++ b/activesupport/lib/active_support/core_ext/string/starts_ends_with.rb @@ -3,10 +3,18 @@ module ActiveSupport #:nodoc: module String #:nodoc: # Additional string tests. module StartsEndsWith - def self.included(base) - base.class_eval do - alias_method :start_with?, :starts_with? - alias_method :end_with?, :ends_with? + def self.append_features(base) + if '1.8.7 and up'.respond_to?(:start_with?) + base.class_eval do + alias_method :starts_with?, :start_with? + alias_method :ends_with?, :end_with? + end + else + super + base.class_eval do + alias_method :start_with?, :starts_with? + alias_method :end_with?, :ends_with? + end end end |