Permalink
Browse files

AS guide: documents String#(start|end)_with?

  • Loading branch information...
fxn committed Aug 23, 2009
1 parent 8458abb commit f23fc5861fbc32bbe467f22ca4211f332f570ca6
Showing with 25 additions and 0 deletions.
  1. +25 −0 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+

0 comments on commit f23fc58

Please sign in to comment.