Ricerca…


Osservazioni

ActiveSupport è una utility gemma di strumenti generici utilizzati dal resto del framework Rails.

Uno dei principali modi in cui fornisce questi strumenti consiste nel tenere traccia dei tipi nativi di Ruby. Questi sono indicati come le estensioni del nucleo .

Estensioni principali: accesso con stringhe

String # a

Restituisce una sottostringa di un oggetto stringa. Stessa interfaccia di String#[] .

str = "hello"
str.at(0)      # => "h"
str.at(1..3)   # => "ell"
str.at(-2)     # => "l"
str.at(-2..-1) # => "lo"
str.at(5)      # => nil
str.at(5..-1)  # => ""

String # da

Restituisce una sottostringa dalla posizione data alla fine della stringa.

str = "hello"
str.from(0)  # => "hello"
str.from(3)  # => "lo"
str.from(-2) # => "lo"

String # per

Restituisce una sottostringa dall'inizio della stringa alla posizione specificata.
Se la posizione è negativa, viene contata dalla fine della stringa.

str = "hello"
str.to(0)  # => "h"
str.to(3)  # => "hell"
str.to(-2) # => "hell"

from e to poter essere usato in tandem.

str = "hello"
str.from(0).to(-1) # => "hello"
str.from(1).to(-2) # => "ell"

String # primo

Restituisce il primo carattere o un determinato numero di caratteri fino alla lunghezza della stringa.

str = "hello"
str.first    # => "h"
str.first(1) # => "h"
str.first(2) # => "he"
str.first(0) # => ""
str.first(6) # => "hello"

String # ultima

Restituisce l'ultimo carattere o un determinato numero di caratteri dalla fine della stringa contando all'indietro.

str = "hello"
str.last    # => "o"
str.last(1) # => "o"
str.last(2) # => "lo"
str.last(0) # => ""
str.last(6) # => "hello"

Estensioni principali: conversione da stringa a data / ora

String # to_time

Converte una stringa in un valore Time. Il parametro del form può essere :utc o :local , il valore predefinito è :local .

"13-12-2012".to_time               # => 2012-12-13 00:00:00 +0100
"06:12".to_time                    # => 2012-12-13 06:12:00 +0100
"2012-12-13 06:12".to_time         # => 2012-12-13 06:12:00 +0100
"2012-12-13T06:12".to_time         # => 2012-12-13 06:12:00 +0100
"2012-12-13T06:12".to_time(:utc)   # => 2012-12-13 06:12:00 UTC
"12/13/2012".to_time               # => ArgumentError: argument out of range

String # to_date

Converte una stringa in un valore Date.

"1-1-2012".to_date   # => Sun, 01 Jan 2012
"01/01/2012".to_date # => Sun, 01 Jan 2012
"2012-12-13".to_date # => Thu, 13 Dec 2012
"12/13/2012".to_date # => ArgumentError: invalid date

String # to_datetime

Converte una stringa in un valore DateTime.

"1-1-2012".to_datetime            # => Sun, 01 Jan 2012 00:00:00 +0000
"01/01/2012 23:59:59".to_datetime # => Sun, 01 Jan 2012 23:59:59 +0000
"2012-12-13 12:50".to_datetime    # => Thu, 13 Dec 2012 12:50:00 +0000
"12/13/2012".to_datetime          # => ArgumentError: invalid date

Estensioni principali: esclusione dalla stringa

String # escludono?

L'inverso di String#include?

"hello".exclude? "lo" # => false
"hello".exclude? "ol" # => true
"hello".exclude? ?h   # => false

Estensioni principali: filtri stringa

String # squish

Restituisce una versione della stringa specificata senza spazi vuoti iniziali o finali e combina tutti gli spazi bianchi consecutivi all'interno in spazi singoli. Squish versione distruttiva squish! opera direttamente sull'istanza della stringa.

Gestisce sia gli spazi bianchi ASCII che Unicode.

%{ Multi-line
   string }.squish                   # => "Multi-line string"
" foo   bar    \n   \t   boo".squish # => "foo bar boo"

String # remove

Restituisce una nuova stringa con tutte le occorrenze dei modelli rimossi. La versione distruttiva remove! opera direttamente sulla stringa data.

str = "foo bar test"
str.remove(" test")                 # => "foo bar"
str.remove(" test", /bar/)          # => "foo "

String # troncare

Restituisce una copia di una data stringa troncata ad una lunghezza specifica se la stringa è più lunga della lunghezza.

'Once upon a time in a world far far away'.truncate(27)
# => "Once upon a time in a wo..."

Passa una stringa o regexp :separator per troncare in una naturale interruzione

'Once upon a time in a world far far away'.truncate(27, separator: ' ')
# => "Once upon a time in a..."

'Once upon a time in a world far far away'.truncate(27, separator: /\s/)
# => "Once upon a time in a..."

String # truncate_words

Restituisce una stringa troncata dopo un determinato numero di parole.

'Once upon a time in a world far far away'.truncate_words(4)
# => "Once upon a time..."

Passa una stringa o regexp per specificare un diverso separatore di parole

'Once<br>upon<br>a<br>time<br>in<br>a<br>world'.truncate_words(5, separator: '<br>')
# => "Once<br>upon<br>a<br>time<br>in..."

Gli ultimi caratteri saranno sostituiti con :omission string (predefinito su "...")

'And they found that many people were sleeping better.'.truncate_words(5, omission: '... (continued)')
# => "And they found that many... (continued)"

String # strip_heredoc

Indentazione di strisce in heredocs. Cerca la linea non vuota meno rientrata e rimuove quella quantità di spazi bianchi iniziali.

if options[:usage]
  puts <<-USAGE.strip_heredoc
    This command does such and such.

    Supported options are:
      -h         This message
      ...
  USAGE
end

l'utente vedrebbe

This command does such and such.

Supported options are:
-h         This message
...

Core Extensions: String Inflection

String # plurale

Ritorni della forma plurale della stringa. Facoltativamente, accetta un parametro di count e restituisce una forma singolare se count == 1 . Accetta anche un parametro locale per la pluralizzazione specifica della lingua.

'post'.pluralize             # => "posts"
'octopus'.pluralize          # => "octopi"
'sheep'.pluralize            # => "sheep"
'words'.pluralize            # => "words"
'the blue mailman'.pluralize # => "the blue mailmen"
'CamelOctopus'.pluralize     # => "CamelOctopi"
'apple'.pluralize(1)         # => "apple"
'apple'.pluralize(2)         # => "apples"
'ley'.pluralize(:es)         # => "leyes"
'ley'.pluralize(1, :es)      # => "ley"

String # singolarizzare

Restituisce la forma singolare della stringa. Accetta un parametro locale opzionale.

'posts'.singularize            # => "post"
'octopi'.singularize           # => "octopus"
'sheep'.singularize            # => "sheep"
'word'.singularize             # => "word"
'the blue mailmen'.singularize # => "the blue mailman"
'CamelOctopi'.singularize      # => "CamelOctopus"
'leyes'.singularize(:es)       # => "ley"

String # constantize

Cerca di trovare una costante dichiarata con il nome specificato nella stringa. Solleva un NameError quando il nome non è in CamelCase o non è inizializzato.

'Module'.constantize  # => Module
'Class'.constantize   # => Class
'blargle'.constantize # => NameError: wrong constant name blargle

String # safe_constantize

Esegue una constantize ma restituisce nil invece di sollevare NameError .

'Module'.safe_constantize  # => Module
'Class'.safe_constantize   # => Class
'blargle'.safe_constantize # => nil

String # camelize

Converte le stringhe in UpperCamelCase per impostazione predefinita, se :lower viene dato come param converte in lowerCamelCase.

alias: camelcase

Nota: sarà anche convertire / a :: che è utile per la conversione di percorsi per gli spazi dei nomi.

'active_record'.camelize                # => "ActiveRecord"
'active_record'.camelize(:lower)        # => "activeRecord"
'active_record/errors'.camelize         # => "ActiveRecord::Errors"
'active_record/errors'.camelize(:lower) # => "activeRecord::Errors"

String # titleize

Capitalizza tutte le parole e sostituisce alcuni caratteri nella stringa per creare un titolo dall'aspetto più gradevole.

alias: titlecase

'man from the boondocks'.titleize # => "Man From The Boondocks"
'x-men: the last stand'.titleize  # => "X Men: The Last Stand"

String # sottolineano

Crea una forma in lettere minuscole sottolineata dall'espressione nella stringa. Il contrario di camelize .

Nota: il carattere di underscore cambierà anche :: in / per convertire spazi dei nomi in tracciati.

'ActiveModel'.underscore         # => "active_model"
'ActiveModel::Errors'.underscore # => "active_model/errors"

String # dasherize

Sostituisce i trattini bassi con trattini nella stringa.

'puni_puni'.dasherize # => "puni-puni"

String # demodulize

Rimuove la parte del modulo dall'espressione costante nella stringa.

'ActiveRecord::CoreExtensions::String::Inflections'.demodulize # => "Inflections"
'Inflections'.demodulize                                       # => "Inflections"
'::Inflections'.demodulize                                     # => "Inflections"
''.demodulize                                                  # => ''

String # deconstantize

Rimuove il segmento più a destra dall'espressione costante nella stringa.

'Net::HTTP'.deconstantize   # => "Net"
'::Net::HTTP'.deconstantize # => "::Net"
'String'.deconstantize      # => ""
'::String'.deconstantize    # => ""
''.deconstantize            # => ""

String # Parametrizzazione

Sostituisce caratteri speciali in una stringa in modo che possa essere utilizzato come parte di un URL "carino".

"Donald E. Knuth".parameterize # => "donald-e-knuth"

Conserva il caso dei caratteri in una stringa con l'argomento :preserve_case .

"Donald E. Knuth".parameterize(preserve_case: true) # => "Donald-E-Knuth"

Un caso d'uso molto comune per parameterize è sovrascrivere il metodo to_param di un modello ActiveRecord per supportare più slug url descrittivi.

class Person < ActiveRecord::Base
  def to_param
    "#{id}-#{name.parameterize}"
  end
end

Person.find(1).to_param # => "1-donald-e-knuth"

String # tableize

Crea il nome di una tabella come fa Rails per i modelli ai nomi delle tabelle. Pluralizza l'ultima parola nella stringa.

'RawScaledScorer'.tableize # => "raw_scaled_scorers"
'ham_and_egg'.tableize     # => "ham_and_eggs"
'fancyCategory'.tableize   # => "fancy_categories"

String # classificano

Restituisce una stringa di nome di classe da un nome di tabella plurale come Rails per i nomi di tabelle per i modelli.

'ham_and_eggs'.classify # => "HamAndEgg"
'posts'.classify        # => "Post"

String # umanizzare

_id maiuscolo la prima parola, trasforma i caratteri di sottolineatura in spazi e toglie uno _id finale se presente.

'employee_salary'.humanize              # => "Employee salary"
'author_id'.humanize                    # => "Author"
'author_id'.humanize(capitalize: false) # => "author"
'_id'.humanize                          # => "Id"

String # upcase_first

Converte solo il primo carattere in maiuscolo.

'what a Lovely Day'.upcase_first # => "What a Lovely Day"
'w'.upcase_first                 # => "W"
''.upcase_first                  # => ""

String # foreign_key

Crea un nome di chiave esterna da un nome di classe. Passa false param per disabilitare l'aggiunta di _ tra nome ed id .

'Message'.foreign_key        # => "message_id"
'Message'.foreign_key(false) # => "messageid"
'Admin::Post'.foreign_key    # => "post_id"


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow