class Devowd::Generators::InstallGenerator
Public Class Methods
next_migration_number(path)
click to toggle source
# File lib/generators/devowd/install_generator.rb, line 159 def self.next_migration_number(path) unless @prev_migration_nr @prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i else @prev_migration_nr += 1 end @prev_migration_nr.to_s end
Public Instance Methods
install_admin_model()
click to toggle source
# File lib/generators/devowd/install_generator.rb, line 79 def install_admin_model puts "..." copy_file "models/admin.rb", "app/models/admin.rb" copy_file "controllers/admins_controller.rb", "app/controllers/admins_controller.rb" migration_template "migrations/admin_migration.rb", "db/migrate/create_admins.rb" copy_file "views/admin_show.html", "app/views/admins/show.html.erb" end
install_application_layout()
click to toggle source
# File lib/generators/devowd/install_generator.rb, line 148 def install_application_layout app_layout = "app/views/layouts/application.html.erb" this_text = ' <% ENV["HOST"] = request.host_with_port %> <%= render partial: "visitor_signed_in" %> <%= flash[:notice] %> <%= flash[:alert] %>' this_line = "<body>\n" inject_into_file app_layout, this_text, after: this_line copy_file "views/_visitor_signed_in.html", "app/views/application/_visitor_signed_in.html.erb" end
install_devise()
click to toggle source
# File lib/generators/devowd/install_generator.rb, line 9 def install_devise puts "DEVISE CONFIG" @email_signature = ask("Signature you will use to send activation invitation from [ex.: Mike Brown]:") @email = ask("Email you will use to send activation invitation from [ex.: m.brown@example.com]:") @email_password = ask("Password for email [ex.: s0mepaSS]:") #crowd configurations puts "CROWD CONFIG" @crowd_http = ask("Crowd server http [ex.: http://crowd.example.ru/crowd]:") @crowd_appname = ask("Name for your application at Crowd server [ex.: awesomeApp]:") @crowd_apppassword = ask("Password for your applicaiton at Crowd server [ex.: secret]:") template "config/devise.rb.erb", "config/initializers/devise.rb" copy_file "config/devise.en.yml", "config/locales/devise.en.yml" copy_file "controllers/omniauth_callbacks_controller.rb", "app/controllers/omniauth_callbacks_controller.rb" inject_into_class "app/controllers/application_controller.rb", ApplicationController do " def after_sign_in_path_for(resource) if resource.instance_of? User sign_out(current_admin) if !current_admin.nil? resource.pass_required = true return user_path(resource) end if resource.instance_of? Admin sign_out(current_user) if !current_user.nil? return admin_path(resource) end end def after_sign_out_path_for(resource) return admin_login_path if resource == :admin return new_user_session_path if resource == :user end\n" end end
install_figaro()
click to toggle source
# File lib/generators/devowd/install_generator.rb, line 134 def install_figaro if File.exists?("config/application.yml") append_to_file("config/application.yml") do "CROWD_APPNAME: '#{@crowd_appname}' CROWD_APPPASSWORD: '#{@crowd_apppassword}' MAIL_USERNAME: '#{@email}' MAIL_PASSWORD: '#{@email_password}' " end else template("config/application.yml.erb", "config/application.yml") end end
install_mailer()
click to toggle source
# File lib/generators/devowd/install_generator.rb, line 42 def install_mailer template "mailer/app_mailer.rb.erb", "app/mailers/app_mailer.rb" @tls = 'false' @address = 'smtp.yandex.ru' @port = '587' @domain = 'awesome.domain.com' @authentication = 'plain' @enable_starttls_auto = 'true' development = "config/environments/development.rb" this_text = " config.action_mailer.default_url_options = { :host => ENV['HOST'] } config.action_mailer.perform_deliveries = true config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :tls => #{@tls}, :address => '#{@address}', :port => #{@port}, :domain => '#{@domain}', :user_name => ENV['MAIL_USERNAME'], :password => ENV['MAIL_PASSWORD'], :authentication => '#{@authentication}', :enable_starttls_auto => #{@enable_starttls_auto} }" this_line = "#{Rails.application.class.parent_name}::Application.configure do\n" inject_into_file development, this_text, after: this_line this_line = "Rails.application.configure do\n" inject_into_file development, this_text, after: this_line production = "config/environments/production.rb" this_line = "#{Rails.application.class.parent_name}::Application.configure do\n" inject_into_file production, this_text, after: this_line this_line = "Rails.application.configure do\n" inject_into_file production, this_text, after: this_line copy_file "mailer/user_activate_mail_template.html.erb", "app/views/app_mailer/user_activate.html.erb" end
install_migration()
click to toggle source
# File lib/generators/devowd/install_generator.rb, line 101 def install_migration run('bundle exec rake db:create') run('bundle exec rake db:migrate') end
install_routes()
click to toggle source
# File lib/generators/devowd/install_generator.rb, line 106 def install_routes routes = "config/routes.rb" this_text = " devise_for :admins, controllers: {omniauth_callbacks: 'omniauth_callbacks'} devise_scope :admin do delete '/admins/logout', to: 'devise/sessions#destroy' get '/admin', to: 'admins#admin', as: 'admin_login' end resources :admins, only: [:show] unauthenticated do root to: redirect('/users/login'), as: 'user_redirect_to_login' get '/users/new', to: redirect('/users/login'), as: 'new_user_redirect_to_login' end authenticated :user do devise_scope :user do get '/users/new', to: redirect('/'), as: 'new_user_redirect_to_root' end end devise_for :users, path_names: {sign_in: 'login', sign_out: 'logout'} resources :users, only: [:show, :create, :new, :edit, :update, :destroy]" this_line = "#{Rails.application.class.parent_name}::Application.routes.draw do\n" inject_into_file routes, this_text, after: this_line this_line = "Rails.application.routes.draw do\n" inject_into_file routes, this_text, after: this_line end
install_user_model()
click to toggle source
# File lib/generators/devowd/install_generator.rb, line 87 def install_user_model copy_file "models/user.rb", "app/models/user.rb" copy_file "controllers/users_controller.rb", "app/controllers/users_controller.rb" migration_template "migrations/user_migration.rb", "db/migrate/create_users.rb" empty_directory "app/views/devise/sessions" copy_file "views/new.html", "app/views/devise/sessions/new.html.erb" copy_file "views/user_new.html", "app/views/users/new.html.erb" copy_file "views/user_show.html", "app/views/users/show.html.erb" copy_file "views/user_edit.html", "app/views/users/edit.html.erb" copy_file "views/user_edit_by_admin.html", "app/views/application/_edit_user_by_admin.html.erb" copy_file "views/user_edit_by_user.html", "app/views/application/_edit_user_by_user.html.erb" copy_file "views/user_collection_template.html", "app/views/application/_user.html.erb" end