@proRuby

Страница 392 из 1594
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
разве кодят под тесты?
Ты когда тест пишешь на rspec, стоит придерживаться то как обычно пишукт тест на рспеке

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
тоесть напирмер при вызове метода можно symbols.each &:to_s
именно данный пример бессмысленен, а вообще — да

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
что-то он задумал =)

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
ГЛОБАЛЬНЫЙ СОВЕТ: в ruby все обжект, если надо что-то про что-то узнать, скорее всего это метод чего бы то небыло: https://ruby-doc.org/ - версия руби, и там уже пробежаться по методам
совет: можно часто посещать ссылки с общим названием, заменяя класс, и попадать всегда на нужную страницу последней версии руби: пример: https://ruby-doc.org/core/Hash.html и браузер сам начнёт подсказывать

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

Alexander
19.01.2017
13:06:41
как заинклюдить enumerable чтобы отзывался класс, а не инстанс? То есть чтобы можно было использовать так: MyClass.each, MyClass.map и т.д.
вопрос: зачем? это функциональное программирование, Ruby больше по ООП угорает, вот и пиши в ООП

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
Apartment::Tenant.switch!
так, ещё интереснее. подобного switch не видел. что он делает? переключаться перед чем?

просто пойми, помимо того, что «это не ООП», возможно ты в целом не очень правильно строишь структуру проекта, и можно всё упростить

я тоже думал «а что такого, что метод больше 10 LOC?», а потом, когда начал умещаться, понял

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
потому что специфика задачи подразумевает переключение на таблицу каждого тенанта

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
я, конечно, не супер-спец по БД, но такой подход прославился в нулевые, а потом вроде стал неактуальным

да, и я переключаюсь между таблицами
так, а switch принимает аргумент или он автоматически внутри себя их перебирает?

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
про валидацию говорить?)

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