Sha256: bc8697ee0b51c327eb5102160cac958bce7cb1c1020b5abb9c39a6f9ac139568
Contents?: true
Size: 1.07 KB
Versions: 1
Compression:
Stored size: 1.07 KB
Contents
require 'securerandom' # encoding: utf-8 module Dynamoid #:nodoc: # This module saves things! module Persistence extend ActiveSupport::Concern included do self.create_table(self.table_name) unless self.table_exists?(self.table_name) end def save run_callbacks(:save) do self.id = SecureRandom.uuid if self.id.nil? || self.id.blank? Dynamoid::Adapter.put_item(self.class.table_name, self.attributes) save_indexes end end def destroy run_callbacks(:destroy) do self.delete end end def delete delete_indexes Dynamoid::Adapter.delete_item(self.class.table_name, self.id) end module ClassMethods def table_name "#{Dynamoid::Config.namespace}_#{self.to_s.downcase.pluralize}" end def create_table(table_name, id = :id) Dynamoid::Adapter.create_table(table_name, id.to_sym) end def table_exists?(table_name) Dynamoid::Adapter.list_tables.include?(table_name) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dynamoid-0.1.1 | lib/dynamoid/persistence.rb |