많은 ruby application 들이 단순히 코드를 clone 해서 쓰는 형태보단 gem으로 패키징하여 배포하고 사용하는 형태를 가집니다.
오늘은 ruby gem 만드는 방법에 대해 메모해둘까 합니다.
gem, how to make?
ruby gem을 만들 때 아래와 같은 구조를 유지하며 만드는게 좋다고 합니다(http://ruby-korea.github.io/rubygems-guides/patterns/#consistent-naming)├── appname.gemspec # gem 정보 └── lib # gem이 될 파일의 path, 보통은 lib로 └── appname.rb # gem이 될 파일, 단일 파일로 만드는걸 추천한다고 하네요
우선 이런 구조로 만들어보죠. 앱 디렉토리에서 gemspec과 lib 하위경로를 추가해줍시다.
#> mkdir lib #> cp your_app.rb ./lib/your_app.rb
구조는 만들었고 gem에 대한 설명이 들어가는 gemspec을 만듭시다.
#> vim ftc.gemspec
Gem::Specification.new do |s|
s.name = 'ftc'
s.version = '0.0.1'
s.date = '2018-04-28'
s.summary = "file to clipboard"
s.description = "File to Clipboard gem"
s.authors = ["hahwul"]
s.email = 'hahwul@gmail.com'
s.files = ["lib/ftc.rb"]
s.homepage =
'https://www.hahwul.com'
s.license = 'MIT'
end
대충 항목보면 어떤 내용이 들어가야할지 감 오실겁니다. 다 작성하면 gem command로 빌드해줍시다.
#> gem build ftc.gemspec Successfully built RubyGem Name: ftc Version: 0.0.1 File: ftc-0.0.1.gem
빌드가 완료되면 gem 파일이 생성됩니다.
#> ls drwxr-xr-x 4 root root 4096 Oct 4 01:00 ./ drwxrwxr-x 16 hahwul hahwul 4096 Sep 15 23:26 ../ -rw-r--r-- 1 root root 4096 Oct 4 01:01 ftc-0.0.1.gem -rw-r--r-- 1 root root 367 Oct 4 01:00 ftc.gemspec
일반 gem 파일 설치하는 것과 동일한 방식으로 install이 가능합니다.
#> gem install ftc-0.0.1.gem Successfully installed ftc-0.0.1 Parsing documentation for ftc-0.0.1 Installing ri documentation for ftc-0.0.1 Done installing documentation for ftc after 0 seconds 1 gem installed
보통은 gem 자체가 라이브러리 역할도 많이하기 때문에 코드를 구성할 때 installer 개념이 아니라 library 만든다고 생각 후 적용하시는게 좋아보입니다.
또한 gem 네이밍 관련해서도 규칙이 있으니 아래 reference 부분 참고해주세요 :)
(이게 gem 저장소에 올라가는 경우에는 중요할듯합니다..(아무래도 이름이 겹치는것도 문제가 되고, 이름에서 기능을 알 수 있어야하기 떄문이죠)
Reference
http://ruby-korea.github.io/rubygems-guides/make-your-own-gem/http://ruby-korea.github.io/rubygems-guides/name-your-gem/
http://ruby-korea.github.io/rubygems-guides/patterns/#consistent-naming
![]() |
HAHWULSecurity engineer, Gopher and H4cker! |
0 개의 댓글:
Post a Comment