Exception: ZendeskAppsSupport::Validations::ValidationError

Inherits:
StandardError
  • Object
show all
Defined in:
lib/zendesk_apps_support/validations/validation_error.rb

Direct Known Subclasses

JSHintValidationError

Defined Under Namespace

Classes: DeserializationError

Constant Summary collapse

KEY_PREFIX =
'txt.apps.admin.error.app_build.'

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(key, data = nil) ⇒ ValidationError

Returns a new instance of ValidationError.



46
47
48
49
# File 'lib/zendesk_apps_support/validations/validation_error.rb', line 46

def initialize(key, data = nil)
  @key = key
  @data = symbolize_keys(data || {})
end

Instance Attribute Details

#dataObject (readonly)

Returns the value of attribute data.



44
45
46
# File 'lib/zendesk_apps_support/validations/validation_error.rb', line 44

def data
  @data
end

#keyObject (readonly)

Returns the value of attribute key.



44
45
46
# File 'lib/zendesk_apps_support/validations/validation_error.rb', line 44

def key
  @key
end

Class Method Details

.from_hash(hash) ⇒ Object



25
26
27
28
29
30
# File 'lib/zendesk_apps_support/validations/validation_error.rb', line 25

def from_hash(hash)
  raise DeserializationError, hash unless hash['class']
  klass = constantize(hash['class'])
  raise DeserializationError, hash unless klass <= self
  klass.vivify(hash)
end

.from_json(json) ⇒ Object

Turn a JSON string into a ValidationError.



17
18
19
20
21
22
23
# File 'lib/zendesk_apps_support/validations/validation_error.rb', line 17

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

.vivify(hash) ⇒ Object

Turn a Hash into a ValidationError. Used within from_json.



33
34
35
# File 'lib/zendesk_apps_support/validations/validation_error.rb', line 33

def vivify(hash)
  new(hash['key'], hash['data'])
end

Instance Method Details

#as_jsonObject



59
60
61
62
63
64
65
# File 'lib/zendesk_apps_support/validations/validation_error.rb', line 59

def as_json(*)
  {
    'class' => self.class.to_s,
    'key'   => key,
    'data'  => data
  }
end

#to_jsonObject



55
56
57
# File 'lib/zendesk_apps_support/validations/validation_error.rb', line 55

def to_json(*)
  JSON.generate(as_json)
end

#to_sObject



51
52
53
# File 'lib/zendesk_apps_support/validations/validation_error.rb', line 51

def to_s
  ZendeskAppsSupport::I18n.t("#{KEY_PREFIX}#{key}", data)
end