lundi 30 novembre 2020

Creational adapter

I have a lot of code like this

additional_params = {
  date_issued: pending.present? ? pending.date_issued : Time.current,
  gift_status: status,
  date_played: status == "Opened" ? Chronic.parse("now") : (opened.present? ? opened.date_played : nil),
  email_template: service&.email_template,
  email_text: service&.email_text,
  email_subject: service&.email_subject,
  label: service&.label,
  vendor_confirmation_code: service&.vendor_confirmation_code
}
SomeService.new(reward, employee: employee, **additional_params).create

The same pattern applies to many models and services.

What is the name of this pattern?

How to refactor the current solution?

Is there a gem to solve this kind of solution? Like draper or something else

Aucun commentaire:

Enregistrer un commentaire