Computer >> 컴퓨터 >  >> 프로그램 작성 >> Ruby

Ruby 표준 라이브러리의 5가지 유용한 예

Ruby 표준 라이브러리는 Ruby와 함께 제공되지만 언어 자체의 일부는 아닌 일련의 모듈 및 클래스입니다.

이 클래스는 다음과 같은 다양한 유틸리티를 제공합니다.

  • Base64 인코딩
  • 소수 생성
  • DNS 확인

이 기사에서는 유용한 예제와 함께 이러한 클래스 중 5개를 보여 드리겠습니다.

Ruby 로거 클래스

일부 오류 또는 디버그 메시지를 기록해야 하는 경우 Ruby에서 Logger로 처리했습니다. 수업.

이 클래스는 로깅을 시작하는 데 필요한 모든 것을 제공합니다!

Logger를 사용하려면 클래스는 Logger를 생성하기만 하면 됩니다. object &매개변수로 출력 스트림(또는 파일 이름)을 제공합니다. 그런 다음 다른 로깅 수준을 사용하여 메시지를 등록할 수 있습니다.

로깅 수준은 다음과 같습니다.

  • 디버그
  • 정보
  • 경고
  • 오류
  • 치명적

:

require 'logger'logger =Logger.new(STDOUT)logger.info 'testing...'logger.warn 'Fun with Ruby :)'

다음 출력을 생성합니다. :

나, [2016-05-14T15:50:21.367590 #12148] INFO -- :testing...W, [2016-05-14T15:50:21.846651 #12148] WARN -- :루비로 즐겨요 🙂 

첫 번째 문자는 로깅 수준의 축약된 형태입니다(I는 Info, W는 Warn)... 그런 다음 타임스탬프와 현재 프로세스 ID(Process.pid를 사용하여 Ruby에서 가져올 수 있음)가 있습니다. ).

마지막으로 전체 로깅 수준과 실제 메시지가 있습니다.

새 포맷터를 제공하여 이 형식을 변경할 수 있습니다.

소수 작업

일상적으로 소수를 다룰 필요가 없을 수도 있지만 Ruby가 Prime 수업.

Prime이 필요할 때 prime?를 추가합니다. Fixnum 메소드 .

:

'프라임'5.프라임이 필요합니까? # true11.프라임? # true20.프라임? # 거짓

이 클래스에는 소수 생성기도 포함되어 있습니다.

:

Prime.take(10)# [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

StringIO 클래스 사용 방법

StringIO 클래스를 사용하면 IO처럼 작동하는 문자열을 만들 수 있습니다. 개체.

이는 파일이나 STDIN에서 읽는 것처럼 이 문자열로 작업할 수 있음을 의미합니다. (표준 입력).

예시입니다 :

요구 'stringio'io =StringIO.newio <<'test'io <<'code'puts io.string# "testcode"

몇 가지 주의사항 :

StringIO에 데이터를 추가할 때 객체는 공백이나 줄 바꿈을 추가하지 않으며 실제 문자열을 얻으려면 string을 호출해야 합니다. 방법.

또한 배열 인덱싱을 사용하여 일반 문자열과 같이 개별 문자에 액세스할 수 없습니다.

언제 유용합니까?

글쎄, 때때로 당신은 당신이 더 많이 제어할 수 있는 다른 개체를 파일이나 다른 IO 개체로 대체하고 싶을 수 있습니다. 예를 들어 테스트 환경에서 STDOUT StringIO 사용 개체.

여기에서 Rails의 실제 예를 볼 수 있습니다. https://github.com/rails/rails/blob/52ce6ece8c8f74064bb64e0a0b1ddd83092718e1/activesupport/test/logger_test.rb

Base64 인코딩 및 디코딩

Base64는 인터넷에서 일반적으로 사용되는 인코딩 형식입니다.

이렇게 생겼어요 :

"cnVieQ=="

왜 유용한가요?

URL에는 허용되는 제한된 문자 집합이 있습니다. 때로는 이러한 문자를 포함하고 싶은 경우 Base64가 이를 가능하게 합니다.

인코딩 방법은 다음과 같습니다.

'base64'Base64.encode64("ruby")"cnVieQ=="
필요

디코딩하는 방법은 다음과 같습니다.

'base64'Base64.decode64("cnVieQ==")"ruby" 필요

경로 작업

Pathname 클래스는 Dir과 같은 여러 파일 시스템 탐색 유틸리티를 래핑합니다. &File , 훨씬 더 강력한 클래스에서.

메서드 이름은 동일하지만 Pathname을 반환합니다. 문자열이나 배열 대신 객체. 이것이 의미하는 바는 모든 파일 관련 방법을 사용하여 결과로 계속 작업할 수 있다는 것입니다.

좋은 예입니다 :

'pathname'Pathname.glob("*").count(&:directory?) 필요

Dir로 이 작업을 시도한 경우 , 우아하지 않은 이 코드를 사용해야 합니다.

Dir.glob("*").count { |d| File.directory?(d) }

다음에 파일 시스템 관련 작업을 수행해야 할 때 이것을 시도하십시오 🙂

결론

이 예제가 유용했기를 바랍니다! 표준 라이브러리를 좀 더 탐색하여 이것이 무엇을 할 수 있는지 알아보십시오.

이 게시물이 마음에 들면 공유하는 것을 잊지 마세요 🙂