module Signaling::Base::Persistence

Public Instance Methods

new?() click to toggle source
# File lib/signaling/base/persistence.rb, line 26
def new?
  self.id.blank?
end
persisted?() click to toggle source
# File lib/signaling/base/persistence.rb, line 30
def persisted?
  !new?
end
save() click to toggle source
# File lib/signaling/base/persistence.rb, line 34
def save
  new? ? create : update
  true
rescue Signaling::Error::UnprocessableEntity => e
  self.errors = e.response[:body][:errors]
  false
end
save!() click to toggle source
# File lib/signaling/base/persistence.rb, line 42
def save!
  save || raise(ResourceInvalid.new(self))
end
update_attributes(params) click to toggle source
# File lib/signaling/base/persistence.rb, line 46
def update_attributes(params)
  update(params)
rescue Signaling::Error::UnprocessableEntity => e
  self.attributes = e.response[:body]
  false
end

Private Instance Methods

create() click to toggle source
# File lib/signaling/base/persistence.rb, line 63
def create
  params = self.class.scope_params(attributes.except(:id))
  self.class.request(:create, params) do |response|
    self.attributes = response
  end
end
update(params = attributes) click to toggle source
# File lib/signaling/base/persistence.rb, line 56
def update(params = attributes)
  params = self.class.scope_params(params).merge(id: self.id)
  self.class.request(:update, params) do |response|
    self.attributes = response
  end
end