Ruby Language
보석 사용
수색…
루비 보석 설치하기
이 가이드는 이미 Ruby가 설치되어 있다고 가정합니다. Ruby < 1.9
를 사용하는 경우 기본적으로 RubyGem 을 포함 하지 않으므로 수동으로 설치 해야합니다.
루비 보석을 설치하려면 다음 명령을 입력하십시오.
gem install [gemname]
gem 종속성 목록이있는 프로젝트에서 작업하는 Gemfile
파일은 Gemfile
이라는 파일에 나열됩니다. 프로젝트에 새 gem을 설치하려면 Gemfile
에 다음 코드 줄을 추가하십시오.
gem 'gemname'
이 Gemfile
은 프로젝트가 요구하는 의존성을 설치하기 위해 Bundler gem 이 사용하지만 이것은 아직 실행하지 않았다면 Bundler를 먼저 설치해야 함을 의미합니다 :
gem install bundler
파일을 저장하고 다음 명령을 실행하십시오.
bundle install
버전 지정
버전 번호는 다음과 같이 -v
플래그와 함께 live 명령에 지정할 수 있습니다.
gem install gemname -v 3.14
Gemfile
에서 버전 번호를 지정할 때 몇 가지 옵션을 사용할 수 있습니다 :
- 어떤 버전 지정 (
gem 'gemname')
- 다른 보석과 호환되는 최신 버전을 설치하지 않습니다Gemfile
. - 정확한 버전 지정 (
gem 'gemname', '3.14'
) - 버전3.14
만 설치하려고 시도합니다 (Gemfile
다른 보석과 호환되지 않는 경우 실패합니다). - 낙관적 인 최소 버전 번호 (
gem 'gemname', '>=3.14'
) -Gemfile
다른 보석과 호환되는 최신 버전 만 설치하려고 시도하며3.14
이상의 버전이 호환되지 않는 경우 실패합니다.>
연산자도 사용할 수 있습니다. - 비관적 인 최소 버전 번호 (
gem 'gemname', '~>3.14'
) - 이것은gem 'gemname', '>=3.14', '<4'
를 사용하는 것과 기능상 동일합니다. 즉, 최종 기간 이후의 숫자 만 증가 할 수 있습니다.
모범 사례 : rbenv 또는 rvm 과 같은 Ruby 버전 관리 라이브러리 중 하나를 사용하고자 할 수 있습니다. 이 라이브러리를 통해 다른 버전의 Ruby 런타임과 젬을 설치할 수 있습니다. 따라서 프로젝트에서 작업 할 때 이것은 대부분의 프로젝트가 알려진 Ruby 버전에 대해 코딩되기 때문에 특히 유용 할 것입니다.
github / filesystem의 gem 설치
github 또는 파일 시스템에서 gem을 설치할 수 있습니다. 보석이 git에서 또는 파일 시스템에 이미 체크 아웃 된 경우 다음을 사용하여 설치할 수 있습니다.
gem install --local path_to_gem/filename.gem
github에서 gem 설치. github에서 소스를 다운로드하십시오.
mkdir newgem
cd newgem
git clone https://urltogem.git
보석을 만들어라.
gem build GEMNAME.gemspec
gem install gemname-version.gem
코드 내에서 필수 보석이 설치되었는지 확인하기
코드에서 필요한 보석이 설치되었는지 확인하려면 nokogiri를 사용하여 다음을 사용할 수 있습니다.
begin
found_gem = Gem::Specification.find_by_name('nokogiri')
require 'nokogiri'
....
<the rest of your code>
rescue Gem::LoadError
end
그러나이를 코드 내에서 기능을 설정하는 데 사용할 수있는 함수로 확장 할 수 있습니다.
def gem_installed?(gem_name)
found_gem = false
begin
found_gem = Gem::Specification.find_by_name(gem_name)
rescue Gem::LoadError
return false
else
return true
end
end
이제 필요한 보석이 설치되었는지 확인하고 오류 메시지를 인쇄 할 수 있습니다.
if gem_installed?('nokogiri')
require 'nokogiri'
else
printf "nokogiri gem required\n"
exit 1
end
또는
if gem_installed?('nokogiri')
require 'nokogiri'
else
require 'REXML'
end
Gemfile과 Bundler 사용하기
Gemfile
은 응용 프로그램의 종속성을 구성하는 표준 방법입니다. 기본 Gemfile은 다음과 같습니다 :
source 'https://rubygems.org' gem 'rack' gem 'sinatra' gem 'uglifier'
다음과 같이 원하는 보석의 버전을 지정할 수 있습니다.
# Match except on point release. Use only 1.5.X gem 'rack', '~>1.5.2' # Use a specific version. gem 'sinatra', '1.4.7' # Use at least a version or anything greater. gem 'uglifier', '>= 1.3.0'
git repo에서 바로 보석을 끌어낼 수도 있습니다.
# pull a gem from github gem 'sinatra', git: 'https://github.com/sinatra/sinatra.git' # you can specify a sha gem 'sinatra', git: 'https://github.com/sinatra/sinatra.git', sha: '30d4fb468fd1d6373f82127d845b153f17b54c51' # you can also specify a branch, though this is often unsafe gem 'sinatra', git: 'https://github.com/sinatra/sinatra.git', branch: 'master'
또한 용도에 따라 보석을 그룹화 할 수 있습니다. 예 :
group :development, :test do # This gem is only available in dev and test, not production. gem 'byebug' end
애플리케이션을 여러 플랫폼에서 실행할 수 있어야하는 경우 특정 보석을 실행할 플랫폼을 지정할 수 있습니다. 예 :
platform :jruby do gem 'activerecord-jdbc-adapter' gem 'jdbc-postgres' end platform :ruby do gem 'pg' end
Gemfile에서 모든 보석을 설치하려면 다음을 수행하십시오.
gem install bundler bundle install
번들 / 인라인 (번들 v1.10 이상)
때로는 누군가를 위해 스크립트를 만들어야하지만 자신의 컴퓨터에 무엇이 있는지 확실하지 않습니다. 스크립트에 필요한 모든 것이 있습니까? 걱정할 것 없습니다. 번들러는 훌륭한 기능을 가지고 있습니다.
gemfile
메소드를 제공하고 스크립트가 실행되기 전에 필요한 모든 보석을 다운로드하여 필요로합니다. 작은 예 :
require 'bundler/inline' #require only what you need
#Start the bundler and in it use the syntax you are already familiar with
gemfile(true) do
source 'https://rubygems.org'
gem 'nokogiri', '~> 1.6.8.1'
gem 'ruby-graphviz'
end