Ravn::Tactical::

Model class

Public Class Methods

configure( config=nil )

Configurability interface – Configure the Sequel connection

    # File lib/ravn/tactical/model.rb
114 def self::configure( config=nil )
115     super
116 
117     self.db = Sequel.connect( self.uri ) if self.uri
118 end
db=( newdb )

Reset the database connection that all model objects will use to newdb (a Sequel::Database object).

   # File lib/ravn/tactical/model.rb
72 def self::db=( newdb )
73     newdb.sql_log_level = :debug
74     newdb.logger = Loggability[ Ravn::Tactical::Model ]
75 
76     newdb.extension( :pagination )
77     newdb.extension( :pretty_table )
78 
79     super
80 
81     Loggability.for_logger( self ).with_level( :fatal ) do
82         self.descendents.each do |subclass|
83             subclass.dataset = newdb[ subclass.table_name ]
84         end
85         self.freeze_descendents
86     end
87 end
register_model( path )

Add a path to require once the database connection is set.

    # File lib/ravn/tactical/model.rb
 91 def self::register_model( path )
 92     self.log.debug "Registered model for requiring: %s" % [ path ]
 93 
 94     # If the connection's set, require the path immediately.
 95     Loggability.for_logger( self ).with_level( :fatal ) do
 96         require( path )
 97     end if @db
 98 
 99     self.registered_models.add( path )
100 end
registered_models()

The Set of model class files to load after the connection is established

   # File lib/ravn/tactical/model.rb
66 singleton_attr_reader :registered_models
require_models()

Require the model classes once the database connection has been established

    # File lib/ravn/tactical/model.rb
104 def self::require_models
105     self.log.debug "Loading registered model classes."
106     logging_override = Loggability.for_logger( self ).with_level( :fatal )
107     self.registered_models.each do |path|
108         logging_override.call { require path }
109     end
110 end

Public Instance Methods

error_messages()

Return the objects validation errors as full messages joined with commas.

    # File lib/ravn/tactical/model.rb
122 def error_messages
123     return self.errors.full_messages.join( ', ' )
124 end