Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Ruby 1.9 compat: prefer builtin String#starts_ and ends_with? if avai…

…lable [chuyeow]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8397 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
commit 3d90733e937d11b6905ff11ce006a591ec11b4f4 1 parent 8d8b573
@jeremy jeremy authored
View
8 activesupport/lib/active_support/core_ext/integer/even_odd.rb
@@ -10,14 +10,14 @@ module EvenOdd
def multiple_of?(number)
self % number == 0
end
-
+
def even?
multiple_of? 2
- end
-
+ end if RUBY_VERSION < '1.9'
+
def odd?
!even?
- end
+ end if RUBY_VERSION < '1.9'
end
end
end
View
6 activesupport/lib/active_support/core_ext/range/conversions.rb
@@ -1,9 +1,9 @@
module ActiveSupport #:nodoc:
module CoreExtensions #:nodoc:
module Range #:nodoc:
- # Getting dates in different convenient string representations and other objects
+ # Getting ranges in different convenient string representations and other objects
module Conversions
- DATE_FORMATS = {
+ RANGE_FORMATS = {
:db => Proc.new { |start, stop| "BETWEEN '#{start.to_s(:db)}' AND '#{stop.to_s(:db)}'" }
}
@@ -15,7 +15,7 @@ def self.included(base) #:nodoc:
end
def to_formatted_s(format = :default)
- DATE_FORMATS[format] ? DATE_FORMATS[format].call(first, last) : to_default_s
+ RANGE_FORMATS[format] ? RANGE_FORMATS[format].call(first, last) : to_default_s
end
end
end
View
7 activesupport/lib/active_support/core_ext/string.rb
@@ -10,7 +10,12 @@ class String #:nodoc:
include ActiveSupport::CoreExtensions::String::Access
include ActiveSupport::CoreExtensions::String::Conversions
include ActiveSupport::CoreExtensions::String::Inflections
- include ActiveSupport::CoreExtensions::String::StartsEndsWith
+ if RUBY_VERSION < '1.9'
+ include ActiveSupport::CoreExtensions::String::StartsEndsWith
+ else
+ alias starts_with? start_with?
+ alias ends_with? end_with?
+ end
if defined? ActiveSupport::CoreExtensions::String::Iterators
include ActiveSupport::CoreExtensions::String::Iterators
end
View
7 activesupport/lib/active_support/core_ext/string/starts_ends_with.rb
@@ -3,6 +3,13 @@ module CoreExtensions #: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?
+ end
+ end
+
# Does the string start with the specified +prefix+?
def starts_with?(prefix)
prefix = prefix.to_s
View
10 activesupport/test/core_ext/string_ext_test.rb
@@ -143,15 +143,23 @@ def test_access_returns_a_real_string
assert_equal %w(hello), hash.keys
end
- def test_starts_ends_with
+ def test_starts_ends_with_alias
s = "hello"
assert s.starts_with?('h')
assert s.starts_with?('hel')
assert !s.starts_with?('el')
+ assert s.start_with?('h')
+ assert s.start_with?('hel')
+ assert !s.start_with?('el')
+
assert s.ends_with?('o')
assert s.ends_with?('lo')
assert !s.ends_with?('el')
+
+ assert s.end_with?('o')
+ assert s.end_with?('lo')
+ assert !s.end_with?('el')
end
# FIXME: Ruby 1.9
Please sign in to comment.
Something went wrong with that request. Please try again.