ActiveWrapper
Wraps ActiveRecord and Logger for use in non-Rails environments.
Setup
sudo gem install active_wrapper
Usage
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 => '[email protected]', :to => '[email protected]', :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: [email protected]
This 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
end
Pass the same options to ActiveWrapper::Tasks.new
as you would ActiveWrapper.new
.