Class: ActiveRecord::Generators::RolifyGenerator

Inherits:
Base
  • Object
show all
Defined in:
lib/generators/active_record/rolify_generator.rb

Instance Method Summary collapse

Instance Method Details

#copy_rolify_migrationObject



19
20
21
# File 'lib/generators/active_record/rolify_generator.rb', line 19

def copy_rolify_migration
  migration_template "migration.rb", "db/migrate/rolify_create_#{table_name}"
end

#generate_modelObject



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_classObject



15
16
17
# File 'lib/generators/active_record/rolify_generator.rb', line 15

def inject_role_class
  inject_into_class(model_path, class_name, model_content)
end

#join_tableObject



23
24
25
# File 'lib/generators/active_record/rolify_generator.rb', line 23

def join_table
  user_cname.constantize.table_name + "_" + table_name
end

#model_contentObject



39
40
41
42
43
44
45
46
47
# File 'lib/generators/active_record/rolify_generator.rb', line 39

def model_content
  content = <<RUBY
  has_and_belongs_to_many :%{user_cname}, :join_table => :%{join_table}
  belongs_to :resource, :polymorphic => true
  
  scopify
RUBY
  content % { :user_cname => user_cname.constantize.table_name, :join_table => "#{user_cname.constantize.table_name}_#{table_name}"}
end

#model_pathObject



35
36
37
# File 'lib/generators/active_record/rolify_generator.rb', line 35

def model_path
  File.join("app", "models", "#{file_path}.rb")
end

#role_referenceObject



31
32
33
# File 'lib/generators/active_record/rolify_generator.rb', line 31

def role_reference
  class_name.demodulize.underscore
end

#user_referenceObject



27
28
29
# File 'lib/generators/active_record/rolify_generator.rb', line 27

def user_reference
  user_cname.demodulize.underscore
end