
v
24.10.2016
15:25:53
ограниченный такой

Alexander
24.10.2016
15:26:19
анимизм
ну если кто-то представляет душу у фреймворка или ЯП — то он точно поехавший

v
24.10.2016
15:27:43
не душу. Одушевляет
"Представляет душу" - это по христиански как-то звучит

Google

Alexander
24.10.2016
15:29:13

Dima
24.10.2016
16:20:20
https://github.com/lob/lob-ruby/blob/master/examples/csv_postcards/create_postcards.rb#L3 - вот require 'csv' - это ведь не gem? это уже встроенный класс в ruby но его надо все равно подключать через require
я эксперементировал с bundler:
$:.unshift File.expand_path("../../lib", File.dirname(__FILE__))
require 'rubygems'
require 'bundler/setup'
require 'lob'
require 'csv'
и когда указываешь в Gemfile
gem 'csv'
Он говори что нет такого gem

v
24.10.2016
16:22:23
это модуль
рубишный, само собой

ojab
24.10.2016
16:23:13
class, если точнее

Dima
24.10.2016
16:25:00
class, если точнее
а у этих классов есть какое-то общее название. Вот File нам же не надо поключать, а csv надо.

ojab
24.10.2016
16:26:27
нет
свмое близкое — stdlib

Alex
24.10.2016
16:27:11

Dima
24.10.2016
16:28:09
А ну все разобрался есть stdlib: https://ruby-doc.org/stdlib-2.3.1/, а есть core https://ruby-doc.org/core-2.3.1/

Google

Dima
24.10.2016
16:31:52
File - core, CSV - stdlib

Alexander
24.10.2016
16:59:52

Dima
24.10.2016
17:05:08

Anon
25.10.2016
06:58:12
Дело такое: рельсы + devise, есть before_action: authenticate_user!, сессия может закончиться по разным причинам, как то вход с другого устройства или истечения временного лимита сессии. Мне нужно еще до этого authenticate_user! как-то определить, будет ли он выброшен и в случае если да то писать кое-какую инфу в печеньки обращаясь к параметрам запроса. Не знаю как можно это определить, гугл не помог

Alex
25.10.2016
07:02:03
Делаешь before_action где дергаешь аутентикейт
Само собой before action authenticate вырезаешь потому что дергаешь его в своем методе.

Anon
25.10.2016
07:04:47
а как чекать был ли он выброшен этим аутентикейтом?

Alex
25.10.2016
07:05:31
Ну посмотри реализацию, ну
Пора уже покопаться самому внутри библиотеки
Лезешь на гитхаб, выбираешь релиз и ищешь метод

kolas
25.10.2016
07:06:22
и выкинуть девайс на помойку

Alex
25.10.2016
07:06:40
Чем девайс не угодил?

kolas
25.10.2016
07:07:52
слишком громоздкий

Alex
25.10.2016
07:08:38
И что?

Anon
25.10.2016
07:08:57
не мне его выкидывать
Всё еще не откажусь от помощи, пока ничего не выходит

Alex
25.10.2016
08:30:33
что значит не выходит?
а что вы сделали и что не выходит?

Anon
25.10.2016
08:34:32
Я делаю overwrite authenticate_user! в нужном мне контроллере. Внутрення реализация девайса использует варден. Если через super вызывать то девайс/warden делают сайнаут редирект и уже никаких куки не поставить. Как чекнуть что юзер будет выкинут до того как его выкинуло и редиректнуло я так и не могу найти

Google

Anon
25.10.2016
08:37:11
Вкратце: после редиректа который происходит внутри authenticate_user! уже ничего не сделать, ни куки повесить, ни флеш даже назначить. До authenticate_user! неясно выкинет ли метод юзера или нет

Alex
25.10.2016
08:41:17
overwrite authenticate_user!
что значит overwrite?

Anon
25.10.2016
08:42:58
в смысле в контроллере def authenticate_user! и там вызываю супер
даже оверрайд, опечатался

Alex
25.10.2016
08:45:12
зачем?
почему не написать свой метод?

Anon
25.10.2016
08:45:59

Alex
25.10.2016
08:46:12
Само собой before action authenticate вырезаешь потому что дергаешь его в своем методе.
значит метод называется как то еще

Anon
25.10.2016
08:46:37
так суть та же, оверрайд с супером или свой метод вызывающий тот

Alex
25.10.2016
08:57:21
а, там метод дергает render да.
смотри реализацию тогда

Anon
25.10.2016
12:12:44
Окей, обмазал костылями ту проблему, теперь следующая

Anon
25.10.2016
12:13:33
именно
Когда юзера выкидывает из-за временного ограничения на сессию/потому что где-то еще вошел, девайс его выкидывает на страницу входа кидая флешем сообщение из конфига с ямлем
можно ли как-то изменить, а точнее расширить это поведение? Хочу по проверке на печеньки выводить еще один флеш, но не знаю куда это втыкается

Alex
25.10.2016
12:28:25
флэш сообщение может быть только одно
ну разве что у них id будет разный (error, warning etc)

ojab
25.10.2016
12:29:21
на самом деле в flash можно положить массив сообщений

Alex
25.10.2016
12:29:37

ojab
25.10.2016
12:29:47
и сделать в partial'e для флеша что-то в духе value = [value] if value.is_a?(String)

Google

ojab
25.10.2016
12:29:52
и рендерить массив

Alex
25.10.2016
12:30:00
положить можно т.к это просто значение в сессии

ojab
25.10.2016
12:30:15
и?

Alex
25.10.2016
12:30:26
И надо чтобы девайс этот массив нормально отработал

Admin
ERROR: S client not available

ojab
25.10.2016
12:30:27
как devise при этом должен обрабатывать flash?

Alex
25.10.2016
12:30:47
девайс при этом должен уметь обрабатывать это как массив а не одно сообщение
не?

ojab
25.10.2016
12:31:10
зачем ему это как-то обрабатывать?

Anon
25.10.2016
12:32:35
Я знаю что такое флеш и как оно работает, вопрос не в этом лол
вопрос в том, где изменять поведение выкидывания со страницы по таймлимиту/невалидной сессии

ojab
25.10.2016
12:34:23
а что конкретно интересует?
ссылку изменить?

Alex
25.10.2016
12:35:06
ты ожидаешь что у тебя придет строка а у тебя пришел массив
Мне что правда такие очевидные вещи надо расписывать?

ojab
25.10.2016
12:36:12

Google

Alex
25.10.2016
12:36:22
при чём здесь devise вообще?

Anon
25.10.2016
12:37:29
А какой метод в девайсе за это отвечает?
Если б я знал. Гугл после жобаскрипта меня что-то расстраивает, конечно на всё популярно много ссылок, но по каким-то узким моментам со второй страницы всё в японских закорючках

Alex
25.10.2016
12:37:40
тебе не гугл нужен
а сорсы девайса
как думаешь где их взять? я выше писал уже

ojab
25.10.2016
12:40:17
если тебя интересует именно authenticate_user!
но пока непонятно что тебе конкретно нужно

Alex
25.10.2016
12:41:24
это мастер кстати.

ojab
25.10.2016
12:42:19
соответственно дёргается request.env['warden'] (см. ниде по файлу) и все перенаправления делаются warden'ом
на самом деле я наврал, devise ловит throw(:warden) и делает https://github.com/plataformatec/devise/blob/master/lib/devise/failure_app.rb
так что проще всего — переписать кусок FailureApp, но не уверен что ты этого хочешь

Anon
25.10.2016
12:46:37
дээ
Я тут придумал еще пару костылей которые мне решат эту задачу
Так что норм, спасибо

Alexander
25.10.2016
18:54:32
#работа в офисе, г. Санкт-Петербург, зп по результатам собеседования
Подробнее: http://rubyjobs.ru/vacancies/4501

Anon
26.10.2016
06:11:26
И я снова к вам с вопросами. В контроллере стоит before_action :authenticate_user!
но в случае, если сессия по каким-то образом заканчивается, выполнение программы даже не доходит до этого хука, хотя мне казалось именно он выбрасывает. Куда мне писать то, что должно произойти перед выбрасыванием?

ojab
26.10.2016
06:13:52
в prepend_before_action, как вариант