Sha256: 5ef8f355dfc14e64b6d5d00d7dc0720f384bb803830f4fac29622b649f89eaf7
Contents?: true
Size: 1.38 KB
Versions: 2
Compression:
Stored size: 1.38 KB
Contents
require 'rails/generators/active_record' require 'active_support/core_ext' module ActiveRecord module Generators class RolifyGenerator < ActiveRecord::Generators::Base source_root File.expand_path("../templates", __FILE__) argument :user_cname, :type => :string, :default => "User", :banner => "User" def generate_model invoke "active_record:model", [ name ], :migration => false end def inject_role_class inject_into_class(model_path, class_name, model_content) end def copy_rolify_migration migration_template "migration.rb", "db/migrate/rolify_create_#{table_name}.rb" end def join_table user_cname.constantize.table_name + "_" + table_name end def user_reference user_cname.demodulize.underscore end def role_reference class_name.demodulize.underscore end def model_path File.join("app", "models", "#{file_path}.rb") end def model_content content = <<RUBY has_and_belongs_to_many :%{user_cname}, :join_table => :%{join_table} belongs_to :resource, :polymorphic => true validates :resource_type, :inclusion => { :in => Rolify.resource_types } scopify RUBY content % { :user_cname => user_cname.constantize.table_name, :join_table => "#{user_cname.constantize.table_name}_#{table_name}"} end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rolify-3.5.1 | lib/generators/active_record/rolify_generator.rb |
rolify-3.5.0 | lib/generators/active_record/rolify_generator.rb |