Class: Pu::Invites::InvitableGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Pu::Invites::InvitableGenerator
show all
- Includes:
- PlutoniumGenerators::Generator
- Defined in:
- lib/generators/pu/invites/invitable_generator.rb
Instance Method Summary
collapse
derive_association_name, find_shared_namespace, included
#debug, #error, #exception, #info, #success, #warn
#read_config, #write_config
Instance Method Details
#add_definition_action ⇒ Object
65
66
67
68
69
|
# File 'lib/generators/pu/invites/invitable_generator.rb', line 65
def add_definition_action
inject_into_file definition_file_path,
" action :invite_user, interaction: #{model_class}::InviteUserInteraction, category: :secondary\n",
after: /class #{model_class}Definition < .+\n/
end
|
#add_invitable_concern ⇒ Object
59
60
61
62
63
|
# File 'lib/generators/pu/invites/invitable_generator.rb', line 59
def add_invitable_concern
inject_into_file model_file_path,
"include Plutonium::Invites::Concerns::Invitable\n ",
before: "# add concerns above."
end
|
#add_policy_method ⇒ Object
71
72
73
74
75
|
# File 'lib/generators/pu/invites/invitable_generator.rb', line 71
def add_policy_method
inject_into_file policy_file_path,
"def invite_user?\n record.can_invite_user?\n end\n\n ",
before: "# Core attributes"
end
|
#create_email_templates ⇒ Object
77
78
79
80
81
82
83
84
85
|
# File 'lib/generators/pu/invites/invitable_generator.rb', line 77
def create_email_templates
return unless options[:email_templates]
template "invitable/invitation.html.erb",
"packages/invites/app/views/invites/user_invite_mailer/invitation_#{model_table}.html.erb"
template "invitable/invitation.text.erb",
"packages/invites/app/views/invites/user_invite_mailer/invitation_#{model_table}.text.erb"
end
|
#create_interaction ⇒ Object
54
55
56
57
|
# File 'lib/generators/pu/invites/invitable_generator.rb', line 54
def create_interaction
template "invitable/invite_user_interaction.rb",
interaction_path
end
|
#show_instructions ⇒ Object
87
88
89
90
91
92
93
|
# File 'lib/generators/pu/invites/invitable_generator.rb', line 87
def show_instructions
say "\n"
say "Connected #{model_class} as invitable!", :green
say "\n"
say "Implement #{model_class}#on_invite_accepted(user) to handle post-acceptance logic."
say "\n"
end
|
#validate_requirements ⇒ Object
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/generators/pu/invites/invitable_generator.rb', line 33
def validate_requirements
errors = []
unless File.exist?(Rails.root.join(model_file_path))
errors << "Model file not found: #{model_file_path}"
end
unless File.exist?(Rails.root.join(definition_file_path))
errors << "Definition file not found: #{definition_file_path}"
end
unless File.exist?(Rails.root.join(policy_file_path))
errors << "Policy file not found: #{policy_file_path}"
end
if errors.any?
errors.each { |e| say_status :error, e, :red }
raise Thor::Error, "Required files missing. Ensure #{model_class} resource exists."
end
end
|