Sha256: 6c0d8a0170040e9ac8afd7fd658e21bb4b5ee870c44e29ad07cd290318647dd0
Contents?: true
Size: 1.82 KB
Versions: 1
Compression:
Stored size: 1.82 KB
Contents
# require 'generators/migration_helper' # require 'generators/role_migrations' # require 'auth_assistant/model/user_config' module ActiveRecord module Generators class RolesMigrationGenerator < Rails::Generators::NamedBase include Rails::Generators::MigrationHelper include RSpec::Rails::App desc "Generates user role migrations" # name is the user model to generate roles for class_option :strategy, :type => :string, :aliases => "-s", :default => 'inline_role', :desc => "Role strategy to use (admin_flag, role_string, one_role, many_roles, roles_mask)" class_option :reverse, :type => :boolean, :alias => "-r", :default => false, :desc => "Create a remove migration for reversing a strategy" def self.source_root @source_root ||= File.expand_path("../templates", __FILE__) end def valid_strategy? if ![:admin_flag, :role_string, :one_role, :many_roles, :roles_mask].include?(strategy.to_sym) info "Unknown role strategy #{strategy}" raise ArgumentError, "Unknown role strategy #{strategy}" end end def run_migration migration_name = "add_#{strategy}_strategy" target_migration_name = reverse? ? reverse_migration_name(migration_name) : migration_name migration_template "#{migration_name}.erb", "db/migrations/#{target_migration_name}" generated_migration = latest_migration_file(migration_dir, target_migration_name) reverse_migration!(generated_migration) if generated_migration && reverse? end protected def reverse? options[:reverse] end def table_name name.tableize end def strategy options[:strategy] end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
roles_active_record-0.1.0 | lib/generators/active_record/roles_migration/roles_migration_generator.rb |