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