Zoeken…


Opmerkingen

ActiveSupport is een juweel van algemene tools die door de rest van het Rails-framework worden gebruikt.

Een van de belangrijkste manieren waarop het deze tools biedt, is door Ruby's native types te monitoren. Deze worden Core Extensions genoemd .

Core Extensions: String Access

String # bij

Retourneert een substring van een stringobject. Dezelfde interface als 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 # uit

Retourneert een substring van de gegeven positie naar het einde van de string.

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

String # om

Retourneert een substring vanaf het begin van de tekenreeks naar de opgegeven positie.
Als de positie negatief is, wordt deze geteld vanaf het einde van de string.

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

from en to kunnen gelijktijdig worden gebruikt.

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

String # eerste

Retourneert het eerste teken of een bepaald aantal tekens tot de lengte van de tekenreeks.

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

String # laatste

Retourneert het laatste teken, of een bepaald aantal tekens vanaf het einde van de reeks die achteruit telt.

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

Core Extensions: String naar datum / tijd conversie

String # TO_TIME

Converteert een tekenreeks naar een tijdwaarde. De form kan zijn :utc of :local , standaard ingesteld op :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

Converteert een tekenreeks naar een datumwaarde.

"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

Converteert een tekenreeks naar een DateTime-waarde.

"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 Extensions: String Exclusion

String # uitsluiten?

Het omgekeerde van String#include?

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

Core Extensions: Stringfilters

String # squish

Retourneert een versie van de opgegeven tekenreeks zonder voorloop- of volgspaties en combineert alle opeenvolgende witruimten in het interieur tot enkele spaties. Destructieve versie squish! werkt rechtstreeks op de stringinstantie.

Verwerkt zowel ASCII als Unicode witruimte.

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

String # verwijderen

Retourneert een nieuwe string met alle exemplaren van de patronen verwijderd. Destructieve versie remove! werkt direct op de gegeven string.

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

String # truncate

Retourneert een kopie van een gegeven tekenreeks die op een bepaalde lengte is afgekapt als de tekenreeks langer is dan de lengte.

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

Geef een string of regexp :separator om af te kappen bij een natuurlijke pauze

'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

Retourneert een afgekorte tekenreeks na een bepaald aantal woorden.

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

Geef een tekenreeks of regexp door om een ander scheidingsteken voor woorden op te geven

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

De laatste tekens worden vervangen door de :omission string (standaard ingesteld op "...")

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

String # strip_heredoc

Strips inspringen in heredocs. Zoekt naar de minst ingesprongen niet-lege regel en verwijdert die hoeveelheid voorloopruimte.

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

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

de gebruiker zou het zien

This command does such and such.

Supported options are:
-h         This message
...

Core Extensions: String-verbuiging

String # meervoudig maken

Retourneert de meervoudsvorm van de tekenreeks. Neemt optioneel een count en retourneert een enkelvoud als count == 1 . Accepteert ook een locale parameter voor taalspecifieke pluralisatie.

'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

Retourneert de enkelvoudige vorm van de tekenreeks. Accepteert een optionele 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 # constantize

Probeert een aangegeven constante te vinden met de naam die is opgegeven in de tekenreeks. Het roept een NameError als de naam niet in CamelCase staat of niet is geïnitialiseerd.

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

String # safe_constantize

Voert een constantize maar retourneert nil plaats van NameError verhogen.

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

String # kameleren

Converteert standaard strings naar UpperCamelCase, als :lower wordt gegeven als param in plaats daarvan wordt geconverteerd naar lowerCamelCase.

alias: camelcase

Opmerking: converteert ook / naar :: wat handig is voor het converteren van paden naar naamruimten.

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

String # titleize

Hoofdletters in alle woorden en vervangt enkele tekens in de tekenreeks om een mooiere titel te maken.

alias: titlecase

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

String # underscore

Maakt een onderstreepte, kleine vorm van de uitdrukking in de tekenreeks. Het omgekeerde van camelize .

Opmerking: underscore verandert ook :: in / om naamruimten naar paden te converteren.

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

String # dasherize

Vervangt onderstrepingstekens door streepjes in de tekenreeks.

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

String # demodulize

Hiermee verwijdert u het modulegedeelte uit de constante uitdrukking in de tekenreeks.

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

String # deconstantize

Hiermee verwijdert u het meest rechtse segment uit de constante uitdrukking in de tekenreeks.

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

String # parametriseren

Vervangt speciale tekens in een tekenreeks zodat deze kan worden gebruikt als onderdeel van een 'mooie' URL.

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

Behoud het hoofdlettergebruik van de tekens in een tekenreeks met het argument :preserve_case .

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

Een veel voorkomende use-case voor parameterize is het overschrijven van de to_param methode van een ActiveRecord-model om meer beschrijvende url-naaktslakken te ondersteunen.

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

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

String # tableize

Creëert de naam van een tabel zoals Rails doet voor modellen naar tabelnamen. Pluraliseert het laatste woord in de string.

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

String # classificeren

Retourneert een klassennaamreeks uit een meervoudige tabelnaam zoals Rails doet voor tabelnamen naar modellen.

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

String # Humanize

Hoofdlettergebruik het eerste woord, verandert onderstrepingstekens in spaties en verwijdert een achterblijvende _id indien aanwezig.

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

String # upcase_first

Converteert alleen het eerste teken naar hoofdletters.

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

String # foreign_key

Creëert een buitenlandse sleutelnaam uit een klassennaam. Geef false parameter door om het toevoegen van _ tussen naam en id te schakelen.

'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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow