module Zendesk2::Model
Attributes
errors[RW]
Public Instance Methods
destroy()
click to toggle source
# File lib/zendesk2/model.rb, line 26 def destroy destroy! rescue Zendesk2::Error false end
destroyed?()
click to toggle source
# File lib/zendesk2/model.rb, line 22 def destroyed? !reload end
missing_attributes(args)
click to toggle source
re-define Cistern::Attributes#missing_attributes to require non-blank
Calls superclass method
# File lib/zendesk2/model.rb, line 33 def missing_attributes(args) missing, required = super(args) blank, still_required = required.partition { |_, v| '' == v } missing.merge!(Hash[blank]) [missing, Hash[still_required]] end
save()
click to toggle source
calls {#save!} and sets {#errors} if unsuccessful and applicable @return [Zendesk2::Model] self, regardless of success
# File lib/zendesk2/model.rb, line 15 def save save! rescue Zendesk2::Error => exception self.errors = error_details(exception) self end
save!()
click to toggle source
@abstract override in subclass @raise [Zendesk2::Error] if unsuccessful
# File lib/zendesk2/model.rb, line 9 def save! raise NotImplementedError end
update!(attributes)
click to toggle source
# File lib/zendesk2/model.rb, line 41 def update!(attributes) merge_attributes(attributes) save! end
Private Instance Methods
error_details(exception)
click to toggle source
# File lib/zendesk2/model.rb, line 48 def error_details(exception) exception.response[:body]['details'].inject({}) do |a, (k, v)| a.merge(k => v.map { |e| e['type'] || e['description'] }) end rescue nil end