Sha256: ad0afb9c0f9f44d9caa83e0ab6ecb910a7765c142ac9df8f036917ddca5cd3cf

Contents?: true

Size: 1.93 KB

Versions: 33

Compression:

Stored size: 1.93 KB

Contents

require 'rails/generators'
require File.expand_path('../utils', __FILE__)

# http://guides.rubyonrails.org/generators.html
# http://rdoc.info/github/wycats/thor/master/Thor/Actions.html
# keep generator idempotent, thanks
# Thanks to https://github.com/sferik/rails_admin !

module Tolk
  class InstallGenerator < Rails::Generators::Base

    source_root File.expand_path("../templates", __FILE__)
    include Rails::Generators::Migration
    include Generators::Utils::InstanceMethods
    extend Generators::Utils::ClassMethods

    argument :_namespace, :type => :string, :required => false, :desc => "Tolk url namespace"
    desc "Tolk installation generator"
    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
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
tolk-6.0.0 lib/generators/tolk/install_generator.rb
tolk-6.0.0.alpha1 lib/generators/tolk/install_generator.rb
tolk-5.0.2 lib/generators/tolk/install_generator.rb
tolk-5.0.1 lib/generators/tolk/install_generator.rb
tolk-5.0.0 lib/generators/tolk/install_generator.rb
tolk-4.3.0 lib/generators/tolk/install_generator.rb
tolk-4.2.0 lib/generators/tolk/install_generator.rb
tolk-4.1.1 lib/generators/tolk/install_generator.rb
tolk-4.1.0 lib/generators/tolk/install_generator.rb
tolk-4.0.1 lib/generators/tolk/install_generator.rb
tolk-4.0.0 lib/generators/tolk/install_generator.rb
tolk-3.2.1 lib/generators/tolk/install_generator.rb
tolk-3.2.0 lib/generators/tolk/install_generator.rb
tolk-3.1.0 lib/generators/tolk/install_generator.rb
tolk-3.0.2 lib/generators/tolk/install_generator.rb
tolk-3.0.1 lib/generators/tolk/install_generator.rb
tolk-3.0.0 lib/generators/tolk/install_generator.rb
tolk-2.0.0 lib/generators/tolk/install_generator.rb
tolk-1.9.3 lib/generators/tolk/install_generator.rb
tolk-1.8.1 lib/generators/tolk/install_generator.rb