@rubylang

Страница 489 из 1684
Alex
13.10.2016
16:04:43
рэббэ на рельсах

Mikhail
13.10.2016
16:05:49
Сара одобряет

ojab
13.10.2016
16:09:00
https://gist.github.com/ojab/42364d67eaf2cc0f371b5c697b8f503d

хз как это оптимизируется в процессе, правда

Google
ojab
13.10.2016
16:09:35
но тем не менее при (&:) не дёргается блок, а метод напрямую вызывается

Igor
13.10.2016
16:10:30
об этом я и говорил выше

поэтому он и должен быть быстре

нет промежуточного блока

Konstantin
13.10.2016
16:10:59
я тут решил посмотреть как сделать так, чтобы в activerecord аттрибут кастился не в дефолтный, а в мой тип

простой ответ никак

Igor
13.10.2016
16:11:27
serialize :D

азазаза

Konstantin
13.10.2016
16:11:38
http://blog.arkency.com/2016/03/custom-typecasting-with-activerecord-virtus-and-dry-types/

да не

вот я взял, сделал свой тип, унаследовался от ActiveRecord::ConnectionAdapters::PostgreSQL::OID::Json.

прикол в чем? в том, что там внутри ActiveSupport::JSON.decode

который внутри дергает JSON.parse

Google
Konstantin
13.10.2016
16:12:56
так вот в AS::JSON нельзя прокинуть параметр в JSON.parse

Konstantin
13.10.2016
16:13:10
а если ты будешь парсить напрямую, то не будут правильно конвертиться даты

https://github.com/rails/rails/blob/fb6bbe7e90e6eab18db56476bb9358b2ee88d677/activesupport/lib/active_support/json/decoding.rb#L24

Alex
13.10.2016
16:13:21
обычный геттер сеттер не помогут?

Igor
13.10.2016
16:13:22
ясно

Konstantin
13.10.2016
16:13:24
потому что приватный API

Igor
13.10.2016
16:13:24
понятно

ну маппинг типов

у тебя в постгрес адаптере же

Антон
13.10.2016
16:13:48
Konstantin
13.10.2016
16:14:03
обычный геттер сеттер не помогут?
заколхохить можно, но я хотел как у белых людей

Alex
13.10.2016
16:14:08
ну рабишахта вполне хороша
Тормозит как и все джетбрайновые идешки

Artur
13.10.2016
16:14:38
Тормозит как и все джетбрайновые идешки
Ну так ты на компьютере код пиши, а не на микроволновке, и ок будет.

Igor
13.10.2016
16:14:38
рабишахта ничем не лучше чем хорошо обмазанный плагинами атом или сабл

Alex
13.10.2016
16:14:46
заколхохить можно, но я хотел как у белых людей
имхо лучше создать геттер / сеттер с другим названием.

Alex
13.10.2016
16:15:01
иначе потом можно наткнуться на тормоза при попытке пройтись по параметру у моделек так 300

костыльно имхо
Что именно костыльно?

Google
Igor
13.10.2016
16:15:32
ну это по факту костыль сам по себе

Konstantin
13.10.2016
16:15:34
@Fedcomp суть в том, что так будет создаваться Hash, потмоу ты его будешь конвертить в твой объект. лишняя работа

Igor
13.10.2016
16:15:43
поэтому и костыльно

Konstantin
13.10.2016
16:15:44
я хочу сразу парсить в мой объект

Mikhail
13.10.2016
16:15:56
холивардей сегодня да

Igor
13.10.2016
16:16:07
это да

Alex
13.10.2016
16:16:12
у тебя критичное к производительности место?

Konstantin
13.10.2016
16:16:44
с таким подходом и получается "руби тормозит"

Igor
13.10.2016
16:16:45
зачем терять производительность на костылях?

Alex
13.10.2016
16:17:05
чего сразу на ассемблер не переключиться не понимаю.

Igor
13.10.2016
16:17:42
чего сразу на счеты не переключится не понимаю

Alex
13.10.2016
16:17:47
геттер и опционально, сеттер в модельке это вообще не костыль.

Alex
13.10.2016
16:18:00
Производительность программиста > производительность кода, в большинстве случаев.

Igor
13.10.2016
16:18:00
это самый натуральный костыль

нет

Alex
13.10.2016
16:18:12
это самый натуральный костыль
ты еще весь AR назови костылем

зачем он нужен если базу можно сразу запрашивать

сразу производительность повышается.

Igor
13.10.2016
16:18:37
wut?

Google
Alex
13.10.2016
16:18:44
А при .update что будет?
А что при update будет? не надо называть их тем же именем что и аттрибут, а то будет каша.

Igor
13.10.2016
16:19:02
какие-то левые аргументы идут в бой

писать геттер сеттер

Alex
13.10.2016
16:19:11
зачем терять производительность на костылях?

Igor
13.10.2016
16:19:13
и два раза парсить json

это у тебя не костыль

Alex
13.10.2016
16:19:31
форкнуть/замонкейпатчить рельсы VS просто сделать геттер и сеттер

Admin
ERROR: S client not available

Igor
13.10.2016
16:19:34
ну лан

Alex
13.10.2016
16:19:37
что проще поддерживать? что будет работать стабильнее?

Igor
13.10.2016
16:19:47
при публичном API

первый вариант во всем лучше

Alex
13.10.2016
16:20:02
у тебя есть публичное апи?

Igor
13.10.2016
16:20:07
мне неведомо

Alex
13.10.2016
16:20:20
судя по всему нет, иначе бы спора не было.

А раз нет то почему ты игнорируешь мое сообщения я хз

форкнуть/замонкейпатчить рельсы VS просто сделать геттер и сеттер

что проще поддерживать? что будет работать стабильнее?

Пощади программеров который будут потом твой код поддерживать.

Konstantin
13.10.2016
16:21:09
а где речь шла про форкнуть и манкипатчить?

Google
Alex
13.10.2016
16:21:29
а как ты сделаешь чтобы не было двойного парсинга?

Konstantin
13.10.2016
16:22:05
http://blog.arkency.com/2016/03/custom-typecasting-with-activerecord-virtus-and-dry-types/

делаешь свой тип

в нем парсишь как хочешь

Alex
13.10.2016
16:22:20
о, круть.

ojab
13.10.2016
16:22:22
я тут решил посмотреть как сделать так, чтобы в activerecord аттрибут кастился не в дефолтный, а в мой тип
https://github.com/rails/rails/blob/8c752c7ac739d5a86d4136ab1e9d0142c4041e58/activerecord/lib/active_record/attributes.rb кстати говоря

Igor
13.10.2016
16:22:25
https://github.com/rails/rails/blob/2db8514d218068cae7b37b7939ed3ba812407105/activerecord/lib/active_record/type/internal/abstract_json.rb

Konstantin
13.10.2016
16:22:55
у JSON.parse есть аргумент object_class

ojab
13.10.2016
16:23:03
а, по ссылке оно и есть

Konstantin
13.10.2016
16:23:57
да

Igor
13.10.2016
16:24:25
а attribute не работаент?

Konstantin
13.10.2016
16:24:26
https://github.com/rails/rails/blob/fb6bbe7e90e6eab18db56476bb9358b2ee88d677/activesupport/lib/active_support/json/decoding.rb#L20

проблема вот тут

decode не принимает opts

Igor
13.10.2016
16:24:35
class StoreListing < ActiveRecord::Base attribute :my_string, :string, default: "new default" end

Konstantin
13.10.2016
16:24:40
и не прокидывает в JSON.parse

а если заюзать JSON.parse напрямую, то надо будет самому конверить даты или дергать приватное АПИ https://github.com/rails/rails/blob/fb6bbe7e90e6eab18db56476bb9358b2ee88d677/activesupport/lib/active_support/json/decoding.rb#L24

иначе будет неконсистентно и сюрпризы

почему везде даты парсятся, а тут нет

Alex
13.10.2016
16:26:30
А в модуле точно приватное апи? я вроде натыкался что там private не работает

Страница 489 из 1684