@proRuby

Страница 248 из 1594
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

Dima
24.10.2016
16:28:09
свмое близкое — stdlib
ясно. спасибо

Ты автолоадер хочешь?
я просто осматриваюсь в ruby

А ну все разобрался есть 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
File - core, CSV - stdlib
да, и любую вещь из stdlib нужно реквайрить, но это не gem

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
зачем?

почему не написать свой метод?

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
на самом деле в flash можно положить массив сообщений
а девайс это нормально обрабатывает?

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

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

а девайс это нормально обрабатывает?
при чём здесь devise вообще?

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

при чём здесь devise вообще?
при том что хотят хакнуть девайс

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
зачем ему это как-то обрабатывать?
Что значит зачем ему это обрабатывать?

ты ожидаешь что у тебя придет строка а у тебя пришел массив

Мне что правда такие очевидные вещи надо расписывать?

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, как вариант

Страница 248 из 1594