Class: LcpRuby::Generators::GroupsGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- LcpRuby::Generators::GroupsGenerator
show all
- Includes:
- FormatSupport
- Defined in:
- lib/generators/lcp_ruby/groups_generator.rb
Constant Summary
FormatSupport::VALID_FORMATS
Instance Method Summary
collapse
included, #validate_format
Instance Method Details
#copy_group_membership_model ⇒ Object
20
21
22
23
24
|
# File 'lib/generators/lcp_ruby/groups_generator.rb', line 20
def copy_group_membership_model
copy_dsl_or_yaml "group_membership_model.rb",
dsl_target: "config/lcp_ruby/models/group_membership.rb",
yaml_target: "config/lcp_ruby/models/group_membership.yml"
end
|
#copy_group_model ⇒ Object
14
15
16
17
18
|
# File 'lib/generators/lcp_ruby/groups_generator.rb', line 14
def copy_group_model
copy_dsl_or_yaml "group_model.rb",
dsl_target: "config/lcp_ruby/models/group.rb",
yaml_target: "config/lcp_ruby/models/group.yml"
end
|
#copy_group_permissions ⇒ Object
38
39
40
|
# File 'lib/generators/lcp_ruby/groups_generator.rb', line 38
def copy_group_permissions
template "group_permissions.yml", "config/lcp_ruby/permissions/group.yml"
end
|
#copy_group_presenter ⇒ Object
32
33
34
35
36
|
# File 'lib/generators/lcp_ruby/groups_generator.rb', line 32
def copy_group_presenter
copy_dsl_or_yaml "group_presenter.rb",
dsl_target: "config/lcp_ruby/presenters/groups.rb",
yaml_target: "config/lcp_ruby/presenters/groups.yml"
end
|
#copy_group_role_mapping_model ⇒ Object
26
27
28
29
30
|
# File 'lib/generators/lcp_ruby/groups_generator.rb', line 26
def copy_group_role_mapping_model
copy_dsl_or_yaml "group_role_mapping_model.rb",
dsl_target: "config/lcp_ruby/models/group_role_mapping.rb",
yaml_target: "config/lcp_ruby/models/group_role_mapping.yml"
end
|
#copy_group_view_group ⇒ Object
42
43
44
45
46
|
# File 'lib/generators/lcp_ruby/groups_generator.rb', line 42
def copy_group_view_group
copy_dsl_or_yaml "group_view_group.rb",
dsl_target: "config/lcp_ruby/views/groups.rb",
yaml_target: "config/lcp_ruby/views/groups.yml"
end
|
#show_post_install_message ⇒ Object
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
# File 'lib/generators/lcp_ruby/groups_generator.rb', line 69
def show_post_install_message
say ""
say "LCP Ruby groups installed!", :green
say ""
say "Generated files:"
say " - config/lcp_ruby/models/group.#{format_extension}"
say " - config/lcp_ruby/models/group_membership.#{format_extension}"
say " - config/lcp_ruby/models/group_role_mapping.#{format_extension}"
say " - config/lcp_ruby/presenters/groups.#{format_extension}"
say " - config/lcp_ruby/permissions/group.yml"
say " - config/lcp_ruby/views/groups.#{format_extension}"
say ""
say "Next steps:"
say " 1. Start server: rails s"
say " 2. Navigate to the Groups section to create groups"
say " 3. Create group memberships and role mappings"
say " 4. Users will inherit roles from their group memberships"
say ""
say "Optional:"
say " - Remove group_role_mapping_model.#{format_extension} and config line for membership-only groups (no role mapping)"
say " - Adjust role_resolution_strategy: :merged (default), :groups_only, or :direct_only"
say ""
end
|
#update_lcp_ruby_initializer ⇒ Object
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
# File 'lib/generators/lcp_ruby/groups_generator.rb', line 48
def update_lcp_ruby_initializer
initializer_path = "config/initializers/lcp_ruby.rb"
unless File.exist?(Rails.root.join(initializer_path))
create_file initializer_path, <<~RUBY
# frozen_string_literal: true
LcpRuby.configure do |config|
config.group_source = :model
config.group_role_mapping_model = "group_role_mapping"
end
RUBY
return
end
inject_into_file initializer_path, after: "LcpRuby.configure do |config|\n" do
" config.group_source = :model\n" \
" config.group_role_mapping_model = \"group_role_mapping\"\n"
end
end
|