
Tim
19.04.2017
06:29:36
Поцоны, приведите пример когда динамическое метапрограммирование имеет преимущество над статическим. Один любитель компилируемых языков мне сказал, что динамическое создание методов можно всегда заменить статическим, тк ты всегда знаешь какие методы вызываются внутри программы на этапе компиляции

Mihhail
19.04.2017
06:32:10
преимущество сомнительно, в долгосрочной перспективе это проблемы для "следующего поколения". Перимущество в том, что можно написать модуль, в котором ты не знаешь что ему прилетает и всё равно обработать метод. Любитель компилируемых языков скорее всего хочет сказать что всегда можно сделать def foo(bar) вместо обработки def foo_bar()
Это как бэ удобно, библиотеки можно писать готовые к очень многому и на это тратится мало времени

Tim
19.04.2017
06:35:04
Нет, он хочет сказать что если ты делаешь "метаметод" foo_* где * это любая строка, и он гдето вызывается в проге, то можно будет это скомпилить. Типа увидел что вызываются методы foo_bar и foo_baz, сразу скомпилил их

Google

Tim
19.04.2017
06:35:28
Типа вопрос чем лучше создавать их динамически, а не статически

Mihhail
19.04.2017
06:35:30
ага, а если это библиотека то откуда знать что туда приедет?

Tim
19.04.2017
06:35:54
Перекомпиливать библиотеку видать

Mihhail
19.04.2017
06:36:10
а если это приезжает в рантайме?

Tim
19.04.2017
06:36:38
Через send?

Mihhail
19.04.2017
06:36:52
это уже мета =)

Tim
19.04.2017
06:37:01
Так это же foo(bar), foo(baz)
Ну я понял, статическое метапроганье сковывает руки

Mihhail
19.04.2017
06:37:49
ну это подход личный, когда перегружать аргументами, а когда использовать мета прямо в вызове методов
я вижу в мета некий вред для удержания кода быть "простым", дебаг тоже будет особая песня. Но вот я часто использую такие решения например в общении с routes, потому что там за меня уже решили, что всё делается через имена методов
BTW, как мне повлиять на request.uuid в rspec? Там Request заменили на TestRequest и он с хедеров не читает uuid

Alex
19.04.2017
08:40:04
А откуда этот uuid приходит?

Mihhail
19.04.2017
08:40:42
X-Request-Id в заголовке

Google

Mihhail
19.04.2017
08:41:10
мы так от LoadBalancer'a запросы идентифицируем для дальнейших разбирательств
Ну прямо хоть делай интерфейс чтобы его мокать и получать этот uuid
http://api.rubyonrails.org/classes/ActionDispatch/Request.html#method-i-uuid
http://api.rubyonrails.org/classes/ActionDispatch/TestRequest.html а вот у него там вообще пусто

Alex
19.04.2017
08:57:06
Думаю стоит создать issue если его еще нет.
Можно даже заманкипатчить класс временнл

Mihhail
19.04.2017
09:00:30
ясно понятно, пойду писать PR, функция не очень так чтобы сложная

Alex
19.04.2017
09:01:10
Ну видимо никто не рассчитывал что uuid юзаются кем то для бизнеслогики

Lupsick
19.04.2017
10:40:09

Mihhail
19.04.2017
10:40:31
ну как бэ, но в доках есть его обработчик

Lupsick
19.04.2017
10:40:33
а все кастомные хеадеры читаются особым способом
это как раз и правильно

Mihhail
19.04.2017
10:41:43
в общем то я согласен, как теперь rspec убедить выдать мне uuid на несуществующий метод?
можно абстрагироваться до "как замокать метод которого не было" =)

Oleg
19.04.2017
10:45:19
Эммм, allow_any_instance_of(Class).to receive(:method).and_return(uuid) ?

Mihhail
19.04.2017
10:50:55
Ну вот странно, я так пробовал, сейчас заработало
Всем спасибо, столько шума и всё так решилось просто

Maximus
20.04.2017
08:51:47
Привет. У меня на ноуте стоят две системы - Win 10 и Linux Mint.
Так я работаю в принтцентре, то печать большинства форматов
настроена на Windows - документы, фотошоп, компас и т.д.
И в тоже время хочеться учить, пилить что-то на руби-рельсах, фениксе-
эликсире, и это очень неудобно уходить в гибернацию, потом в загрузку виндовс
и наооборот.
Можно ли как-то создать образ Винды, которая уже установлена и загружать
ее из-под виртуальной машины, пользуясь при этом Минтом?

Felix
20.04.2017
08:52:46
а чем тебя не устраивает WSL?

Aldar
20.04.2017
08:53:24

Google

kolas
20.04.2017
08:54:18
да, проще виртуалку линукса замутить

Maximus
20.04.2017
08:55:22

kolas
20.04.2017
08:55:23
только не работай в шаред фолдер, там могут быть баги

Felix
20.04.2017
08:56:15

Maximus
20.04.2017
08:56:57

Alexander
20.04.2017
08:58:04
сиране nextion editor не может в линух

Alex
20.04.2017
09:02:40

Плюшка
20.04.2017
09:03:22

Alexander
20.04.2017
09:10:50

Alex
20.04.2017
09:11:28

Felix
20.04.2017
09:11:52
баш есть

Alexander
20.04.2017
09:11:53

Felix
20.04.2017
09:11:58
есть баш — бери и ебашь

Alexander
20.04.2017
09:12:03
GUI линукса на винде — ну такое

Alex
20.04.2017
09:12:04
тогда зачем мне винда?

Alexander
20.04.2017
09:12:20

Alex
20.04.2017
09:12:43
я думал мы обсуждаем мое выражение что линупс удобнее WSL

Google

Alex
20.04.2017
09:13:19
от WSL есть имхо смысл когда у тебя какой то софт жестко на венду завязан

Alexander
20.04.2017
09:13:30
потому что вообще — WSL удобнее тупо из-за лучшей интеграции и более простой установки

Admin
ERROR: S client not available

Alex
20.04.2017
09:14:06
ладно это не лучший чат для подобного спора.

Alexander
20.04.2017
09:14:23

Alexander
20.04.2017
09:15:18
но говно

Alex
20.04.2017
09:15:44
я предлагаю в этом чате не обсуждать, а просто согласиться что есть разные платформы. Все же это больше платформосрач.

Alexander
20.04.2017
09:18:30
тогда тут будет тихо %)

Alexander
20.04.2017
09:22:10

Alex
20.04.2017
09:23:41
к тому же не по теме чата.

vc93
20.04.2017
20:47:50
привет, такой вопрос. руби перед построчным выполнением кода как-то проверяет файл на все константы и символы? зачем это нужно, если метод или константу всё равно нельзя вызвать до обьявления?
sym_as_str = Symbol.all_symbols.map { |x| x.to_s }
p sym_as_str.include?('my_method') #true
#still throws error
#my_method
def my_method
end
#okay
my_method

Sergey
20.04.2017
21:11:21

Klim
20.04.2017
21:22:16
учитывая факт, что программа парсится и преобразуется в YARV код, технически да - проверяет.

Nursultan
21.04.2017
05:39:20
у кого нибудь есть опыт установки carrierwave?

Alex
21.04.2017
05:40:59
а в чем проблема?

Google

Atman
21.04.2017
05:57:02
?

Nursultan
21.04.2017
06:27:05
а в чем проблема?
https://www.youtube.com/watch?v=YpF_4uciMvg иду по этому мануалу. делаю все как тут говорится но на 2:40 он пишет что то в модели в разеделе attr_accessible. я прописываю все также но у меня сервак не запускается и спрашивает Did you mean? attr_accessor.
разобрался. что то затупил что attr_accessible из рельс убрали а видос реально старый)

Alex
21.04.2017
06:43:32
Railscasts старый

Mihhail
21.04.2017
06:53:34
даже по скриншоту видно, что касту очень много лет

Alex
21.04.2017
07:22:24
у кого есть proxy для watir? нужно замокать watir в тестах.
watir используется на на локальном приложении а на чужом сайте.

Felix
21.04.2017
18:29:42
а подскажите, какой гем использовать для ролей? надо, чтобы админ мог сам назначать несколько ролей юзерам

ojab
21.04.2017
18:30:34
cancancan

Tim
21.04.2017
18:30:43
^

Alexander
21.04.2017
18:31:04
Таблица ролей + pundit

Felix
21.04.2017
18:31:08
там вебинтерфейс есть для редактирования ролей?)
cancancan
а как там в рантайме поменять роли юзеру?

ojab
21.04.2017
18:37:40
https://github.com/CanCanCommunity/cancancan/wiki/Role-Based-Authorization