Module: Nexo::Synchronizable::ClassMethods
- Defined in:
- app/models/concerns/nexo/synchronizable.rb
Instance Method Summary collapse
Instance Method Details
#create_from_payload!(folder, payload) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'app/models/concerns/nexo/synchronizable.rb', line 43 def create_from_payload!(folder, payload) Nexo.logger.debug("Synchronizable#create_from_payload!") service = Nexo::ServiceBuilder.instance.build_protocol_service(folder) fields = service.fields_from_payload(payload) synchronizable = new attributes = synchronizable.translate_fields(fields, for_create: true, folder:) synchronizable.assign_attributes(attributes) synchronizable.save! synchronizable end |
#define_protocol(name, methods) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'app/models/concerns/nexo/synchronizable.rb', line 21 def define_protocol(name, methods) define_method(:protocols) do if defined? super # :nocov: TODO, not yet implemented super << name # :nocov: else [ name ] end end define_method(:protocol_methods) do if defined? super [ super(), methods ].flatten else # :nocov: borderline raise "protocol_methods should be defined" # :nocov: end end end |