Suche…


Bemerkungen

ActiveSupport ist ein Hilfsmittel aus Universalwerkzeugen, die vom Rest des Rails-Frameworks verwendet werden.

Eine der primären Methoden, mit denen diese Tools bereitgestellt werden, besteht darin, die systemeigenen Typen von Ruby zu überwachen. Diese werden als Core-Erweiterungen bezeichnet .

Core-Erweiterungen: String-Zugriff

String # at

Gibt einen Teilstring eines String-Objekts zurück. Gleiche Schnittstelle wie 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 # von

Gibt eine Teilzeichenfolge von der angegebenen Position bis zum Ende der Zeichenfolge zurück.

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

Zeichenfolge # bis

Gibt einen Teilstring vom Anfang des Strings an die angegebene Position zurück.
Wenn die Position negativ ist, wird sie vom Ende der Zeichenfolge gezählt.

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

from und to kann im Tandem verwendet werden.

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

String # zuerst

Gibt das erste Zeichen oder eine bestimmte Anzahl von Zeichen bis zur Länge der Zeichenfolge zurück.

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

String # last

Gibt das letzte Zeichen oder eine bestimmte Anzahl von Zeichen ab dem Ende der Zeichenfolge zurück und zählt rückwärts.

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

Core-Erweiterungen: Konvertierung von Zeichenfolgen in Datum / Uhrzeit

String # to_time

Konvertiert eine Zeichenfolge in einen Zeitwert. Der form kann entweder :utc oder :local , der :utc :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

Konvertiert eine Zeichenfolge in einen Datumswert.

"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

Zeichenfolge # bis_datetime

Konvertiert eine Zeichenfolge in einen DateTime-Wert.

"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

Core-Erweiterungen: Zeichenkettenausschluss

Zeichenfolge # ausschließen?

Die Umkehrung von String#include?

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

Core-Erweiterungen: String-Filter

String # squish

Gibt eine Version der angegebenen Zeichenfolge ohne führenden oder nachgestellten Leerzeichen zurück und kombiniert alle aufeinander folgenden Leerzeichen im Inneren zu einzelnen Leerzeichen. Zerstörerische Version squish! arbeitet direkt auf der String-Instanz.

Verarbeitet sowohl ASCII- als auch Unicode-Leerzeichen.

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

Zeichenfolge # entfernen

Gibt eine neue Zeichenfolge zurück, wobei alle Vorkommen der Muster entfernt wurden. Zerstörende Version remove! arbeitet direkt auf der angegebenen Zeichenkette.

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

String # wird abgeschnitten

Gibt eine Kopie einer angegebenen Zeichenfolge zurück, die bei einer angegebenen Länge abgeschnitten ist, wenn die Zeichenfolge länger als die Länge ist.

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

Übergeben Sie einen String oder ein reguläres :separator um bei einem natürlichen Bruch abzuschneiden

'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

Gibt eine Zeichenfolge zurück, die nach einer bestimmten Anzahl von Wörtern abgeschnitten wurde.

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

Übergeben Sie eine Zeichenfolge oder einen regulären Ausdruck, um ein anderes Trennzeichen für Wörter anzugeben

'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..."

Die letzten Zeichen werden durch die Zeichenfolge für die :omission (Standardeinstellung "...").

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

Zeichenfolge # strip_heredoc

Streifen Einrückung in Heredocs. Sucht nach der am wenigsten eingerückten, nicht leeren Zeile und entfernt diese Menge an führendem Leerzeichen.

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

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

Der Benutzer würde sehen

This command does such and such.

Supported options are:
-h         This message
...

Core-Erweiterungen: String Flexion

String # pluralize

Gibt die Pluralform der Zeichenfolge zurück. Nimmt optional einen count Parameter an und gibt die Singularform zurück, wenn count == 1 . Akzeptiert auch einen locale Parameter für die sprachspezifische Pluralisierung.

'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 # singularize

Gibt die Singularform der Zeichenfolge zurück. Akzeptiert einen optionalen locale Parameter.

'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 # konstante

Versucht, eine deklarierte Konstante mit dem in der Zeichenfolge angegebenen Namen zu finden. Ein NameError wenn der Name nicht in CamelCase enthalten ist oder nicht initialisiert ist.

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

String # safe_constantize

Führt eine constantize , gibt jedoch nil anstatt NameError .

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

Zeichenfolge # camelize

Konvertiert Strings standardmäßig in UpperCamelCase, wenn :lower als Parameter angegeben wird, stattdessen in lowerCamelCase.

Alias: camelcase

Hinweis: konvertiert auch / in :: was zum Konvertieren von Pfaden in Namespaces nützlich ist.

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

String # titleize

Schreibt alle Wörter groß und ersetzt einige Zeichen in der Zeichenfolge, um einen schöneren Titel zu erzeugen.

Alias: titlecase

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

String # unterstreichen

Erzeugt aus dem Ausdruck in der Zeichenfolge ein unterstrichenes, kleingeschriebenes Formular. Die Umkehrung von camelize .

Hinweis: underscore ändern auch :: in / , um Namespaces in Pfade umzuwandeln.

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

String # dasherize

Ersetzt Unterstriche durch Striche in der Zeichenfolge.

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

String # demodulize

Entfernt den Modulteil aus dem konstanten Ausdruck in der Zeichenfolge.

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

String # dekonstantisieren

Entfernt das äußerste rechte Segment aus dem konstanten Ausdruck in der Zeichenfolge.

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

String # parametrisieren

Ersetzt Sonderzeichen in einer Zeichenfolge, sodass sie als Teil einer 'hübschen' URL verwendet werden kann.

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

Behalten Sie die Groß- und Kleinschreibung der Zeichen in einer Zeichenfolge mit dem Argument :preserve_case .

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

Ein sehr häufiger Anwendungsfall für die parameterize ist das Überschreiben der to_param Methode eines ActiveRecord-Modells, um mehr beschreibende URL-Slugs zu unterstützen.

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

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

String # tableize

Erzeugt den Namen einer Tabelle, wie es Rails für Modelle mit Tabellennamen tut. Pluralisiert das letzte Wort in der Zeichenfolge.

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

String # klassifizieren

Gibt eine Klassennamenzeichenfolge aus einem Mehrfach-Tabellennamen zurück, wie es Rails für Tabellennamen für Modelle tut.

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

String # humanize

Schreibt das erste Wort in _id , verwandelt Unterstriche in Leerzeichen und _id ggf. eine nachgestellte _id .

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

String # upcase_first

Wandelt nur das erste Zeichen in Großbuchstaben um.

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

String # foreign_key

Erstellt einen Fremdschlüsselnamen aus einem Klassennamen. Übergeben Sie false param, um das Hinzufügen von _ zwischen Name und id zu deaktivieren.

'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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow