Class: Invitation::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Helpers, Rails::Generators::Migration
Defined in:
lib/generators/invitation/install/install_generator.rb

Instance Method Summary collapse

Instance Method Details

#copy_migration_filesObject

def inject_into_invitables

return unless options[:invitable]
options[:invitable].each do |invitable|
  path = invitable_file_path(invitable)
  class_name = invitable.classify
  inject_into_class path, class_name, "  include Invitation::Invitable\n\n"
end

end



52
53
54
# File 'lib/generators/invitation/install/install_generator.rb', line 52

def copy_migration_files
  copy_migration 'create_invites.rb'
end

#create_initializerObject



56
57
58
59
60
61
62
63
64
65
# File 'lib/generators/invitation/install/install_generator.rb', line 56

def create_initializer
  copy_file 'invitation.rb', 'config/initializers/invitation.rb'
  if options[:model]
    inject_into_file(
      'config/initializers/invitation.rb',
      "  config.user_model = '#{options[:model]}' \n",
      after: "Invitation.configure do |config|\n"
    )
  end
end

#inject_into_user_modelObject

def verify_invitable

return unless options[:invitable]
options[:invitable].each do |invitable|
  unless File.exists?(invitable_file_path invitable)
    puts "Exiting: the model class you specified to make invitable, #{invitable}, is not found."
    exit 1
  end
end

end



39
40
41
# File 'lib/generators/invitation/install/install_generator.rb', line 39

def inject_into_user_model
  inject_into_class model_path, model_class_name, "  include Invitation::User\n\n"
end

#verifyObject

class_option :invitable, optional: true, type: :array, banner: ‘invitable’,

desc: "Specify the model class name if you will use anything other than 'User'"


22
23
24
25
26
27
# File 'lib/generators/invitation/install/install_generator.rb', line 22

def verify
  if options[:model] && !File.exist?(model_path)
    puts "Exiting: the model class you specified, #{options[:model]}, is not found."
    exit 1
  end
end