@rubylang

Страница 1584 из 1684
Felix
05.08.2018
17:54:30
окружение на сервере можно и ручками настроить

оно настраивается 1 раз

Silent Bob
05.08.2018
17:55:26
окружение на сервере можно и ручками настроить
можно https://gorails.com/setup/ubuntu/18.04 . Но вдруг у человека задача стоит автоматизировать это. Ансибл подходит в самый раз для этого

Богдан
05.08.2018
22:02:45
для деплоя только капистрано
Тревис СИ тоже успешно деплоит

Google
Felix
06.08.2018
03:52:20
Тревис СИ тоже успешно деплоит
а чем именно он деплоит?))))

Denis
06.08.2018
09:11:16


Alexey
06.08.2018
09:14:44
у capistrano наверное в Gemfile версия прописана

Denis
06.08.2018
09:15:49
не прописана

ojab
06.08.2018
09:17:17
версию rubyzip поставить поновее в Gemfile, очевидно

Denis
06.08.2018
10:14:20
Установить вроде вышло все. Но вот возникла новая проблемма. cannot load such file -- zip/zip (LoadError)

Антон
06.08.2018
10:52:36
5-й год без капистрано - полет нормальный

No
06.08.2018
10:53:57
1 год без капистрано - полет нормальный, но скучаю

Вызывает привыкание )

Felix
06.08.2018
10:54:38
если человек спрашивает совета — логично предположить, что нужно что-то простое и рабочее) а без капистрано чаще всего те проекты, где деплой проще настроить без капистрано, чем возится с ним

какие-то слишком кастомные фичи нужны например, или что-то другое

Антон
06.08.2018
10:55:12
что-то простое и рабочее это хероку например, там нет капистрано

Google
Felix
06.08.2018
10:55:14
но в таком случае обычно настраивает деплоймент тот, кто понимает как нужно настроить

Антон
06.08.2018
10:55:48
ну.... оно дешевле чем настраивать все самому, особенно если не знаешь как

время кабута бесплатное у нас нынче

Felix
06.08.2018
10:56:11
и это тоже верно

Антон
06.08.2018
10:56:40
ну не совсем "тоже", я же не говорю "только хероку/ранчер/ватевар"

Felix
06.08.2018
10:56:55
:)

еще бывает что какой-то разработчик не сильно загружен. и чем он простаивать будет, лучше нагрузить чем-то полезным

Антон
06.08.2018
10:58:10
да я не уверен что польза будет потому, что каждый "сисадмин" всякие эти ротации логов, всякие god и другую разную дребедень настраивает каждый раз в чем-то по другому

а потом оказывается, что держать кеш ап и дб на одном сервере было плохой идеей

а нанятые сисадмины не могут на этот сервер imagemagic наверноуть потому что там ______

девопс - штатная единица, а не разработчик которому заняться нечем

если проект в разработке, не требователен к персональным данным и нагрузка не большая, то можно обойтись бесплатной херокой. таких проектов большинство

trickster
06.08.2018
11:19:41
да ну, слип этот по 10 секунд

проще уже ДО оплатить за копейку

Антон
06.08.2018
11:20:14
7$? обалдел?

trickster
06.08.2018
11:20:21
+ урлы ужасные

Антон
06.08.2018
11:20:29
dns?

trickster
06.08.2018
11:20:44
да

на бесплатном хероку

Google
trickster
06.08.2018
11:21:19
да ну, слип этот по 10 секунд
вот я точно не знаю, там 10 или больше?

Антон
06.08.2018
11:21:21
можно взять кредит в банке

trickster
06.08.2018
11:21:33
7$? обалдел?
серьёзно?

Антон
06.08.2018
11:21:45
серьёзно?
дикие же деньги

trickster
06.08.2018
11:22:03
дикие деньги, если ты решишь заплатить хероку ?

Антон
06.08.2018
11:22:31
платил пару раз за 10 лет ?

ssl вот еще дорогой

Felix
06.08.2018
11:24:56
0$

Антон
06.08.2018
11:25:12
ваще зажрались

Darth
06.08.2018
12:42:13
Как в модуле получить имя контроллера/неймспейс который его вызвал?

А ещё как в модуле вызвать методы из этого же модуля?

Aleksey
06.08.2018
12:44:53
когда модуль инклюдится в класс, все его методы становятся доступны в классе как родные, соотв. к методам обаращаешься так же как и в классе

насчет первого вопроса, единственное место где ты можешь узнать куда попал модуль - переопределить в модуле def self.included(base) end во время инициализации кода этот метод вызовется каждый раз на каждый include, куда модуль заинлюдили а в base лежит имя класса куда его заинклюдили

от себя: исходя из общего уровня вопросов, есть подозрение что ты решаешь свою проблему как-то не так

s
06.08.2018
12:50:58
Как в модуле получить имя контроллера/неймспейс который его вызвал?
caller вернет стек вызовов. но не уверен, что это именно то, что нужно

Darth
06.08.2018
12:53:03
Тогда попробую от задачи: Хочу инклудить модуль только в Base (желательно) Во время инклуда понимать куда инклудится (вниз по наследованию) и в зависимости от того куда сейчас инклужусь вызывать некоторую логику

s
06.08.2018
12:54:14
лучше так не делать

а сделать метод, который должен вызвать некоторую логику, которая зависит от контекста

и переопределить его везде, где нужно

Google
Darth
06.08.2018
12:54:49
Меня оч просили, чтоб это было в 1 модуле

Aleksey
06.08.2018
12:56:07
это очень очень неправильно

Darth
06.08.2018
12:57:33
Не вижу ничего неправильного

Вижу сложное

В любом случае таск есть таск

Aleksey
06.08.2018
12:59:22
модуль знает про классы в которве он инклюдится

даже не про интерфейс а про сами классы и дерево наследования

удачи тому кто это будет поддерживать

Admin
ERROR: S client not available

Darth
06.08.2018
13:02:20
Так фишка сделать так, чтобы работало, а потом только данные в массивах менять раз в n лет

Крч имеет смысл делать такую магию

Aleksey
06.08.2018
13:05:37
ну если имеет то как-то так: ` module MyModule def self.included(base) case base.class.name when BaseClass base.include(ModuleForBaseClass) when ChildClass base.include(ModuleForChildClass) when … end end module ModuleForBaseClass # something end module ModuleForChildClass # something end end `

но это феерический говнокод

Alexey
06.08.2018
13:24:58
Тогда попробую от задачи: Хочу инклудить модуль только в Base (желательно) Во время инклуда понимать куда инклудится (вниз по наследованию) и в зависимости от того куда сейчас инклужусь вызывать некоторую логику
"вниз по наследованию" вроде не получится т.к. included будет вызываться только во время явного вызова include Mixin т.е. например только в базовом классе что у тебя есть: внутри миксина ты можешь понять класс инстанса можешь нормально инклудить миксин во всех нужных классах можешь сделать интерфейс в миксине, который должны будут переопределить чайлды, и в самом миксине работать с этим интерфейсом

Alexey
06.08.2018
13:29:32
да, примерно так
module TMixin def common_method important_method1 + important_method2 end def important_method1 raise 'implement' end def important_method2 raise 'implement' end end class TBase include TMixin end class T1 < TBase def important_method1 "cool staff 1" end def important_method2 "cool staff 2" end end p T1.new.common_method

Eugene
06.08.2018
13:30:29
А как ты это говно будешь тестить?

Типо тебе сказали так сделать, но потом так опача - ошибки летят, ты ничего не понимаешь и понимаешь, что легче было написать сразу норм, чем по второму кругу переписывать.

Хотя для быстрого релиза это подойдет.

Alexey
06.08.2018
13:35:38
> "вниз по наследованию" вроде не получится поясню, что имею ввиду module TMixin def self.included(base) self.instance_variable_set(:@klass, base) end def call self.class.instance_variable_get(:@klass) end end class TBase include TMixin end class T1 < TBase end TBase.new.call T1.new.call T1.new.call => nil т.к.для T1 не было явного include но TBase.new.call => TBase

Google
s
06.08.2018
13:37:40
а все же, зачем это нужно?

Alexey
06.08.2018
13:38:15
метамагия до добра не доведет, да тут несложное оопе, чистый шаблонный метод какой нибудь наверняка

s
06.08.2018
13:38:23
если нет желания сделать по-человечески, с переопредлением метода, то хотя бы конфигурацию модуля вынести в подклассы

вроде include GenderTraits а в дочернем классе gender :male, gender :female

и внутри модуля, в зависимости от конфирурации уже разруливать БЛ

Alexey
06.08.2018
13:40:01
ну я же чисто по вопросу метапрограммирование в целом неплохо но нужно смотреть применение

s
06.08.2018
13:40:25
метапрограммирование это норм, но лучше его избегать, если есть возможность

но тут дело не в нем, а в вывернутой логике

в которой миксин почему-то должен что-то знать о контексте и вести себя по разному

если всех участников канала сложить в стопку, то получится full hd развертка )

Dmitry
06.08.2018
13:53:47
wi11son
06.08.2018
13:53:52
Хах

Как вообще сейчас народ деплоит? Ато я потерял из виду этот момент, как девопсы завелись в компании

wi11son
06.08.2018
13:55:26
Дженкинс+Ансибл+контейнеры?

s
06.08.2018
13:57:20
ансибл для провижининга и управления конфигурацией приложения, ансибл или капистрано для деплоймента

а дженкинс тут причем?)

Страница 1584 из 1684