Ruby on Rails
ActiveSupport
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"