Sha256: e26d27bb4cac437ab6b0915a87c5e0f8d6a1be3ad01acf577ef64045e25d3d7b

Contents?: true

Size: 1.53 KB

Versions: 2

Compression:

Stored size: 1.53 KB

Contents

class AuthenticationGenerator < Rails::Generators::NamedBase

  source_root File.expand_path('../templates', __FILE__)

  def gemfile
    gem("bcrypt-ruby")  
  end

  def setup_application
    application do
      '
# Configure sensitive parameters which will be filtered from the log file.
config.filter_parameters += [:password, :password_confirmation]

config.autoload_paths += %W(#{Rails.root}/lib)
      '
    end  
  end

  def create_authentication_lib_and_include_in_application_helper
    copy_file "lib/authentication.rb", "#{Rails.root}/lib/authentication.rb" 
    inject_into_class("app/controllers/application_controller.rb", "include Authentication")
  end

  def create_routes
    route("match 'register' => 'users#new', :as => :register")
    route("resources :users")    
    route("resources :user_sessions, :only => [:new, :create, :destroy]")
    route("match 'login' => 'user_sessions#new', :as => :login")
    route("match 'logout' => 'user_sessions#destroy', :as => :logout")
  end

  def create_models
    generate("model", "user email:string password_hash:string password_salt:string")
  end
  
  def create_controllers
    generate("controller", "user_sessions")   
    generate("controller", "users")
    inject_into_class("app/controllers/users_controller.rb", IO.read("#{AuthenticationGenerator.source_root}/app/controllers/_users_controller.rb")) 
  end

  def create_views
    directory "app/views/users", "#{Rails.root}/app/views/users"
    directory "app/view/user_sessions", "#{Rails.root}/app/views/user_sessions" 
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
i0n_rails3_generators-0.2.11 lib/generators/i0n/authentication/authentication_generator.rb
i0n_rails3_generators-0.2.10 lib/generators/i0n/authentication/authentication_generator.rb