Sha256: 6b4e677dc0f17a85725fbbcfdbf5ceeca2d36f4f7215ea7bf5350fff4e28ca17

Contents?: true

Size: 939 Bytes

Versions: 17

Compression:

Stored size: 939 Bytes

Contents

class AddOneRoleStrategy < ActiveRecord::Migration
  class << self

    def up          
      create_roles
      add_user_role      
      add_index :roles, :name, :unique => true
      insert_roles      
    end

    def down      
      drop_roles
      remove_user_role
      
      remove_index :roles, :name
    end

    protected

    def add_user_role
      change_table :<%= table_name %> do |t|
        t.integer :role_id
      end
    end

    def remove_user_role
      change_table :<%= table_name %> do |t|
        t.remove :role_id
      end
    end


    def create_roles
      create_table :roles do |t|
        t.string  :name, :null => false
        t.timestamps
      end
    end

    def drop_roles
      drop_table :roles
    end

    def insert_roles
      <%- roles_to_add.each do |role| -%>
        begin
          Role.create(:name => '<%= role %>')
        rescue
        end
      <%- end -%>
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
roles_active_record-0.5.1 lib/generators/active_record/roles_migration/templates/add_one_role_strategy.erb
roles_active_record-0.5.0 lib/generators/active_record/roles_migration/templates/add_one_role_strategy.erb
roles_active_record-0.4.9 lib/generators/active_record/roles_migration/templates/add_one_role_strategy.erb
roles_active_record-0.4.8 lib/generators/active_record/roles_migration/templates/add_one_role_strategy.erb
roles_active_record-0.4.7 lib/generators/active_record/roles_migration/templates/add_one_role_strategy.erb
roles_active_record-0.4.6.4 lib/generators/active_record/roles_migration/templates/add_one_role_strategy.erb
roles_active_record-0.4.6.3 lib/generators/active_record/roles_migration/templates/add_one_role_strategy.erb
roles_active_record-0.4.6.2 lib/generators/active_record/roles_migration/templates/add_one_role_strategy.erb
roles_active_record-0.4.6.1 lib/generators/active_record/roles_migration/templates/add_one_role_strategy.erb
roles_active_record-0.4.6 lib/generators/active_record/roles_migration/templates/add_one_role_strategy.erb
roles_active_record-0.4.5 lib/generators/active_record/roles_migration/templates/add_one_role_strategy.erb
roles_active_record-0.4.4 lib/generators/active_record/roles_migration/templates/add_one_role_strategy.erb
roles_active_record-0.4.3 lib/generators/active_record/roles_migration/templates/add_one_role_strategy.erb
roles_active_record-0.4.2 lib/generators/active_record/roles_migration/templates/add_one_role_strategy.erb
roles_active_record-0.4.1 lib/generators/active_record/roles_migration/templates/add_one_role_strategy.erb
roles_active_record-0.4.0 lib/generators/active_record/roles_migration/templates/add_one_role_strategy.erb
roles_active_record-0.3.6 lib/generators/active_record/roles_migration/templates/add_one_role_strategy.erb