Sha256: 2e876a7f1ad8f15f2356aef23127e753294f7be02e7e9f440c8f94fd58c5e756
Contents?: true
Size: 939 Bytes
Versions: 3
Compression:
Stored size: 939 Bytes
Contents
class Zendesk2::Client::Model include Cistern::Model attr_accessor :errors # @abstract override in subclass # @raise [Zendesk2::Error] if unsuccessful def save! raise NotImplementedError end # calls {#save!} and sets {#errors} if unsuccessful and applicable # @return [Zendesk2::Model] self, regardless of success def save save! rescue Zendesk2::Error => exception self.errors = exception.response[:body]["details"].inject({}){|r,(k,v)| r.merge(k => v.map{|e| e["type"] || e["description"]})} rescue nil self end def destroyed? !self.reload end def destroy destroy! rescue Zendesk2::Error false end # re-define Cistern::Attributes#missing_attributes to require non-blank def missing_attributes(args) ([:service] | args).select{|arg| val = send("#{arg}"); val.nil? || val == "" } end def update!(attributes) merge_attributes(attributes) save! end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
zendesk2-1.7.5 | lib/zendesk2/client/model.rb |
zendesk2-1.7.4 | lib/zendesk2/client/model.rb |
zendesk2-1.7.2 | lib/zendesk2/client/model.rb |