class Jinda::Generators::InstallGenerator
Public Class Methods
source_root()
click to toggle source
# File lib/generators/jinda_engine/install_generator.rb, line 5 def self.source_root File.dirname(__FILE__) + "/templates" end
Public Instance Methods
finish()
click to toggle source
# File lib/generators/jinda_engine/install_generator.rb, line 223 def finish say "\n" say "Jinda gem ready for next configuration install.\n" say " (or short cut with sh install.sh)\n" say "Normally you will use the following command:\n" say "----------------------------------------\n" say "bundle install\n" say "rails generate jinda:config\n" say "rake jinda:seed\n" say say "----------------------------------------\n" end
setup_app()
click to toggle source
# File lib/generators/jinda_engine/install_generator.rb, line 60 def setup_app # inside("public") { run "FileUtils.mv index.html index.html.bak" } # inside("db") {(File.file? "seeds.rb") ? (FileUtils.mv "seeds.rb", "seeds.rb.bak") : ( say "no seeds.rb", :green)} # inside("app/views/layouts") {(File.file? "application.html.erb") ? (FileUtils.mv 'application.html.erb', 'application.html.erb.bak') : ( say "no app/views/layout/ application.html.erb", :blue )} # inside("app/controllers") {(File.file? "application_controller.rb") ? (FileUtils.mv 'application_controller.rb', 'application_controller.rb.bak' ) : ( say "no app/controller/application_controller.rb, :blue ")} # inside("app/helpers") {(File.file? "application_helper.rb") ? (FileUtils.mv 'application_helper.rb', 'application_helper.rb.bak') : ( say "no app/helpers/application_helper.rb", :blue)} # inside("app/assets/javascripts") {(File.file? 'application.js') ? (FileUtils.mv 'application.js', 'application.js.bak') : ( say "no application.js", :blue)} # inside("app/assets/stylesheets") {(File.file? "application.css") ? (FileUtils.mv 'application.css', 'application.css.bak') : ( say "no application.css", :blue)} # inside("config/initializers") {(File.file? "omniauth.rb") ? (FileUtils.mv 'omniauth.rb', 'omniauth.rb.bak') : (say "no omniauth.rb", :blue)} # # inside("config/initializers") {(File.file? "mongoid.rb") ? (FileUtils.mv 'mongoid.rb', 'mongoid.rb.bak') : (say "no mongoid.rb")} # todo inside("app/assets/config") {(File.file? "manifest.js") ? (FileUtils.mv "manifest.js", "manifest.js-rails") : (puts "backup to manifest.js-rails")} # directory "app" # directory "spec" directory "db" directory "config" # directory "dot" # # CHECK IF EXISTING CODE THEN REQUIRED MANUAL MIGRATION # If no javascripts.js or css (New application), then can use javascript.js or css from org files. # inside("app/assets/javascripts") {(File.file? "application.js") ? ( say "Please include application-org.js in application.js", :red) : (FileUtils.mv 'application-org.js', 'application.js')} # inside("app/assets/stylesheets") {(File.file? "application.css") ? ( say "Please include application-org.css in application.css", :red) : (FileUtils.mv 'application-org.css', 'application.css')} # inside("app/assets/stylesheets") {(File.file? "application.css.scss") ? ( say "Please include application-org.css.scss in application.css.scss", :red) : (FileUtils.mv 'application-org.css.scss', 'application.css.scss')} # inside("app/controllers") {(File.file? "application_controller.rb") ? ( say "Pleas merge existing jinda_org/application_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/application_controller.rb', 'application_controller.rb')} # inside("app/controllers") {(File.file? "admins_controller.rb") ? ( say "Please merge existing jinda_org/admins_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/admins_controller.rb', 'admins_controller.rb')} # inside("app/controllers") {(File.file? "articles_controller.rb") ? ( say "Please merge existing jinda_org/articles_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/articles_controller.rb', 'articles_controller.rb')} # inside("app/controllers") {(File.file? "comments_controller.rb") ? ( say "Please merge existing jinda_org/comments_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/comments_controller.rb', 'comments_controller.rb')} # inside("app/controllers") {(File.file? "docs_controller.rb") ? ( say "Please merge existing jinda_org/docs_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/docs_controller.rb', 'docs_controller.rb')} # inside("app/controllers") {(File.file? "identities_controller.rb") ? ( say "Please merge existing jinda_org/identities_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/identities_controller.rb', 'identities_controller.rb')} # inside("app/controllers") {(File.file? "jinda_controller.rb") ? ( say "Please merge existing jinda_org/jinda_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/jinda_controller.rb', 'jinda_controller.rb')} # inside("app/controllers") {(File.file? "password_resets_controller.rb") ? ( say "Please merge existing jinda_org/password_resets_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/password_resets_controller.rb', 'password_resets_controller.rb')} # inside("app/controllers") {(File.file? "password_resets.rb") ? ( say "Please merge existing jinda_org/password_resets.rb after this installation", :red) : (FileUtils.mv 'jinda_org/password_resets.rb', 'password_resets.rb')} # inside("app/controllers") {(File.file? "sessions_controller.rb") ? ( say "Please merge existing jinda_org/sessions_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/sessions_controller.rb', 'sessions_controller.rb')} # inside("app/controllers") {(File.file? "users_controller.rb") ? ( say "Please merge existing jinda_org/users_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/users_controller.rb', 'users_controller.rb')} # inside("app/controllers") {(File.file? "sitemap_controller.rb") ? ( say "Please merge existing jinda_org/sitemap_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/sitemap_controller.rb', 'sitemap_controller.rb')} # inside("app/controllers") {(File.file? "notes_controller.rb") ? ( say "Please merge existing jinda_org/notes_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/notes_controller.rb', 'notes_controller.rb')} end
setup_env()
click to toggle source
# File lib/generators/jinda_engine/install_generator.rb, line 141 def setup_env FileUtils.mv "README.md", "README.md.bak" create_file 'README.md', '' # FileUtils.mv 'install.sh', 'install.sh' inject_into_file 'config/application.rb', :after => 'require "active_resource/railtie"' do inject_into_file 'config/application.rb', :after => 'require "rails"' do "\nrequire 'rexml/document'\n"+ "\nrequire 'mongoid/railtie'\n" end application do %q{ # Jinda default config.generators do |g| g.orm :mongoid g.template_engine :haml g.test_framework :rspec g.integration_tool :rspec end # config time zone config.time_zone = "Central Time (US & Canada)" # gmail config # config.action_mailer.delivery_method = :smtp # config.action_mailer.smtp_settings = { # :address => "smtp.gmail.com", # :port => 587, # :user_name => 'user@gmail.com', # :password => 'secret', # :authentication => 'plain', # :enable_starttls_auto => true } # config.action_mailer.raise_delivery_errors = true # config.action_mailer.perform_deliveries = true } end initializer "jinda.rb" do %q{# encoding: utf-8 MM = "#{Rails.root}/app/jinda/index.mm" DEFAULT_TITLE = 'Jinda' DEFAULT_HEADER = 'Jinda' DEFAULT_DESCRIPTION = 'Rails Application Generator' DEFAULT_KEYWORDS = %w[Jinda Rails ruby Generator, Prateep Kul] GMAP = false # ADSENSE = true NEXT = "Next >" # comment IMAGE_LOCATION to use cloudinary (specify params in config/cloudinary.yml) IMAGE_LOCATION = "upload" # for debugging # DONT_SEND_MAIL = true } end initializer "mongoid.rb" do %q{# encoding: utf-8 # # Mongoid 6 follows the new pattern of AR5 requiring a belongs_to relation to always require its parent # belongs_to` will now trigger a validation error by default if the association is not present. # You can turn this off on a per-association basis with `optional: true`. # (Note this new default only applies to new Rails apps that will be generated with # `config.active_record.belongs_to_required_by_default = true` in initializer.) # Mongoid::Config.belongs_to_required_by_default = false } end inject_into_file 'config/environment.rb', :after => "initialize!" do "\n\n# hack to fix cloudinary error https://github.com/archiloque/rest-client/issues/141" + "\nclass Hash\n remove_method :read\nrescue\nend" end inject_into_file 'config/environments/development.rb', :after => 'config.action_mailer.raise_delivery_errors = false' do "\n config.action_mailer.default_url_options = { :host => 'localhost:3000' }" end inject_into_file 'config/environments/production.rb', :after => 'config.assets.compile = false' do "\n config.assets.compile = true" end inject_into_file 'config/initializers/assets.rb', :after => '# Precompile additional assets. ' do "Rails.application.config.assets.precompile += %w( sarabun.css )" + "\nRails.application.config.assets.precompile += %w( disable_enter_key.js )\n" end end def finish say "\n" say "Jinda gem ready for next configuration install.\n" say " (or short cut with sh install.sh)\n" say "Normally you will use the following command:\n" say "----------------------------------------\n" say "bundle install\n" say "rails generate jinda:config\n" say "rake jinda:seed\n" say say "----------------------------------------\n" end end
setup_gems()
click to toggle source
# File lib/generators/jinda_engine/install_generator.rb, line 9 def setup_gems # gem 'maruku', '~> 0.7.3' # gem 'rouge' # gem 'normalize-rails' # gem 'font-awesome-rails' # gem 'font-awesome-sass', '~> 5.12.0' gem 'mongoid-paperclip', require: 'mongoid_paperclip' # gem 'meta-tags' # gem 'jquery-turbolinks', '2.1.0' gem 'mongo', '2.11.3' gem 'bson', '4.4.2' gem 'mongoid', '7.1.0.rc0' # gem 'turbolinks_render' # gem 'nokogiri', '1.10.9' # gem 'haml', '~> 5.1', '>= 5.1.2' # gem 'haml-rails', '~> 2.0.1' # gem 'mail' # gem 'prawn' # gem 'redcarpet' # gem 'bcrypt' gem 'oauth2', '1.4.4' gem 'omniauth', '1.9.1' gem 'omniauth-oauth2', '1.6.0' gem 'omniauth-identity', '~> 1.1.1' gem 'omniauth-facebook', '6.0.0' gem 'omniauth-google-oauth2', '0.8.0' gem 'dotenv-rails', '2.7.5' # gem 'cloudinary', '1.13.2' # gem 'kaminari', '1.2.0' # gem 'kaminari-mongoid', '1.0.1' gem 'jquery-rails', '4.3.5' # gem_group :development, :test do # gem 'shoulda' # gem 'rspec' # gem 'rspec-rails' # gem 'better_errors' # gem 'binding_of_caller' # gem 'pry-byebug' # gem 'factory_bot_rails' # gem 'database_cleaner' # gem 'guard' # gem 'guard-rspec' # gem 'guard-minitest' # gem 'capybara' # gem 'selenium-webdriver' # gem 'rb-fsevent' # gem 'valid_attribute' # gem 'faker', :git => 'https://github.com/stympy/faker.git', :branch => 'master' # end end
setup_routes()
click to toggle source
routes created each line as reversed order in routes
# File lib/generators/jinda_engine/install_generator.rb, line 97 def setup_routes # route "end" route " end" route " namespace :v1 do resources :notes, :only => [:index] end" route " namespace :api do" route "post '/api/v1/notes' => 'api/v1/notes#create', as: 'api_v1_notes'" route "get '/api/v1/notes/my' => 'api/v1/notes#my'" route "\# api" route "root :to => 'jinda#index'" route "resources :jinda, :only => [:index, :new]" route "resources :password_resets" route "resources :sessions" route "resources :identities" route "resources :users" route "resources :docs" route "resources :notes" route "resources :comments" route "resources :articles do resources :comments end" route "get '/jinda/document/:id' => 'jinda#document'" route "get '/notes/destroy/:id' => 'notes#destroy'" route "get '/notes/my/destroy/:id' => 'notes#destroy'" route "get '/docs/my/destroy' => 'docs#destroy'" route "get '/notes/my' => 'notes/my'" route "get '/docs/my' => 'docs/my'" route "get '/articles/edit' => 'articles/edit'" route "get '/articles/show' => 'articles/show'" route "get '/logout' => 'sessions#destroy', :as => 'logout'" route "get '/auth/failure' => 'sessions#destroy'" route "get '/auth/:provider/callback' => 'sessions#create'" route "post '/auth/:provider/callback' => 'sessions#create'" route "mount Jinda::Engine => '/jinda'" # route "\# end jinda method routes" # route "post '/jinda/end_output' => 'jinda#end_output'" # route "post '/jinda/end_form' => 'jinda#end_form'" # route "post '/jinda/pending' => 'jinda#index'" # route "post '/jinda/init' => 'jinda#init'" # route "jinda_methods.each do \|aktion\| get \"/jinda/\#\{aktion\}\" => \"jinda#\#\{aktion\}\" end" # route "jinda_methods += ['error_logs', 'notice_logs', 'cancel', 'run_output', 'end_output']" # route "jinda_methods += ['run_redirect', 'run_direct_to','run_if']" # route "jinda_methods += ['init', 'run', 'run_mail', 'document', 'run_do', 'run_form', 'end_form']" # route "jinda_methods = ['pending', 'status', 'search', 'doc', 'doc_print', 'logs', 'ajax_notice']" # route "\# start jiinda method routes" end