Class: Tolk::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Extended by:
Generators::Utils::ClassMethods
Includes:
Rails::Generators::Migration, Generators::Utils::InstanceMethods
Defined in:
lib/generators/tolk/install_generator.rb

Instance Method Summary collapse

Methods included from Generators::Utils::ClassMethods

next_migration_number

Methods included from Generators::Utils::InstanceMethods

#ask_boolean, #ask_for, #display

Instance Method Details

#installObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/generators/tolk/install_generator.rb', line 19

def install
  routes = File.open(Rails.root.join("config/routes.rb")).try :read
  initializer = (File.open(Rails.root.join("config/initializers/tolk.rb")) rescue nil).try :read

  display "Hello, Tolk installer will help you sets things up!", :black
  unless initializer
    install_generator = ask_boolean("Do you want to install the optional configuration file (to change mappings, locales dump location etc..) ?")
    template "initializer.erb", "config/initializers/tolk.rb" if install_generator
  else
    display "You already have a config file. You're updating, heh? I'm generating a new 'tolk.rb.example' that you can review."
    template "initializer.erb", "config/initializers/tolk.rb.example"
  end

  display "Adding a migration..."
  migration_template 'migration.rb', 'db/migrate/create_tolk_tables.rb' rescue display $!.message

  namespace = ask_for("Where do you want to mount tolk?", "tolk", _namespace)
  gsub_file "config/routes.rb", /mount Tolk::Engine => \'\/.+\', :as => \'tolk\'/, ''
  gsub_file "config/routes.rb", /mount Tolk::Engine => \'\/.+\'/, ''
  route("mount Tolk::Engine => '/#{namespace}', :as => 'tolk'")

  display "Job's done: migrate, start your server and visit '/#{namespace}'!", :blue

end