From f23fc5861fbc32bbe467f22ca4211f332f570ca6 Mon Sep 17 00:00:00 2001
From: Xavier Noria <fxn@hashref.com>
Date: Sun, 23 Aug 2009 15:04:05 +0200
Subject: AS guide: documents String#(start|end)_with?

---
 .../guides/source/active_support_overview.textile  | 25 ++++++++++++++++++++++
 1 file changed, 25 insertions(+)

(limited to 'railties/guides/source/active_support_overview.textile')

diff --git a/railties/guides/source/active_support_overview.textile b/railties/guides/source/active_support_overview.textile
index 06d750afc9..392e9388df 100644
--- a/railties/guides/source/active_support_overview.textile
+++ b/railties/guides/source/active_support_overview.textile
@@ -704,6 +704,31 @@ In Ruby 1.9 the <tt>%</tt> string operator supports key-based interpolation, bot
 
 Active Support adds that functionality to <tt>%</tt> in previous versions of Ruby.
 
+h4. +start_with?+ and +end_width?+
+
+Ruby 1.8.7 and up define the predicates +String#start_with?+ and +String#end_with?+:
+
+<ruby>
+"foo".start_with?("f") # => true
+"foo".start_with?("g") # => false
+"foo".start_with?("")  # => true
+
+"foo".end_with?("o")   # => true
+"foo".end_with?("p")   # => false
+"foo".end_with?("")    # => true
+</ruby>
+
+If strings do not respond to those methods Active Support emulates them, and also defines their 3rd person aliases:
+
+<ruby>
+"foo".starts_with?("f") # => true
+"foo".ends_with?("o")   # => true
+</ruby>
+
+in case you feel more confortable spelling them that way.
+
+WARNING. Active Support invokes +to_s+ on the argument, but Ruby does not. Since Active Support defines these methods only if strings do not respond to them, this corner of their behaviour depends on the interpreter that runs a given Rails application. You change the interpreter, and +start_with?(1)+ may change its return value. In consequence, it's more portable not to rely on that and pass always strings.
+
 
 h3. Extensions to +Numeric+
 
-- 
cgit v1.2.3

