Sha256: 09278ecd4505f4b81660126cecb6ab05371d4501e88be4bea66378546cb6512f
Contents?: true
Size: 1.31 KB
Versions: 1
Compression:
Stored size: 1.31 KB
Contents
module Fauna class Model < Resource def self.inherited(base) base.send :extend, ActiveModel::Naming base.send :include, ActiveModel::Validations base.send :include, ActiveModel::Conversion # Callbacks support base.send :extend, ActiveModel::Callbacks base.send :include, ActiveModel::Validations::Callbacks base.send :define_model_callbacks, :save, :create, :update, :destroy # Serialization base.send :include, ActiveModel::Serialization end # TODO: use proper class here def self.find_by_id(id) ref = if self <= Fauna::User::Config "users/#{id}/config" else "#{fauna_class}/#{id}" end Fauna::Resource.find(ref) end def self.find_by_unique_id(unique_id) find("#{fauna_class}/unique_id/#{unique_id}") end def id ref.split("/").last end def save if valid? run_callbacks(:save) do if new_record? run_callbacks(:create) { super } else run_callbacks(:update) { super } end end else false end end def delete run_callbacks(:destroy) { super } end def valid? run_callbacks(:validate) { super } end def to_model self end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fauna-0.2.2 | lib/fauna/model.rb |