
v
15.02.2017
21:40:01
:D

A
15.02.2017
21:40:01
потому что то что у тебя стоит в системе будет видно и в бандлере (возможно тоже контролируется gem env, но я не знаю)

Alexander
15.02.2017
21:40:06

Alan
15.02.2017
21:40:25

Google

Alexander
15.02.2017
21:40:44

Ruslan
15.02.2017
21:40:46
в общем просто установщик пакетов (библиотек) которые ты будешь юзать в проекте

Alan
15.02.2017
21:40:51

A
15.02.2017
21:40:51
системный руби

Alexander
15.02.2017
21:41:10
bundler через gem-конфиг работает

Alan
15.02.2017
21:41:37

Alexander
15.02.2017
21:42:02

A
15.02.2017
21:42:05
ну это как pip скорее
если ты с питоновыми вещами больше знаком

v
15.02.2017
21:42:26

Ruslan
15.02.2017
21:42:36

v
15.02.2017
21:42:42
и подменяет системный на него

Google

Alan
15.02.2017
21:42:46

A
15.02.2017
21:43:31
можно положить выхлоп pip freeze в файл и почти Gemfile.lock будет
ну и он тоже разрешает зависимости

Alan
15.02.2017
21:44:23
так получилось что зацепил питоновские технологии некоторые раньше чем рубишные, вот хочу опыт перенести
хорошо, а полноценная песочница с окружением есть у руби?
У руби, как мне кажется, не очень актуально менять версию(вроде же совместимо по большей части?)
РАзве что для готового проекта на старой версии писать
или если у заказчика требование

A
15.02.2017
21:47:08
полно
rvm, rbenv, chruby
я юзаю rvm, кому-то другие вещи нравятся.

Alan
15.02.2017
21:48:04
я как менеджер версия пробовал и rvm и rbenv

A
15.02.2017
21:48:26
только версию руби и набор гемов для нее

Alan
15.02.2017
21:48:28
остановился на rbenv

Alexander
15.02.2017
21:48:42

A
15.02.2017
21:48:45
гемы для проекта у тебя менеджит бандлер
ну, как правило, никто не заставляет

Google

Alexander
15.02.2017
21:49:04

A
15.02.2017
21:49:33
в Gemfile можно положить :ruby "2.1.8" и rvm (и многие другие) будут ее юзать для проекта

Alan
15.02.2017
21:49:35
запутали господа.
Пишите ответы пожалуйста через reply

Alexander
15.02.2017
21:49:58

Alan
15.02.2017
21:50:08
а то нихрена от некоторых не понятно о чём они))))
ДАвайте по порядку всё

A
15.02.2017
21:51:31
rvm управляет версиями руби, бандлер - версиями гемов для твоего проекта
собственно всё

Alan
15.02.2017
21:52:46
я думал что это менеджеры версий

Alan
15.02.2017
21:54:25
умеет локальную версию держать для проекта.
но никто из них не умеет локально зависимсоти держать
значит для них то и нужен bundler

Ruslan
15.02.2017
21:55:04
она глобально у тебя устанавливается и ты можешь на компе держать сколько угодно версий руби, просто использовать нужную тебе для проекта

Alan
15.02.2017
21:55:47
Ясно

A
15.02.2017
21:55:51
ну, гемы и зависимости к ним будут лежать для той версии руби в который ты их ставишь.
т.е. без бандлера у тебя и так в разных руби будут разные гемы.
у rvm еще есть подзабытый механизм "gemsets"

Alan
15.02.2017
21:55:54
Спасибо, люди добрые.

Google

v
15.02.2017
21:57:24

Alexander
15.02.2017
21:57:48
хочу заметить, что для одной версии руби могут лежать несколько версий одного гема
то есть даже если гемы не локально установлены, а у пользователя — там может быть сколь угодно версий каждого из гемов. и бандлер возьмёт нужную (согласно Gemfile)

Alan
15.02.2017
21:58:34

Ruslan
15.02.2017
21:59:20
ты ставишь гемы в определенную версию, в ту под которой у тебя сейчас работает проект, а не глобально во все

Alan
15.02.2017
21:59:22

Alexander
15.02.2017
21:59:45

Alan
15.02.2017
22:01:15

Ruslan
15.02.2017
22:01:31
да

Admin
ERROR: S client not available

Alan
15.02.2017
22:01:41
Тогда зачем bundler?

Ruslan
15.02.2017
22:01:49
он установщик

Alexander
15.02.2017
22:01:56

Ruslan
15.02.2017
22:01:57
чтобы установить гемы из твоего Gemfile

Alexander
15.02.2017
22:02:05

Ruslan
15.02.2017
22:02:19
ты добавил в гемфайл все свои гемы и все что тебе надо

Alan
15.02.2017
22:02:23

Ruslan
15.02.2017
22:02:38
потом вызывал bundler install и все, ну или если тебе надо обновить опять же гемы из всего списка Update

Alan
15.02.2017
22:02:45
Вот теперь разобрался, я сначала не понял кто работает с gemfile. =)

Google

Alan
15.02.2017
22:02:55
Простите за нубские вопросы))))

Alexander
15.02.2017
22:03:43
ruby не связан с Gemfile.
у руби есть gem тулза и всё.
bundler — это гем.
он умеет работает через Gemfile
и работает чуть умнее встроенных средств.
например, у тебя установлен гем_икс версии 1.1 и 1.2
и тебе в проекте нужен именно 1.1
без bundler ты вряд ли это сделаешь
bundler подключает в твой проект нужные гемы нужных версий либо через коммандную строку (bundle exec), либо через Bundler.require в коде.
я первое не очень люблю, пользуюсь вторым

Alan
15.02.2017
22:04:30

A
15.02.2017
22:16:09
потому что это писать надо
т.е. писать больше одного раза

Alan
15.02.2017
22:16:43

A
15.02.2017
22:17:34
каждый раз при запуске скрипта
т.е. вместо rails console - bundle exec rails console
например

Ivan
15.02.2017
22:18:24
Bunny (rabbitmq)

A
15.02.2017
22:19:10
посмотри что у тебя с channel
возможно он таки закрыт

Alan
15.02.2017
22:19:17
И вот ещё вопрос: смотрю гем https://github.com/atipugin/telegram-bot-ruby и не понимаю как эта либа будет нормально работать- на же синхронная, или я не понял чего?

Ivan
15.02.2017
22:19:36
def self.publish(message, type)
x = channel.direct(@@queue_name, auto_delete: true)
q = channel.queue(@@queue_name, durable: true, auto_delete: false)
q.bind(x)
x.publish({name: @@task_name, type: type, data: message}.to_json, persistent: true)
channel.close
connection.close
end
def self.channel
@channel ||= connection.create_channel
end
def self.connection
@conn ||= Bunny.new(Rails.configuration.rabbitmq['amqp']).tap { |c| c.start }
end
Даже пробовал без @channel ||=
Безрезультатно

A
15.02.2017
22:21:09
попробуй тогда @channel.direct

Ivan
15.02.2017
22:21:51
def self.channel
connection.create_channel
end
def self.connection
Bunny.new(Rails.configuration.rabbitmq['amqp']).tap { |c| c.start }
end
зачем, если все-равно канал вернет?

A
15.02.2017
22:22:16
а, ну да.