티스토리 뷰
Modules
모듈은 메소드의 컬렉션이라고 할 수 있습니다. 특정 상수와 메서드가 필요할 때에 모듈을 사용할 수 있습니다. 모듈은 메서드와 상수를 namespace로 분리하는 역할을 합니다.
module은 class와 유사해 보이지만, 모듈에는 인스턴스를 만들 수 없으며, 하위 클래스를 만들 수 없습니다.
# 모듈 정의하기
module ModuleName
CONSTANT_NAME = "Constant value"
end
# 루비 인터프리터 내부에 존재하는 모듈 사용하기
ModuleName::CONSTANT_NAME
# 예시 - Math Module
puts Math::PI
#==> 3.141592653589793
# 모듈에 싱글톤 메서드 정의. 모듈에 self를 붙여서 정의한 메소드
module Food
# singleton method
def self.taste
%w(cherry-tart custard pine-apple).sample
end
# 다른 모듈이나 클래스 정의
module Cookie
end
class Mushroom
end
end
# 싱글톤 메서드 사용하기
Food.taste
# 네임스페이스로 사용하기
Food::Cookie
Food::Mushroom
클래스나 모듈 읽기
# 루비 인터프리터 내부에 존재하지 않는 모듈 불러오기
require 'my_module'
# 예시
# date Module
require 'date'
puts Date.today #=> 2017-07-06
# 외부파일에 정의된 모듈 불러오기
require './library' #=> 실행 디렉터리의 library.rb 읽기
require 'library' #=> $LOAD_PATH에서 library.rb 찾아 읽기
module function
모듈함수란 private 인스턴스 메소드면서 모듈의 싱글톤 메소드인 메소드로, 서브루틴으로 이용할 목적인 메서드는 모듈함수로 정의할 수 있습니다.
# 모듈 함수 정의하기
module MyModule
module_function
def my_module_func
puts "module function"
end
end
'Ruby & Rails' 카테고리의 다른 글
Ruby 처음 배우기 : 예외 (0) | 2018.05.11 |
---|---|
Ruby 처음 배우기 : Mixin (0) | 2018.05.11 |
Ruby 처음 배우기 : 상속 (0) | 2018.05.11 |
Ruby 처음 배우기 : Class (0) | 2018.05.11 |
Ruby 처음 배우기 : Block & Yield (0) | 2018.05.10 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- ruby
- javascript
- 샤오미
- quirky
- GitHub
- 마인드맵
- js
- 갤럭시 노트 7
- MySQL
- 몽고DB
- MonGo
- 윈도우 10
- xmind
- 마크다운
- 자바스크립트
- Nas
- Git
- 깃
- 데이터베이스
- 반디집
- 다음팟플레이어
- 방수방진
- mongoDB
- 픽픽
- db
- 루비
- database
- 아이폰 7
- 압축프로그램
- 캡쳐프로그램
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함