Size: a a a

Ruby, Rails, Hanami | dry-rb

2019 December 18

ЕЗ

Евгений Зубаиров in Ruby, Rails, Hanami | dry-rb
Звучит как костыль.
источник

MC

Mikhail Churakov in Ruby, Rails, Hanami | dry-rb
Sergey
сколько пишу на рельсах, никогда не сталкивался с тем, что нельзя просто взять и переопределить валидацию
можно написать метод для валидации и переопределять его
источник

MC

Mikhail Churakov in Ruby, Rails, Hanami | dry-rb
validate :my_method
источник

S

Sergey in Ruby, Rails, Hanami | dry-rb
а он чем-то будет отличаться от validates(*fields_validation_list, presence: true, if: :condition?) ?
источник

S

Sergey in Ruby, Rails, Hanami | dry-rb
Евгений Зубаиров
Звучит как костыль.
насколько я понял, там только костылями люди и обходятся.
источник

ЕЗ

Евгений Зубаиров in Ruby, Rails, Hanami | dry-rb
Ну, если речь идет про валидации в AR-моделях, то да, такой подход очень быстро приводит к костылям для костылей.
Потому менее болезненным является вынос валидаций куда-нибудь наружу, как правило в конкретную операцию, меняющую данные.
источник

MC

Mikhail Churakov in Ruby, Rails, Hanami | dry-rb
Sergey
а он чем-то будет отличаться от validates(*fields_validation_list, presence: true, if: :condition?) ?
боюсь ошибиться. но там просто коллекция валидаторов и всё
источник

MC

Mikhail Churakov in Ruby, Rails, Hanami | dry-rb
ты не можешь переопделелить добавленный в коллекцию объект, ну точнее конечно можешь, но это геморой ...
источник

MC

Mikhail Churakov in Ruby, Rails, Hanami | dry-rb
можно найти этот валидатор в коллеции и в рантайме его изменить ... но зачем так жить :)
источник

Jøhn Đøꝩsøn in Ruby, Rails, Hanami | dry-rb
Alexander Susikov
Если взять yabeda-rails то можно и без него обойтись 🙂
yabeda-rails можно руками к конкретному контроллеру прицепить, или она сама ко всем контроллерами цепляется? Я по коду не очень понимаю.
источник

AS

Alexander Susikov in Ruby, Rails, Hanami | dry-rb
Jøhn Đøꝩsøn
yabeda-rails можно руками к конкретному контроллеру прицепить, или она сама ко всем контроллерами цепляется? Я по коду не очень понимаю.
Именно yabeda-rails сама ко всем - гем добавляет миддлеваре в рельсу, в котором измеряется время запроса и количество запросов
источник

AS

Alexander Susikov in Ruby, Rails, Hanami | dry-rb
Если тебе не надо это все, то с помощью просто yabeda регистрируешь метрики и где надо их добавляешь
источник

AS

Alexander Susikov in Ruby, Rails, Hanami | dry-rb
Хоть на каждую строчку
источник

AS

Alexander Susikov in Ruby, Rails, Hanami | dry-rb
Есть проект yabeda-example где все это дело показано в связке - рельсовое приложение с yabeda, yabeda-rails, yabeda-sidekiq, prometheus и grafana
источник

AS

Alexander Susikov in Ruby, Rails, Hanami | dry-rb
источник

Jøhn Đøꝩsøn in Ruby, Rails, Hanami | dry-rb
Alexander Susikov
Есть проект yabeda-example где все это дело показано в связке - рельсовое приложение с yabeda, yabeda-rails, yabeda-sidekiq, prometheus и grafana
Там показана только ябеда-рельса. А конфигурация ябеды в config/initializers/yabeda.rb по примеру блока Yabeda.configure в yabeda-rails роняет мне контейнер с
| /usr/local/bundle/gems/prometheus-client-1.0.0/lib/prometheus/client/registry.rb:64:in `histogram': wrong number of arguments (given 4, expected 1; required keyword: docstring) (ArgumentError)
сразу после того как уронил с жалобой на нехватку аргументов.
источник

AS

Alexander Susikov in Ruby, Rails, Hanami | dry-rb
Не совсем что делаешь
источник

AS

Alexander Susikov in Ruby, Rails, Hanami | dry-rb
Ты просто пытаешься запустить пример или вносил какие-то изменения?
источник

Jøhn Đøꝩsøn in Ruby, Rails, Hanami | dry-rb
Я пытаюсь на основе примера прицепить ябеду к моей легаси-макаронине. Я добавил в гемфайл
gem 'yabeda'
gem 'prometheus-client'
gem 'yabeda-prometheus'
, добавил в docker-compose образы grafana и prometheus, создал ./config/initializers/yabeda.rb с примерно таким содержанием:
14 BUCKETS = [
13   0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10, # standard
12   30, 60, 120, 300, 600, # Sometimes requests may be really long-running
11 ].freeze
10 Yabeda.configure do
 9   group :ext_report do
 8     histogram :fullmethod, buckets: BUCKETS, comment: 'comment', unit: :ms
......
......
 1   end
15  end
источник

AS

Alexander Susikov in Ruby, Rails, Hanami | dry-rb
Похоже у клиента прометея API поменялось - в примере версия 0.8.0, а у тебя 1.0.0. Попробуй поставить 0.8.0
источник