diff options
author | José Valim <jose.valim@gmail.com> | 2010-01-18 13:44:32 +0100 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2010-01-18 16:21:11 +0100 |
commit | 9fffdc5cdb80b1824473a6d7ae1fedf9e74aa748 (patch) | |
tree | 88f429511bf65f1104efeab10d6310b68ab24837 /activerecord/lib/generators/active_record/session_migration | |
parent | e75ea474346e74e36d92febd47985c3571b1472b (diff) | |
download | rails-9fffdc5cdb80b1824473a6d7ae1fedf9e74aa748.tar.gz rails-9fffdc5cdb80b1824473a6d7ae1fedf9e74aa748.tar.bz2 rails-9fffdc5cdb80b1824473a6d7ae1fedf9e74aa748.zip |
Generators load path now will be Ruby load path. If you want to use rspec:install generator, you need generators/rspec/install_generator in your load path.
Diffstat (limited to 'activerecord/lib/generators/active_record/session_migration')
-rw-r--r-- | activerecord/lib/generators/active_record/session_migration/session_migration_generator.rb | 24 | ||||
-rw-r--r-- | activerecord/lib/generators/active_record/session_migration/templates/migration.rb | 16 |
2 files changed, 40 insertions, 0 deletions
diff --git a/activerecord/lib/generators/active_record/session_migration/session_migration_generator.rb b/activerecord/lib/generators/active_record/session_migration/session_migration_generator.rb new file mode 100644 index 0000000000..59c4792066 --- /dev/null +++ b/activerecord/lib/generators/active_record/session_migration/session_migration_generator.rb @@ -0,0 +1,24 @@ +require 'generators/active_record' + +module ActiveRecord + module Generators + class SessionMigrationGenerator < Base + argument :name, :type => :string, :default => "add_sessions_table" + + def create_migration_file + migration_template "migration.rb", "db/migrate/#{file_name}.rb" + end + + protected + + def session_table_name + current_table_name = ActiveRecord::SessionStore::Session.table_name + if ["sessions", "session"].include?(current_table_name) + current_table_name = (ActiveRecord::Base.pluralize_table_names ? 'session'.pluralize : 'session') + end + current_table_name + end + + end + end +end diff --git a/activerecord/lib/generators/active_record/session_migration/templates/migration.rb b/activerecord/lib/generators/active_record/session_migration/templates/migration.rb new file mode 100644 index 0000000000..919822af7b --- /dev/null +++ b/activerecord/lib/generators/active_record/session_migration/templates/migration.rb @@ -0,0 +1,16 @@ +class <%= migration_class_name %> < ActiveRecord::Migration + def self.up + create_table :<%= session_table_name %> do |t| + t.string :session_id, :null => false + t.text :data + t.timestamps + end + + add_index :<%= session_table_name %>, :session_id + add_index :<%= session_table_name %>, :updated_at + end + + def self.down + drop_table :<%= session_table_name %> + end +end |