ActiveWrapper ============= Wraps ActiveRecord and Logger for use in non-Rails environments. Setup -----
sudo gem install active_wrapperUsage -----
require 'rubygems' require 'active_wrapper' $db, $log, $mail = ActiveWrapper.setup( :base => File.dirname(__FILE__), :env => 'development', :log => 'custom', :stdout => true ) $db.drop_db $db.create_db $db.establish_connection $db.generate_migration('my_migration') $db.migrate('001') $db.migrate_reset $log.info('log this') $log.clear $mail.deliver(:from => 'me@me.com', :to => 'you@you.com', :subject => 'subject', :body => 'body')
ActiveWrapper
looks for the following files within the :base
directory:
* config/database.yml
* config/mail.yml
* db/migrate/*.rb
The :env
option is "development"
by default.
Logger
------
In the previous example, the log is stored in log/custom.log.
If no :log
name is specified, the :env
option is used for the log name.
You may also set :log
to false to disable logging entirely.
Setting :stdout
to true causes stdout and stderr to redirect to the logger. It is false by default.
Mailer
------
Your mail.yml should look something like this:
development: smtp: address: smtp.gmail.com authentication: :plain domain: gmail.com password: password port: 587 enable_starttls_auto: true user_name: user@gmail.comThis file is optional. Rakefile -------- Add this to your project's Rakefile for database migration and log tasks:
require 'rubygems' require 'rake' require 'active_wrapper/tasks' ActiveWrapper::Tasks.new(:log => 'custom') do # Put stuff you would normally put in the environment task here endPass the same options to
ActiveWrapper::Tasks.new
as you would ActiveWrapper.new
.