Нужно ли нам требовать и Gemfile одновременно? - PullRequest
1 голос
/ 26 марта 2019

В программе ruby ​​существует отдельный файл Gem, который содержит следующие определения:


source "https://rubygems.org" 
gem "typhoeus" 
gem "json" 
gem "pg" 
gem "google_drive" , "2.1.11" 
gem "mandrill-api"

Если по какой-то причине я не хочу этот гем-файл, то в сценарии ruby ​​мне нужно добавить require для всех библиотек, такие как:

 
require typhoeus
require json
require pg
require google_drive, 2.1.11
require mandrill-api 

это будет работать?

1 Ответ

4 голосов
/ 26 марта 2019

Назначение Gemfile может быть полезным, чтобы вы могли убедиться, что ваш код будет работать, используя bundler , который позволяет вам запускать bundle install, который установит гемы для работы с текущей версией ruby.вы будете использовать для своего кода.Он также добавит файл Gemfile.lock, который является хорошей идеей для фиксации в вашем контроле версий, чтобы убедиться, что у вас есть рабочий стек, в котором все гемы и версия ruby ​​совместимы.

Если вам требуются только файлыв вашем сценарии нет гарантии, что гемы действительно установлены в области действия этого сценария.Таким образом, имея Gemfile и Gemfile.lock и используя упаковщик, вы можете иметь переносимость для своей кодовой базы.

Обновление

Согласно комментарию @engineersmnky, вы можете указать версию гема, однако, с этим синтаксисом, и она должна работать, пока эти гемы установлены.Сначала вам нужно убедиться, что вы установили версию в своем терминале:

gem install google_drive -v 2.1.11

Затем вы можете сделать это в своем файле ruby ​​

require 'rubygems' 
gem 'google_drive', '2.1.11'; 
require 'google_drive' 
require 'typhoeus'
require 'json'
require 'pg' 
require 'mandrill-api' 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...