È noto che la manipolazione delle stringhe è uno dei punti di forza dei linguaggi come Ruby e PERL. Non è quindi un caso che ActiveSupport sia particolarmente ricco di estensioni per la classe String
.
Partiamo dal modulo String::Access
che fornisce numerosi
metodi per accedere a singole porzioni di una stringa.
require '../helper' "hello".at(0)# => "h" "hello".at(4)# => "o" "hello".from(0) # => "hello" "hello".from(2) # => "llo" "hello".to(0)# => "h" "hello".to(2)# => "hel" "hello".first# => "h" "hello".first(2) # => "he" "hello".last # => "o" "hello".last(2) # => "lo"
String::Filters
introduce il metodo squish
ed il suo gemello squish!
, fenomenali per filtrare una stringa su una sola riga rimuovendo gli spazi in eccesso: ideale per normalizzare gli input in ingresso ad esempio da una form o dallo scraping di una pagina web.
String::Multibyte
, String::Iterators
e String::StartsEndsWith
attivano in Ruby 1.8.6 e precedenti il supporto alle stringhe multibyte, gli iteratori su stringa ed altre caratteristiche presenti solo in Ruby 1.8.7 o Ruby 1.9.0.
String::Inflections
offre invece una utilissima raccolta di metodi per trasformare nomi in base a diverse esigenze. Ecco alcuni esempi estremamente significativi.
require '../helper' "post".pluralize # => "posts" "octopus".pluralize # => "octopi" "posts".singularize # => "post" "octopi".singularize # => "octopus" "active_record".camelize # => "ActiveRecord" "active_record".camelize(:lower) # => "activeRecord" "man from the boondocks".titleize # => "Man From The Boondocks" "x-men: the last stand".titleize # => "X Men: The Last Stand" "employee_salary" # => "Employee salary" "author_id" # => "Author"