Sök…


Anmärkningar

ActiveSupport är en verktygspärla av allmänna verktyg som används av resten av Rails-ramverket.

Ett av de huvudsakliga sätten det tillhandahåller dessa verktyg är genom att monka av Rubys ursprungliga typer. Dessa kallas Core Extensions .

Core Extensions: String Access

String # vid

Returnerar en substring av ett strängobjekt. Samma gränssnitt som 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 # från

Returnerar en substring från den givna positionen till slutet av strängen.

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

String # för att

Returnerar en substring från början av strängen till den givna positionen.
Om positionen är negativ, räknas den från slutet av strängen.

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

from och to kan användas i tandem.

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

String # först

Returnerar det första tecknet eller ett givet antal tecken upp till strängens längd.

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

String # förra

Returnerar det sista tecknet eller ett givet antal tecken från slutet av strängen som räknar bakåt.

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

Core Extensions: String to Date / Time Conversion

String # TO_TIME

Konverterar en sträng till ett tidsvärde. Den form parameter kan vara antingen :utc eller :local , standard :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

Konverterar en sträng till ett datumvärde.

"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

Konverterar en sträng till ett DateTime-värde.

"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 # utesluta?

Det omvända av String#include?

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

Kärntillägg: Strängfilter

String # squish

Returnerar en version av den givna strängen utan att leda eller släpa mellanrummet och kombinerar allt på varandra följande blanksteg i det inre till enstaka utrymmen. Destructive version squish! fungerar direkt på stränginstansen.

Hanterar både ASCII och Unicode-blanksteg.

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

String # Ta bort

Returnerar en ny sträng med alla förekomster av de mönster som tas bort. Destruktiv version remove! fungerar direkt på den givna strängen.

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

String # truncate

Returnerar en kopia av en given sträng som trunkeras i en given längd om strängen är längre än längden.

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

Passera en sträng eller regexp :separator att trunka vid en naturlig paus

'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

Returnerar en sträng som trunkeras efter ett visst antal ord.

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

Passera en sträng eller regex för att ange en annan ordskillare

'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 sista tecknen kommer att ersättas med :omission (som standard "...")

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

String # strip_heredoc

Remsa intryck i heredocs. Letar efter den minst indragna icke-tomma linjen och tar bort den mängden ledande vitrum.

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

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

användaren skulle se

This command does such and such.

Supported options are:
-h         This message
...

Core Extensions: String Inflection

String # pluralize

Returnerar flertalsform av strängen. Eventuellt tar en count parameter och returnerar singular i om count == 1 . Accepterar också en locale för språkspecifik pluralisering.

'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

Returnerar strängens singularform. Accepterar en valfri 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

Försöker hitta en deklarerad konstant med det namn som anges i strängen. Det höjer en NameError när namnet inte finns i CamelCase eller inte initialiseras.

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

String # safe_constantize

Utför en constantize men returnerar nil istället för att höja NameError .

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

String # camelize

Konverterar strängar till UpperCamelCase som standard, om :lower ges som paramkonverterar till lägreCamelCase istället.

alias: camelcase

Obs: kommer också att konvertera / till :: vilket är användbart för att konvertera sökvägar till namnutrymmen.

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

String # titleize

Skärmer alla orden och ersätter vissa tecken i strängen för att skapa en snyggare titel.

alias: titlecase

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

String # streck

Skapar en understrukad, liten form från uttrycket i strängen. Det omvända av camelize .

Obs: underscore kommer också att ändra :: till / att konvertera namnutrymmen till banor.

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

String # dasherize

Ersätter understreck med streck i strängen.

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

String # demodulize

Tar bort moduldelen från det ständiga uttrycket i strängen.

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

String # deconstantize

Tar bort det högsta segmentet från det ständiga uttrycket i strängen.

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

String # parameter

Ersätter specialtecken i en sträng så att den kan användas som en del av en "vacker" URL.

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

Bevara karaktärerna för tecknen i en sträng med :preserve_case argumentet.

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

Ett mycket vanligt användningsfall för parameterize är att åsidosätta to_param metoden i en ActiveRecord-modell för att stödja mer beskrivande url-sniglar.

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

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

String # tableize

Skapar namnet på en tabell som Rails gör för modeller till tabellnamn. Pluraliserar det sista ordet i strängen.

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

String # klassificera

Returnerar en klassnamnsträng från ett flertalsnamn som Rails gör för tabellnamn till modeller.

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

String # Humanisera

Aktiverar det första ordet, varv streck i utrymmen, och remsorna en bakre _id om närvarande.

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

String # upcase_first

Konverterar bara det första tecknet till versaler.

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

String # foreign_key

Skapar ett främmande nyckelnamn från ett klassnamn. Passera false param för att inaktivera lägga till _ mellan namn och 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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow