Class: Solrengine::Auth::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Rails::Generators::Migration
Defined in:
lib/generators/solrengine/auth/install_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(dirname) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/generators/solrengine/auth/install_generator.rb', line 13

def self.next_migration_number(dirname)
  if ActiveRecord.respond_to?(:timestamped_migrations) && ActiveRecord.timestamped_migrations
    Time.now.utc.strftime("%Y%m%d%H%M%S")
  else
    "%.3d" % (current_migration_number(dirname) + 1)
  end
end

Instance Method Details

#add_application_controller_helpersObject



53
54
55
56
57
58
59
60
# File 'lib/generators/solrengine/auth/install_generator.rb', line 53

def add_application_controller_helpers
  controller_file = "app/controllers/application_controller.rb"
  include_line = "include Solrengine::Auth::Concerns::ControllerHelpers"

  return if File.read(controller_file).include?(include_line)

  inject_into_class controller_file, "ApplicationController", "  #{include_line}\n"
end

#add_routesObject



46
47
48
49
50
51
# File 'lib/generators/solrengine/auth/install_generator.rb', line 46

def add_routes
  route_string = 'mount Solrengine::Auth::Engine, at: "/auth"'
  return if File.read("config/routes.rb").include?(route_string)

  route route_string
end

#create_initializerObject



21
22
23
# File 'lib/generators/solrengine/auth/install_generator.rb', line 21

def create_initializer
  template "initializer.rb", "config/initializers/solrengine_auth.rb"
end

#create_user_modelObject



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/generators/solrengine/auth/install_generator.rb', line 25

def create_user_model
  unless File.exist?("app/models/user.rb")
    create_file "app/models/user.rb", <<~RUBY
      class User < ApplicationRecord
        include Solrengine::Auth::Concerns::Authenticatable
      end
    RUBY
  else
    unless File.read("app/models/user.rb").include?("Solrengine::Auth::Concerns::Authenticatable")
      inject_into_class "app/models/user.rb", "User",
        "  include Solrengine::Auth::Concerns::Authenticatable\n\n"
    end
  end
end

#create_users_migrationObject



40
41
42
43
44
# File 'lib/generators/solrengine/auth/install_generator.rb', line 40

def create_users_migration
  migration_template "migration.rb.erb", "db/migrate/create_users_with_wallet_auth.rb"
rescue Rails::Generators::Error
  say_status :skip, "Migration already exists", :yellow
end

#show_post_installObject



62
63
64
65
# File 'lib/generators/solrengine/auth/install_generator.rb', line 62

def show_post_install
  say "\n  SolRengine Auth installed!", :green
  say "  Run `rails db:migrate` to create the users table.\n\n"
end