
yopp
25.07.2016
14:47:26
а они и так будут кидаться
ты можешь их наверх не прокидывать и сглатывать
если у тебя автоподключение
но в остальном, тебе не надо 1к эксепшенов в секунду перелопачивать :)

Google

ojab
25.07.2016
14:49:07
undefined method `login!' for #<E
да, криво смотрел. client.check и прочие команды оборачиваются в .with_login.
client.instance_variable_get(:@conn).connection.login! падает?

yopp
25.07.2016
14:50:05
а кажется чот было про более низкую работу с сокетами
в stdlib

Nikolay
25.07.2016
14:52:39

ojab
25.07.2016
14:52:46
:/

Nikolay
25.07.2016
14:53:37
:/
там ваще код какой-то странный, как по мне

I
25.07.2016
14:53:54

ojab
25.07.2016
14:54:04

Nikolay
25.07.2016
14:55:30
epp.rb:9:in `block in <main>': undefined method `login!' for main:Object (NoMethodError)

I
25.07.2016
14:56:01
а разве передать ничего не надо параметром?

Konstantin
25.07.2016
14:56:44
@igorpavlov практический пример https://github.com/jruby/jruby/issues/3808

ojab
25.07.2016
14:56:52
ну ок, щаз я попробую тут https://www.hexonet.net/software/epp-gateway-live-test заюзать

Google

Konstantin
25.07.2016
14:58:36
по этой же причине в jruby отключены по умолчанию бекирейсы для errno

Nikolay
25.07.2016
15:07:12
аа.. не могу https://pp.vk.me/c637431/v637431317/6ea/EM7G0zjz-i0.jpg
/home/mulder/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/epp-client-2.1.0/lib/epp-client/server.rb:274:in `login!': Authentication error (code 2200) (EPP::ResponseError)
я не понял как ему порт не дефолтно 700 скормить

ojab
25.07.2016
15:12:39
EPP::Client.new('test.user', 'test.passw0rd', 'epp.ispapi.net', port: 1700)
на этом тестовом сервере у меня client.check EPP::Domain::Check.new('google.com') нормально выполняется, кстати

Алиф
25.07.2016
15:14:26
i have this http://prntscr.com/bxb5fd
i like to add this for each project http://prntscr.com/bxb6g7
is anybody know how to do it
it ActiveAdmin

Nikolay
25.07.2016
15:15:46

ojab
25.07.2016
15:16:24

Nikolay
25.07.2016
15:18:15
эээ
что это за адское вложение
кажется перловый клиент тоже сокет открывать не хочет изза этой ошибки

ojab
25.07.2016
15:27:36
ну это мы достаём connection и вызываем его приватный метод .login!
api'шка странная у этого epp-client'a, да
зашибись, после логина request и response нельзя вытащить
ну да пофиг, понятно будет хотя бы — логинится или нет

Nikolay
25.07.2016
15:31:33
ну на отот гостевой гейт вроде ок
но то хз чье

ojab
25.07.2016
15:40:29

Eugene
25.07.2016
15:48:41
досыпал литературы, объединил 2 версии

Google

Konstantin
25.07.2016
15:49:27
ojab сейчас гляну
ojab хм, спасибо

ojab
25.07.2016
15:56:21
._.

Artemy
25.07.2016
16:51:26
есть вопрос, как построить в рельсах вот такое: надо предупредить юзера о том что его акк-т будет удален, через опр кол-во напоминаний, например раз в неделю, три напоминания и потом акк-т удаляется
я так думаю модель юзеров и напоминаний (порядок напоминания)

yopp
25.07.2016
16:52:04
счётчик сделать да и всё
и сбрасывать при входе, если надо живых оставлять

Artemy
25.07.2016
16:52:17
ну да вот в напоминании получается

yopp
25.07.2016
16:52:28
зачем в напоминании?

Artemy
25.07.2016
16:52:37
в юзере прям?

yopp
25.07.2016
16:52:50
eviction_notes_count, да
выселют-то не напоминание, а юзера

Artemy
25.07.2016
16:53:26
а во, еще же дата нужна посл напоминания ему

yopp
25.07.2016
16:53:51
считать от last_login_at

ojab
25.07.2016
16:53:58
А почему просто по дате последнего захода не считать?

Artemy
25.07.2016
16:54:05
причем напоминания есть пуш в мобилу и на мыло
у меня пока мысли такие:
1. крон джоба видит юзер давно не заходил, по дате логина
2. переводит его в статус удаляемых, и начинает слать уведомления

ojab
25.07.2016
16:55:06
крон джоба -> ActiveJob + whenever

Artemy
25.07.2016
16:55:27
3. уведомление - это дата, токен, и уходит на мыло

Google

Artemy
25.07.2016
16:56:05
4. если юзер перешел по ссылке из мыла, по токену выводим его из статуса удаляемых и затираем все напоминания
5. вторая джоба смотрит удаляемых и сколько напоминаний им было, если нужно напомнить еще и период уже подошел (по дате посл напоминания) то шлем очередное
6. если кол-во напоминаний уже достигло лимита то удаляем юзера
счетчик напоминаний по сути не нужет тогда, т.к. напоминания у нас есть в табле, просто смотрим дату последнего и нее танцуем

ojab
25.07.2016
16:58:39
зачем кол-во напоминаний считать? last_login + (max_notification_count * period_between_notifications) > current_time -> delete
да

yopp
25.07.2016
16:58:47
а потом чувак залогинился и ты бегаешь и удаляешь всякое

Artemy
25.07.2016
17:00:03
да идея с периодом на кол-во напоминаний хорошая

Admin
ERROR: S client not available

ojab
25.07.2016
17:00:26
прозреваю что подобная приблуда для devise уже написана
юзеры же devise'овые?
https://github.com/j-mcnally/devise_account_expireable
старовато

Artemy
25.07.2016
17:02:02
ну там не совсем так, не device
по итогу получается, второй вариант в юзера запизать кол-во напоминаний и дату последнего

ojab
25.07.2016
17:03:11
зачем? Это всё можно из даты захода и периода между напоминаниями высчитать

Artemy
25.07.2016
17:03:34
поясни?
мне просто нужно не больше скольки-то раз ему напомнить и через нужный период

ojab
25.07.2016
17:04:06
(current_time - last_login) / time_between_notifications

Artemy
25.07.2016
17:04:29
обе переменные настраиваиются в приложухе

Google

Artemy
25.07.2016
17:05:05

ojab
25.07.2016
17:05:30
в общем случае никак, даже если завести counter

Artemy
25.07.2016
17:05:49
ну вот говорю хранить дату последнего напоминания

ojab
25.07.2016
17:06:03
ты не определишь что последнее напоминание дошло
почта вполне может не дойти, как и push'и и что угодно

Artemy
25.07.2016
17:06:39
ну вот поэтому и дается несколько попыток раз в неделю
а так да если мыло мертвое, то можно грохать юзера
и все таки надо кол-во попыток, если например раньше было 5 напоминаний а потом админ решил что всего 3 надо и раз в день, то джоба должна грохнуть всех у кого уже было 3-4 напоминания
пусть не в юзере а отдельно, т.е. сущности что-то вроде user_id, counter, last_notify_at должно хватить

ojab
25.07.2016
17:10:08
нухз, по мне так лучше какую-нибудь эвристику прикрутить (не rocket science всё же), чем в базе дополнительную инфу сомнительной ценности держать
эвристику всё равно придётся прикручивать для кейсов "потом админ решил"

Artemy
25.07.2016
17:11:58
ну я понял мысль с пересчетом, обдумаю еще, поэтому и понаписал тут это все, спасибо за совет )

Michael
25.07.2016
17:12:31
Добрый вечер, подскажите как из переменной формата csv
body = "foo,bar,get\r\nfoo1,bar1,get1\r\nfoo2,,get2"
получить подобный хеш
{
{foo: 'foo1', bar: 'bar1', get: 'get1'},
{foo: 'foo2', bar: '', get: 'get2'}
}
из файлика я бы сделал что то вроде
CSV.read('file.csv', headers: true, col_sep: ',').map(&:to_hash)
а вот из переменной как?

ojab
25.07.2016
17:12:57
.map(&:to_hash) -> .to_h
CSV.parse(body)
CSV.parse(body, headers: true) то бишь
col_sep по умолчанию запятая, csv же

Michael
25.07.2016
17:14:51
ага вот даже как все просто, спасибо большое

ojab
25.07.2016
17:14:53
whoops, насчёт .to_h я погорячился, да

Michael
25.07.2016
17:15:09
да я понял
CSV.parse(csv.body, headers: true).map(&:to_hash)