Sha256: f317646dd32c2bad22cf0d6d861b8544808a58bd8d4fc045c721c46d92b731f3
Contents?: true
Size: 1.32 KB
Versions: 3
Compression:
Stored size: 1.32 KB
Contents
module OpenX module Services module Persistance module ClassMethods def create!(params = {}) new(params).save! end def find(id, *args) if id == :all responses = remote.call(find_all, *args) responses.map do |response| new(translate(response)) end else response = remote.call(find_one, id) new(translate(response)) end end def destroy(id) new(:id => id).destroy end private def translate(response) params = {} self.translations.each do |k,v| params[k] = response[v.to_s] if response[v.to_s] end params end end module InstanceMethods def save! params = {} self.class.translations.keys.each do |k| value = send(:"#{k}") params[self.class.translations[k].to_s] = value if value end if new_record? @id = remote.call(self.class.create, params) else remote.call(self.class.update, params) end self end def destroy remote.call(self.class.delete, id) @id = nil end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
bsm-openx-1.9.3 | lib/openx/services/persistance.rb |
bsm-openx-1.9.2 | lib/openx/services/persistance.rb |
bsm-openx-1.9.1 | lib/openx/services/persistance.rb |