수색…


비고

ActiveSupport는 나머지 Rails 프레임 워크에서 사용하는 범용 툴의 유틸리티 보석입니다.

이러한 도구를 제공하는 주요 방법 중 하나는 Ruby의 기본 유형을 Monkeypatching하는 것입니다. 이를 핵심 확장 이라고합니다.

핵심 확장 기능 : String Access

String at

문자열 객체의 하위 문자열을 반환합니다. 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 # from

지정된 위치로부터 문자열의 끝까지 부분 문자열을 리턴합니다.

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

문자열 # ~

캐릭터 라인의 선두로부터 지정된 위치에 서브 캐릭터 라인을 돌려줍니다.
위치가 음수이면 문자열 끝에서부터 계산됩니다.

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

fromto 는 일렬로 사용할 수 있습니다.

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

String # first

최초의 캐릭터 또는 캐릭터 라인의 길이까지의 지정된 수의 캐릭터를 돌려줍니다.

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

마지막 문자열 # 개

마지막 문자 또는 문자열의 끝에서 주어진 수의 문자를 역으로 계산합니다.

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

핵심 확장 기능 : 날짜 / 시간 변환 문자열

문자열 # to_time

문자열을 Time 값으로 변환합니다. form 매개 변수는 :utc 또는 :local 이며 기본값은 :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

문자열 # to_date

문자열을 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

문자열 # to_datetime

문자열을 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

핵심 확장 기능 : 문자열 제외

String # exclude?

String#include? 의 역함수 String#include?

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

핵심 확장 기능 : 문자열 필터

문자열 # squish

선행 공백이나 후행 공백없이 주어진 문자열의 버전을 리턴하고, 내부의 모든 연속 공백을 단일 공백으로 결합합니다. 파괴 버전 squish! 문자열 인스턴스에서 직접 작동합니다.

ASCII 및 Unicode 공백을 모두 처리합니다.

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

문자열 # remove

패턴이 모두 제거 된 새 문자열을 반환합니다. 파괴 버전 remove! 주어진 문자열에서 직접 작동합니다.

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

String # truncate

캐릭터 라인이 길이보다 긴 경우는 지정된 캐릭터 라인의 길이를 잘라 버린다.

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

문자열이나 regexp :separator 를 전달하여 자연 휴식 시간에 자릅니다.

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

문자열 # truncate_words

지정된 수의 단어 뒤에 잘린 문자열을 반환합니다.

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

단어의 다른 구분자를 지정하기 위해 문자열이나 정규 표현식을 전달하십시오.

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

마지막 문자는 :omission 문자열로 바뀝니다 (기본값은 "...").

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

문자열 # strip_heredoc

heredocs에서 들여 쓰기를 제거합니다. 가장 들여 쓰기가 적은 비어 있지 않은 줄을 찾고 그 공백을 제거합니다.

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

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

사용자는

This command does such and such.

Supported options are:
-h         This message
...

핵심 확장 기능 : String Inflection

문자열 # 복수형

문자열의 복수형을 반환합니다. 선택적으로 count 매개 변수를 사용하고 count == 1 경우 단수 형태를 반환합니다. 또한 언어 별 복수화를위한 locale 매개 변수를 허용합니다.

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

문자열 # singularize

문자열의 단수 형태를 반환합니다. 선택적 locale 매개 변수를 승인합니다.

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

문자열 # constantize

문자열에 지정된 이름으로 선언 된 상수를 찾습니다. 이름이 CamelCase에 없거나 초기화되지 않은 경우 NameError 발생시킵니다.

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

String # safe_constantize

constantize 수행하지만 NameError 를 발생시키는 대신 nil 을 반환합니다.

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

String # camelize

다음과 같은 경우에는 기본적으로 문자열을 UpperCamelCase로 변환합니다 :lower 는 lowerCamelCase로 param을 변환하므로 제공됩니다.

별칭 : camelcase

참고 : 또한 / to :: 를 변환하여 경로를 네임 스페이스로 변환하는 데 유용합니다.

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

문자열 # 제목

모든 단어를 대문자로 바꾸고 문자열의 일부 문자를 바꿔 더 멋진 제목을 만듭니다.

별칭 : titlecase

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

문자열 # 밑줄

밑줄이있는 소문자 형식을 문자열의 표현식에서 만듭니다. camelize 의 반대입니다.

참고 : underscore 은 또한 :: to / 를 변경하여 네임 스페이스를 경로로 변환합니다.

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

문자열 # dasherize

밑줄을 문자열의 대시로 대체합니다.

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

문자열 # demodulize

문자열의 상수 표현식에서 모듈 부분을 제거합니다.

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

문자열 # deconstantize

문자열의 상수 표현식에서 가장 오른쪽 세그먼트를 제거합니다.

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

String # parameterize

문자열의 특수 문자를 '예쁜'URL의 일부로 사용할 수 있도록 대체합니다.

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

:preserve_case 인수를 사용하여 문자열의 문자 대 / 소문자를 유지합니다.

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

parameterize 의 가장 일반적인 경우는 ActiveRecord 모델의 to_param 메소드를 재정 의하여 더 자세한 URL 슬러그를 지원하는 것입니다.

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

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

문자열 # tableize

Rails가 모델에서 테이블 이름으로 수행하는 것처럼 테이블의 이름을 만듭니다. 문자열의 마지막 단어를 Pluralizes.

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

문자열 # 분류

Rails가 테이블 이름에서 모델로하는 것과 같은 복수 테이블 이름에서 클래스 이름 문자열을 반환합니다.

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

String # humanize

첫 단어를 대문자로 바꾸고 밑줄을 공백으로 바꾸고 _id 있으면 후행을 제거합니다.

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

문자열 # upcase_first

첫 문자 만 대문자로 변환합니다.

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

문자열 # foreign_key

클래스 명으로부터 외래 키 명을 작성합니다. 이름과 id 사이에 _ 을 추가하지 않으려면 false param을 전달하십시오.

'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
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow