
Alex
19.01.2017
11:09:21
взять rspec, кодить как под minitest

kolas
19.01.2017
11:16:12
разве кодят под тесты?

trickster
19.01.2017
11:23:25
гаес
а можно как-нибудь по другому записать

Google

trickster
19.01.2017
11:23:33
symbols.each { |sym| send sym }

Alex
19.01.2017
11:23:50

trickster
19.01.2017
11:23:55
тоесть напирмер при вызове метода можно symbols.each &:to_s

Alex
19.01.2017
11:24:03
а я сейчас смотрю на спековый тест, а ощущение что писали как под минитест

trickster
19.01.2017
11:24:55
мне нужно вызывать по одному методу в другом блоке
execute_with_dump(symbols.join("_")) do
symbols.each { |sym| send sym }
end
нету другой краткой записи?

Alexander
19.01.2017
11:29:12

trickster
19.01.2017
11:29:32
как?

Dmitriy
19.01.2017
12:07:33
а существует такой подход, что например приложение на рельсах генерирует только json а на стороне клиента уже при помощи javascript этот json приводится в читабельное состояние?

I
19.01.2017
12:10:51
да
особенно, если на фронте куча функционала

Google

Dmitriy
19.01.2017
12:14:38
понял

I
19.01.2017
12:20:38
что-то он задумал =)

Alex
19.01.2017
12:21:12
Но я тебе не советую, лол.

Dmitriy
19.01.2017
12:25:10
а подскажите как добавить данные вконец хэша

I
19.01.2017
12:26:05
а у хэша есть конец?
наверное, тебе нужен merge

Dmitriy
19.01.2017
12:26:17
ну просто добавить
спасибо!

Dima
19.01.2017
12:54:50
а подскажите как добавить данные вконец хэша
ГЛОБАЛЬНЫЙ СОВЕТ:
в ruby все обжект, если надо что-то про что-то узнать, скорее всего это метод чего бы то небыло: https://ruby-doc.org/ - версия руби, и там уже пробежаться по методам

Dmitriy
19.01.2017
12:55:24
@lbvf50 спасибо!

Dima
19.01.2017
13:01:58
@lbvf50 спасибо!
Например придя из Cи подобных языков, часто возникает вопросы о том как себя ведут "операторы", а тут оператор это метод. И как пример если надо разобраться что значит "/test/ ~= 'I love something'" - то мы просто смотрим что слева? Слева у нас регулярное выражение, значит констркуция ~= это медот регулярного выражения: https://ruby-doc.org/core-2.4.0/Regexp.html#method-i-3D-7E

Tim
19.01.2017
13:04:42
как заинклюдить enumerable чтобы отзывался класс, а не инстанс?
То есть чтобы можно было использовать так: MyClass.each, MyClass.map и т.д.
и определять def self.each(&block)
когда пишу include Enumerable, то он подразумевает инстанс

Alexander
19.01.2017
13:05:41

Tim
19.01.2017
13:06:36
а, понял, надо extend

Alexander
19.01.2017
13:06:41

Tim
19.01.2017
13:07:08
ты нервничаешь, успокойся

Google

Alexander
19.01.2017
13:07:21
потом ваш же… кхм… код поддерживать другим разработчикам, пожалейте их

Tim
19.01.2017
13:09:01
а что плохого, кроме того, что это "не ООП"?

Alexander
19.01.2017
13:09:32
ну и как бы нестандартное поведение, тоже ухудшает понимание и восприятие

Tim
19.01.2017
13:10:01
Tenant
суть в том, что я хочу чтобы можно было бесшовно что-то выполнять для всех тенантов
переключаясь каждый раз

Alexander
19.01.2017
13:11:14
Tenant
интересно.
вот обычно как делают, например: Tenant.all.each
то есть есть метод классовый all, который возвращает _обычный_ массив экземпляров Tenant
чем плохо?

Tim
19.01.2017
13:11:39
тем, что надо переключаться

Alexander
19.01.2017
13:11:52
на что? с чего? что за переключение?

Tim
19.01.2017
13:12:20
переключаться между тенантами

Tim
19.01.2017
13:12:36
Apartment::Tenant.switch!

Alexander
19.01.2017
13:13:08
просто пойми, помимо того, что «это не ООП», возможно ты в целом не очень правильно строишь структуру проекта, и можно всё упростить
я тоже думал «а что такого, что метод больше 10 LOC?», а потом, когда начал умещаться, понял

Tim
19.01.2017
13:15:12

Alexander
19.01.2017
13:15:21
обычная длина метода часто влияет на классы (их разделение, их количество), на общую структуру проекта. хотя на выхлопе может быть одинаковый результат, но код может более понятным или менее

Tim
19.01.2017
13:15:22
считай таблицу выбирает

Alexander
19.01.2017
13:15:36

Google

Alexander
19.01.2017
13:16:10
я просто понятия вообще не имею: это консольная интерактивая тулза, или сайт, или что
и если ты на сайте переключаешь — то зачем и где

Tim
19.01.2017
13:16:44
мне надо воркер сделать, который в определенное время проходит по всем тенантам и что-то внутри делает

Alexander
19.01.2017
13:17:29
во, воркеры. то есть фоновые задачи? чёрт, с этим я не работал ещё, только планирую. но всё же… через какую либу делаешь? или всё сам?
или стоп

Tim
19.01.2017
13:18:02
whenever

Alexander
19.01.2017
13:18:33
почему в воркере нельзя написать Tenant.all.each? в блоке никакого switch тупо получаешь каждого тенанта по одному и делаешь с ним что хочешь
о, cron

Admin
ERROR: S client not available

Tim
19.01.2017
13:19:26
потому что специфика задачи подразумевает переключение на таблицу каждого тенанта

Alexander
19.01.2017
13:19:53

Tim
19.01.2017
13:20:01
postgres

Alexander
19.01.2017
13:20:07
БД, ок
у каждого Tenant своя таблица — вот здесь уже всё пошло не так, кмк

Tim
19.01.2017
13:20:48
да, и я переключаюсь между таблицами

Alexander
19.01.2017
13:20:56
я, конечно, не супер-спец по БД, но такой подход прославился в нулевые, а потом вроде стал неактуальным

Tim
19.01.2017
13:21:46
аргумент

Alexander
19.01.2017
13:22:22
то, что передаёшь ему, заранее знаешь? в виде массива, например
ты по этому и хочешь итерировать в классе, наверняка

Tim
19.01.2017
13:23:17
не, я просто айдишник

Google

Tim
19.01.2017
13:23:21
передаю

Alexander
19.01.2017
13:23:43
id таблицы?

Tim
19.01.2017
13:24:33
айдишник тенанта

Alexander
19.01.2017
13:25:59
блин, ладно, у меня пока кончается свободное время, и инфы мало, но я бы на твоём месте подумал:
— нужен ли switch, или можно без него (наверняка можно)

Alex
19.01.2017
13:30:26
Блин, кучка абстракций которые друг дружку дергают напоминает мне бюрократию.
"это не мое, вам туда"
"нет вам туда"
"как? вы не знаете что вам туда? это же очевидно!"

Alexander
19.01.2017
13:31:52
а у меня вот одна вещь, которая за всё отвечает, с чем-то плохим ассоциируется

Alex
19.01.2017
13:32:14
щито?
вот есть у тебя сервис который что то делает, нехрен разбивать его на четыре штуки
которые туда сюда гоняют, а в целом делают то что должен был один сервис делать

Alexander
19.01.2017
13:33:37
смотри, вот у тебя один сервис, вот другой

I
19.01.2017
13:33:48
а между ними паравозики бегают

Alexander
19.01.2017
13:33:49
они идут в одну таблицу базы, например, или чёт такое
не будешь же ты raw запросы писать
оп — абстракция, модель

Alex
19.01.2017
13:34:04
не, у тебя есть сервис ChargeUser, вот пускай он и сам ChargeUser

Alexander
19.01.2017
13:34:07
про валидацию говорить?)