class Draft::DeviseGenerator

Public Instance Methods

check_for_existing_devise_model() click to toggle source
# File lib/generators/draft/devise/devise_generator.rb, line 14
def check_for_existing_devise_model
  return if behavior != :invoke
  if model_exists?
    say "\nYou already have a model called #{class_name}! Halting generator.\n"
    abort
  end
end
devise_install() click to toggle source
# File lib/generators/draft/devise/devise_generator.rb, line 22
def devise_install
  unless initializer_exists?
    invoke "devise:install"
  end
end
enable_scoped_views() click to toggle source
# File lib/generators/draft/devise/devise_generator.rb, line 28
def enable_scoped_views
  path = "config/initializers/devise.rb"
  uncomment_lines(path, /.*config.scoped_views = false/)
  code_to_replace = "config.scoped_views = false"
  replace_with = "config.scoped_views = true"
  gsub_file(path, code_to_replace, replace_with)
end
generate_devise_model() click to toggle source
# File lib/generators/draft/devise/devise_generator.rb, line 36
def generate_devise_model
  invoke "devise"
end
generate_devise_views() click to toggle source
# File lib/generators/draft/devise/devise_generator.rb, line 40
def generate_devise_views
  invoke "draft:devise:views"
  devise_service = ::DraftGenerators::DeviseCustomizationService.new(attributes)
  add_additional_views_through_security(devise_service)
  add_additional_fields_for_registration(devise_service)
end

Private Instance Methods

add_additional_fields_for_registration(devise_service) click to toggle source
# File lib/generators/draft/devise/devise_generator.rb, line 55
def add_additional_fields_for_registration(devise_service)
  scope = name.underscore.pluralize
  form_fields_to_add = devise_service.form_fields_to_add
  
  if File.exist?("app/views/#{scope}/registrations/new.html.erb")
    inject_into_file("app/views/#{scope}/registrations/new.html.erb",
                     form_fields_to_add,
                     before: devise_service.sign_in_resource_button_block)
  end

  if File.exist?("app/views/#{scope}/registrations/edit.html.erb")
    inject_into_file("app/views/#{scope}/registrations/edit.html.erb",
                     form_fields_to_add,
                     before: devise_service.update_resource_button_block)
  end
end
add_additional_views_through_security(devise_service) click to toggle source
# File lib/generators/draft/devise/devise_generator.rb, line 49
def add_additional_views_through_security(devise_service)
  inject_into_file("app/controllers/application_controller.rb",
                   devise_service.security_field_block,
                   after: devise_service.protect_from_forgery_code)
end
initializer_exists?() click to toggle source
# File lib/generators/draft/devise/devise_generator.rb, line 84
def initializer_exists?
  File.exist?(File.join(destination_root, initializer_path))
end
initializer_path() click to toggle source
# File lib/generators/draft/devise/devise_generator.rb, line 88
def initializer_path
  @initializer_path ||= File.join("config", "initializers", "devise.rb")
end
model_exists?() click to toggle source
# File lib/generators/draft/devise/devise_generator.rb, line 76
def model_exists?
  File.exist?(File.join(destination_root, model_path))
end
model_path() click to toggle source
# File lib/generators/draft/devise/devise_generator.rb, line 80
def model_path
  @model_path ||= File.join("app", "models", "#{file_path}.rb")
end
with_sentinels?() click to toggle source
# File lib/generators/draft/devise/devise_generator.rb, line 72
def with_sentinels?
  options[:with_sentinels]
end