Class: ActiveRecord::Generators::RolifyGenerator
- Inherits:
-
Base
- Object
- Base
- ActiveRecord::Generators::RolifyGenerator
- Defined in:
- lib/generators/active_record/rolify_generator.rb
Instance Method Summary collapse
- #copy_rolify_migration ⇒ Object
- #generate_model ⇒ Object
- #inject_role_class ⇒ Object
- #join_table ⇒ Object
- #model_content ⇒ Object
- #model_path ⇒ Object
- #role_reference ⇒ Object
- #user_reference ⇒ Object
Instance Method Details
#copy_rolify_migration ⇒ Object
28 29 30 |
# File 'lib/generators/active_record/rolify_generator.rb', line 28 def copy_rolify_migration migration_template "migration.rb", "db/migrate/rolify_create_#{table_name}.rb" end |
#generate_model ⇒ Object
11 12 13 |
# File 'lib/generators/active_record/rolify_generator.rb', line 11 def generate_model invoke "active_record:model", [ name ], :migration => false end |
#inject_role_class ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/generators/active_record/rolify_generator.rb', line 15 def inject_role_class if args[1]=="engine" if args[2]=="devise" require 'devise' require "#{ENGINE_ROOT}/config/initializers/devise.rb" require "#{ENGINE_ROOT}/app/models/#{user_cname.downcase}.rb" else require "#{ENGINE_ROOT}/app/models/#{user_cname.downcase}.rb" end end inject_into_class(model_path, class_name, model_content) end |
#join_table ⇒ Object
32 33 34 |
# File 'lib/generators/active_record/rolify_generator.rb', line 32 def join_table user_cname.constantize.table_name + "_" + table_name end |
#model_content ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/generators/active_record/rolify_generator.rb', line 48 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 }, :allow_nil => true scopify RUBY content % { :user_cname => user_cname.constantize.table_name, :join_table => "#{user_cname.constantize.table_name}_#{table_name}"} end |
#model_path ⇒ Object
44 45 46 |
# File 'lib/generators/active_record/rolify_generator.rb', line 44 def model_path File.join("app", "models", "#{file_path}.rb") end |
#role_reference ⇒ Object
40 41 42 |
# File 'lib/generators/active_record/rolify_generator.rb', line 40 def role_reference class_name.demodulize.underscore end |
#user_reference ⇒ Object
36 37 38 |
# File 'lib/generators/active_record/rolify_generator.rb', line 36 def user_reference user_cname.demodulize.underscore end |