Size: a a a

Saint P Ruby Community

2020 November 26

RI

Rustam Ibragimov in Saint P Ruby Community
на весь твой код. это напрягает, когда нужны разные конфигурации сериализации
источник

RI

Rustam Ibragimov in Saint P Ruby Community
только  если под мьютексом деражть интерфейс доступа до oj - тогда проблема глобалки хоть как-то решается.
источник

VA

Vsevolod Avramov in Saint P Ruby Community
Rustam Ibragimov
а чем простой JSON не угодил?
М-м-м.. Ну как-то мне не нравится что всё выглядит вот так в классе:
def as_json(object)
 {
   id: object.id,
   name: object.name,
   entities: object.entities.map{|e| entity_as_json(e) }
 }
end

def entity_as_json(entity)
 {
   id: entity.id
   description: entity.description
 }
end

Может как-то через классы это выразить. Типа как у ActiveModelSerializer. Но он медленный.
Или как у GrapeEntity. Но он тоже не подходит.
Что взять, чтобы красиво выглядело - хз
источник

RI

Rustam Ibragimov in Saint P Ruby Community
Pavel Peganov
Что-то вроде Oj что ли?
В смысле, просто что-то, что преобразует готовую рубишную структурку из хэшей, массивов и скаляров, в текст на JSON?
Если да, то Oj ок для приложения. Для гема я б склонялся в сторону multi_json, чтобы сериализатор мог выбрать пользователь библиотеки самостоятельно.
я бы для гемов еще посоветовал иньекцию зависимости юзать, тогда вообще не проблема какой сериализатор использовать. а по дерфлту юзать в геме простой жсон. так будет гибкий выбор без ненужных зависимостей 👍🏻
источник

RI

Rustam Ibragimov in Saint P Ruby Community
Vsevolod Avramov
М-м-м.. Ну как-то мне не нравится что всё выглядит вот так в классе:
def as_json(object)
 {
   id: object.id,
   name: object.name,
   entities: object.entities.map{|e| entity_as_json(e) }
 }
end

def entity_as_json(entity)
 {
   id: entity.id
   description: entity.description
 }
end

Может как-то через классы это выразить. Типа как у ActiveModelSerializer. Но он медленный.
Или как у GrapeEntity. Но он тоже не подходит.
Что взять, чтобы красиво выглядело - хз
посмотри в сторону surrealist
источник

RI

Rustam Ibragimov in Saint P Ruby Community
гемчик такой, со схемами сериализации
источник

RI

Rustam Ibragimov in Saint P Ruby Community
не придется в принцип етакой код писать, который ты показал :)
источник

P

Paul in Saint P Ruby Community
Vsevolod Avramov
М-м-м.. Ну как-то мне не нравится что всё выглядит вот так в классе:
def as_json(object)
 {
   id: object.id,
   name: object.name,
   entities: object.entities.map{|e| entity_as_json(e) }
 }
end

def entity_as_json(entity)
 {
   id: entity.id
   description: entity.description
 }
end

Может как-то через классы это выразить. Типа как у ActiveModelSerializer. Но он медленный.
Или как у GrapeEntity. Но он тоже не подходит.
Что взять, чтобы красиво выглядело - хз
в отдельный класс вынести и там похоронить
источник

RI

Rustam Ibragimov in Saint P Ruby Community
Paul
в отдельный класс вынести и там похоронить
именно так  в сюрреалисте и сделано
источник

RI

Rustam Ibragimov in Saint P Ruby Community
Vsevolod Avramov
М-м-м.. Ну как-то мне не нравится что всё выглядит вот так в классе:
def as_json(object)
 {
   id: object.id,
   name: object.name,
   entities: object.entities.map{|e| entity_as_json(e) }
 }
end

def entity_as_json(entity)
 {
   id: entity.id
   description: entity.description
 }
end

Может как-то через классы это выразить. Типа как у ActiveModelSerializer. Но он медленный.
Или как у GrapeEntity. Но он тоже не подходит.
Что взять, чтобы красиво выглядело - хз
в сюрреалисте у тебя будет и декомпозировано, и схема сериализации наглядная, и удобно и красиво и приятно :)
источник

RI

Rustam Ibragimov in Saint P Ruby Community
там под капотом oj по умолчанию кажется. то есть уже есть буст по скорости :)
источник

VA

Vsevolod Avramov in Saint P Ruby Community
Спасибо, гляну в этом направлении
источник

RI

Rustam Ibragimov in Saint P Ruby Community
источник

RI

Rustam Ibragimov in Saint P Ruby Community
линк на него)
источник

v

vveare138 in Saint P Ruby Community
источник

RI

Rustam Ibragimov in Saint P Ruby Community
тоже довольно таки хорошее решение
источник

v

vveare138 in Saint P Ruby Community
ага, из коробки есть coercion на dry-types
источник

VA

Vsevolod Avramov in Saint P Ruby Community
Спасибо. И то и то интересно, но мне больше representable понравился
источник

KB

Kirill Bobykin in Saint P Ruby Community
Привет, хелп, я ищу какой-нибудь слак апп который умеет в github packages чтобы он реагировал на новые пакеты и обновления пакетов, кто-то может знает такие?
источник

m

max in Saint P Ruby Community
можешь попробывать сделаь github action, реагирующий на packages, и отсылающий сообщения в слак
источник