Sha256: e51f1d8af7f26b036322ca90977c1f780b4b341e3aac5b8746a401867673e94e

Contents?: true

Size: 1.31 KB

Versions: 8

Compression:

Stored size: 1.31 KB

Contents

require 'spiderfw/model/base_model'

module Spider; module Model
    
    # The main superclass of non-legacy models.
    # Extends the BaseModel providing an autoincrementing id and creation/modification timestamps.
    # Defines the following elements:
    #   element :id, Fixnum, :primary_key => true,:autoincrement => true, :read_only => true, :element_position => 0}
    #   element :obj_created, DateTime, :hidden => true
    #   element :obj_modified, DateTime, :hidden => true
    # 
    # Other modules may be mixed-in to add default functionality to managed models.
    
    class Managed < BaseModel
        element :id, Fixnum, {
            :primary_key => true, 
            :autoincrement => true, 
            :read_only => true, 
            :element_position => 0
        }
        element :obj_created, DateTime, :hidden => true
        element :obj_modified, DateTime, :hidden => true
        

        def assign_id(val) #:nodoc:
            @id = val
        end
        
        def self.managed?
            true
        end
        
        with_mapper do
            def before_save(obj, mode)
                obj.obj_created = DateTime.now if mode == :insert
                obj.obj_modified = DateTime.now if obj.modified?
                super
            end
        end
        
    end
            
end; end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
spiderfw-0.5.7 lib/spiderfw/model/extended_models/managed.rb
spiderfw-0.5.6 lib/spiderfw/model/extended_models/managed.rb
spiderfw-0.5.5 lib/spiderfw/model/extended_models/managed.rb
spiderfw-0.5.4 lib/spiderfw/model/extended_models/managed.rb
spiderfw-0.5.3 lib/spiderfw/model/extended_models/managed.rb
spiderfw-0.5.2 lib/spiderfw/model/extended_models/managed.rb
spiderfw-0.5.1 lib/spiderfw/model/extended_models/managed.rb
spiderfw-0.5 lib/spiderfw/model/extended_models/managed.rb