@rubylang

Страница 417 из 1684
ojab
20.09.2016
12:03:31
ошибка всё ещё есть?

Valentin
20.09.2016
12:04:01
ошибка всё ещё есть?
да кстати, это нормально что на сервере puma вообще command not found

ojab
20.09.2016
12:04:14
это ок

Google
ojab
20.09.2016
12:04:45
capistrano добавляет всякие пути, которых нет у юзера

там puma и лежит

да кстати, это нормально что на сервере puma вообще command not found
А если в deploy.rb добавить https://gist.github.com/ojab/12e7fd127b8cb099c76861eeacabf5b5 и сделать bundle exec cap production custom:print_secret — что выводит?

ojab
20.09.2016
12:12:28
нет, это надо выполнить один раз для проверки наличия SECRET_KEY_BASE в окружении при запуске через capistrano

если там secret_key_base выставляется — ты как-то не так запускаешь puma, если нет — надо разбираться с окружением

Valentin
20.09.2016
12:15:22
Оно же должено без пуша на мастер выполняться? А то я не пушил, просто изменил деплой.рб и Don't know how to build task 'custom'

Mikhail
20.09.2016
12:16:15
а кэпа не надо пушить

Valentin
20.09.2016
12:17:15
тупанул

без print_secret прописал

ojab
20.09.2016
12:18:50
хм

Mikhail
20.09.2016
12:19:12
ну че там

Google
Mikhail
20.09.2016
12:19:16
насилуете да)

?

ojab
20.09.2016
12:19:27
а, блин

а, не

там в последней колонке /bin/bash или /bin/sh?

ojab
20.09.2016
12:20:58
магия

Valentin
20.09.2016
12:22:17
скорее кривые руки на каком-то этапе деплоя

ojab
20.09.2016
12:24:04
ан нет, не магия, на работающем хосте у меня тоже SECRET_KEY_BASE пустой

Иван
20.09.2016
12:28:53
Ребят, подскажите пожалуйста. Вот есть у нас к примеру класс А внтури которого лежит константа. Далее мы определяем новый класс B, указывая что он внутри области видимости класса А, но использовать константу из клсса А напрямую мы не можем. Почему класс А не считается охватывающим классом при такой записи:

class A CONST = 1 end class A::B puts CONST end

ojab
20.09.2016
12:33:56
если я всё правильно понимаю — puma на убунте запускается через dash, в котором окружения нифига нет

:/

Valentin
20.09.2016
12:34:09
а если прописать sh -c "env | grep SECRET" на сервере, то SECRET_KEY_BASE=

походу где-то пустое значение присваивается

ojab
20.09.2016
12:35:13
гм

Google
Valentin
20.09.2016
12:36:17
как там вывести название файла через греп?

ojab
20.09.2016
12:36:54
если грепаешь по директории — он сам выведет

Valentin
20.09.2016
12:37:18
ну, я твоим методом грепаю

ojab
20.09.2016
12:37:58
тогда ты грепаешь по текущим переменным окружения, там нет имён файлов

grep -r SECRET_KEY_BASE /etc ~

грепнет по /etc и по домашней директории

Valentin
20.09.2016
12:44:02
грепнет по /etc и по домашней директории
ну, что-то я не нашёл присоение пустого значения

ojab
20.09.2016
12:48:02
mkay, а где и что у тебя сейчас присваивается?

Valentin
20.09.2016
12:48:23
ojab
20.09.2016
12:49:06
ну то есть нигде

Иван
20.09.2016
12:51:59
он не внутри видимости класса А, он в модуле A.
В данном примере получается внутри _класса_ А? Но почему руби все равно при таком определении класса не считает что класс/модуль А является охватывающим класс B? Ведь к константе напрямую я не могу обратиться.

Valentin
20.09.2016
12:52:03
ну то есть нигде
окей, уже в bashrc

Иван
20.09.2016
12:52:13
ojab
20.09.2016
12:55:16
Если имеется в виду родительский — нет, он не внутри класса A и не является дочерним.

Иван
20.09.2016
12:56:04
в общем меня интересует почему вот это - module A CONST = 1 class B puts CONST end end и вот это module A CONST = 1 end class A::B puts CONST end ведет себя по раному

yopp
20.09.2016
12:57:13
1) A, B и CONST это всё константы

2) В руби константы разрешаются из своей лексической области

d ckexf

Google
yopp
20.09.2016
12:57:45
тьфу

короче, оно работает как папочки

:: мысленно замени на /

только с той разницей, что руби будет искать вверх по лексической области видимости, по всей текущей ветке иерархии. если ничего не найдёт, то будет NameError

лексически в первом случае у тебя иерархия :: -> A -> (CONST, B)

во втором :: -> A -> CONST; :: -> A::B

когда из ::A::B разрешается константа CONST (относительный путь), она будет разрешена в ::A::CONST

во втором случае, при разрешении из ::A::B разрешать некуда, потому что в текущей ветке CONST тупо нет

Иван
20.09.2016
13:05:13
во спасибо, так понятей

yopp
20.09.2016
13:07:15
где-то даже была статья на эту тему, я её сюда несколько раз даже кидал, но щас не могу сходу найти

Admin
ERROR: S client not available

Иван
20.09.2016
13:12:20
Если вдруг случайно наткнешься еще раз на статью, скинь, пожалуйста, еще раз. А то я пытался гуглить на эту тему, но как то даже и сформулировать не могу что хочу

yopp
20.09.2016
13:16:28
ruby constant resolution

Aldar
20.09.2016
13:16:58
поэтому в рубях можно вызывать constantize и получать имя класса)

из строки

Mikhail
20.09.2016
13:24:27
:: мысленно замени на /
вот это идеальное предложение))) Всегда думаю как обьяснить)))

???

yopp
20.09.2016
13:24:58
ну тут только разница в том, что файловая система не будет искать файл уровнем выше :)

Aldar
20.09.2016
13:24:59
папочки, как в виндавс

Mikhail
20.09.2016
13:25:20
да

Google
yopp
20.09.2016
13:25:45
а так да. CONST относительный путь, а ::CONST абсолютный

Mikhail
20.09.2016
13:25:51
я раньше на модулях делал всегда по рекомендации моего лида

А потом нарвался на конфликт и начал абсолютные юзать

как ты выше привел

::ParentClass::BaseClass::Class

Иван
20.09.2016
13:26:41
получается что при записи class A::B; end у нас не попадает ::A в лексическую область видимости?

Mikhail
20.09.2016
13:26:52
да

Всегда где у тебя класс не первый в дереве(иерархии) ставь ::КЛАСС чтобы попадать

yopp
20.09.2016
13:27:59
получается что при записи class A::B; end у нас не попадает ::A в лексическую область видимости?
проще объяснить так: там где в коде написано, там и разрешается

ojab
20.09.2016
13:28:01
я таки нагуглил что хотел

Иван
20.09.2016
13:28:19
yopp
20.09.2016
13:28:38
я таки нагуглил что хотел
это не про разрешение констант а про объектную модель

http://cirw.in/blog/constant-lookup.html

http://valve.github.io/blog/2013/10/26/constant-resolution-in-ruby/

http://jfire.io/blog/2011/01/21/making-sense-of-constant-lookup-in-ruby/

это у меня в закладках осталось

Mikhail
20.09.2016
13:29:54
Классная статья

yopp
20.09.2016
13:30:01
вот ещё: https://gist.github.com/kyrylo/6413067

Mikhail
20.09.2016
13:30:35
бесплатная раздача полезного контента)

у меня эта есть http://valve.github.io/blog/2013/10/26/constant-resolution-in-ruby/

Иван
20.09.2016
13:33:01
да про поиск констант вроде все относительно понятно, просто мне показалось странным что при той записи модуль А не считается охватывающим и в нем не происходит поиск

оказалось что его даже нет в области видимости

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