Class: ActiveRecord::Generators::CheckPermissionGenerator

Inherits:
Base
  • Object
show all
Includes:
CheckPermission::Generators::OrmHelpers
Defined in:
lib/generators/active_record/check_permission_generator.rb

Instance Method Summary collapse

Methods included from CheckPermission::Generators::OrmHelpers

#model_contents, #partial_content

Instance Method Details

#copy_permission_migrationObject



9
10
11
12
13
14
15
# File 'lib/generators/active_record/check_permission_generator.rb', line 9

def copy_permission_migration				
	if (behavior == :invoke && model_exists?) || (behavior == :revoke && migration_exists?(table_name))
		# migration_template "migration_existing.rb", "db/migrate/add_permission_to_#{table_name}.rb"
	else
		migration_template "migration.rb", "db/migrate/permission_create_#{table_name}.rb"
	end
end

#generate_helperObject



30
31
32
33
34
35
36
37
38
39
# File 'lib/generators/active_record/check_permission_generator.rb', line 30

def generate_helper
	create_file Rails.root.join("app", "helpers", "permissions_helper.rb"), "
	module PermissionsHelper
		include CheckPermission
		def has_permission		
			super(params)
		end
	end
	" unless permissions_helper_exists?
end

#generate_modelObject



16
17
18
# File 'lib/generators/active_record/check_permission_generator.rb', line 16

def generate_model
		invoke "active_record:model", [name], migration: false unless model_exists? && behavior == :invoke								
end

#generate_model_permissionObject



20
21
22
23
24
# File 'lib/generators/active_record/check_permission_generator.rb', line 20

def generate_model_permission				
	permission = "Permission"
	Rails::Generators.invoke("active_record:model", [permission,"is_read:boolean", "is_update:boolean", 
		"is_create:boolean", "is_destroy:boolean", "resource_name:string", "#{table_name.singularize}:references"], {migration: true, timestamps: true})				
end

#generate_viewObject



26
27
28
# File 'lib/generators/active_record/check_permission_generator.rb', line 26

def generate_view
	create_file Rails.root.join("app", "views", "permissions", "_permissions.html.rb"), "#{partial_content}" unless permission_view_exists?	
end

#inject_permission_contentObject



41
42
43
44
45
46
47
48
49
50
51
# File 'lib/generators/active_record/check_permission_generator.rb', line 41

def inject_permission_content
	content = model_contents
	class_path = if namespaced?
		class_name.to_s.split("::")
	else
		[class_name]
	end
	indent_depth = class_path.size - 1
	content = content.split("\n").map { |line| " " * indent_depth + line } .join("\n") << "\n"
	inject_into_class(model_path, class_path.last, content) if model_exists?				
end

#migration_dataObject



53
54
55
56
57
58
# File 'lib/generators/active_record/check_permission_generator.rb', line 53

def migration_data
<<RUBY				
	t.string :email
	t.string :name		
RUBY
end