Sha256: b3f9b8d252693836728ee91004b91833fce268ad87d10e04748b8643c0993cd3

Contents?: true

Size: 1.17 KB

Versions: 6

Compression:

Stored size: 1.17 KB

Contents

require "godmin/generators/named_base"

class Godmin::AuthenticationGenerator < Godmin::Generators::NamedBase
  argument :name, type: :string, default: "admin_user"

  def create_model
    generate "model", "#{name} email:string password_digest:text --no-test-framework"
  end

  def modify_model
    inject_into_file File.join("app/models", class_path, "#{file_name}.rb"), after: "ActiveRecord::Base\n" do
      <<-END.strip_heredoc.indent(namespace ? 4 : 2)
        include Godmin::Authentication::User

        def self.login_column
          :email
        end
      END
    end
  end

  def create_route
    route "resource :session, only: [:new, :create, :destroy]"
  end

  def create_sessions_controller
    template "sessions_controller.rb", File.join("app/controllers", namespaced_path, "sessions_controller.rb")
  end

  def modify_application_controller
    inject_into_file File.join("app/controllers", namespaced_path, "application_controller.rb"), after: "Godmin::ApplicationController\n" do
      <<-END.strip_heredoc.indent(namespace ? 4 : 2)
        include Godmin::Authentication

        def admin_user_class
          #{class_name}
        end
      END
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
godmin-1.0.0 lib/generators/godmin/authentication/authentication_generator.rb
godmin-0.12.4 lib/generators/godmin/authentication/authentication_generator.rb
godmin-0.12.3 lib/generators/godmin/authentication/authentication_generator.rb
godmin-0.12.2 lib/generators/godmin/authentication/authentication_generator.rb
godmin-0.12.1 lib/generators/godmin/authentication/authentication_generator.rb
godmin-0.12.0 lib/generators/godmin/authentication/authentication_generator.rb