Sha256: a6e7fbaf9f0e771629aa12b78c0b22446a5822ba9d595f32566c2615f95bc3e4
Contents?: true
Size: 1.41 KB
Versions: 1
Compression:
Stored size: 1.41 KB
Contents
# frozen_string_literal: true class ApplicationForm include ActiveModel::Model include Virtus.model # attribute :raw_responce, TranslationCms::Api::Base attr_accessor :raw_responce def persisted? false end protected def merge_other_errors!(api_object) api_object.errors.each do |err| if err.is_a?(Array) errors.add(*err) elsif err.try(:source_parameter).present? errors.add(err.source_parameter, err.title || err.detail) else errors.add(:server, 'unknown') end end end def merge_errors!(api_object) if api_object.errors.is_a?(ActiveModel::Errors) api_object.errors.keys.each do |source| api_object.errors[source].each do |err| errors.add(source, err.try(:to_sym) || err) end end else merge_other_errors!(api_object) end end def merge_responce!(api_object) if api_object.errors.blank? api_object = api_object.first if api_object.is_a?(Array) self.attributes = api_object.try(:attributes) self.raw_responce = api_object else merge_errors! api_object end end def method_missing_with_api_fallback(method, *args, &block) if raw_responce&.respond_to?(method) raw_responce.method(method).call(*args, &block) else method_missing_without_api_fallback method, *args, &block end end alias_method_chain :method_missing, :api_fallback end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
translation_cms-0.1.5 | app/forms/application_form.rb |