class ZendeskAppsSupport::Validations::ValidationError
Constants
- KEY_PREFIX
Attributes
Public Class Methods
Source
# File lib/zendesk_apps_support/validations/validation_error.rb, line 26 def from_hash(hash) raise DeserializationError, hash unless hash['class'] klass = constantize(hash['class']) raise DeserializationError, hash unless klass <= self klass.vivify(hash) end
Source
# File lib/zendesk_apps_support/validations/validation_error.rb, line 18 def from_json(json) hash = JSON.parse(json) raise DeserializationError, json unless hash.is_a?(Hash) from_hash(hash) rescue JSON::ParserError, NameError raise DeserializationError, json end
Turn a JSON string into a ValidationError
.
Source
# File lib/zendesk_apps_support/validations/validation_error.rb, line 47 def initialize(key, data = nil) @key = key @data = symbolize_keys(data || {}) end
Source
# File lib/zendesk_apps_support/validations/validation_error.rb, line 34 def vivify(hash) new(hash['key'], hash['data']) end
Turn a Hash into a ValidationError
. Used within from_json.
Private Class Methods
Source
# File lib/zendesk_apps_support/validations/validation_error.rb, line 40 def constantize(klass) klass.to_s.split('::').inject(Object) { |superclass, part| superclass.const_get(part) } end
Public Instance Methods
Source
# File lib/zendesk_apps_support/validations/validation_error.rb, line 60 def as_json(*) { 'class' => self.class.to_s, 'key' => key, 'data' => data } end
Source
# File lib/zendesk_apps_support/validations/validation_error.rb, line 56 def to_json(*) JSON.generate(as_json) end
Source
# File lib/zendesk_apps_support/validations/validation_error.rb, line 52 def to_s ZendeskAppsSupport::I18n.t("#{KEY_PREFIX}#{key}", **data) end
Private Instance Methods
Source
# File lib/zendesk_apps_support/validations/validation_error.rb, line 70 def symbolize_keys(hash) hash.each_with_object({}) do |(key, value), result| result[key.to_sym] = value end end